Windows Workflow Foundation

來源:互聯網
上載者:User

在 2006 年 1 月號中,Don Box 和 Dharma Shukla 介紹了 Windows® Workflow Foundation,並討論了架構的整體體繫結構及其構成組件(請參閱 WinFX Workflow:Simplify Development With The Declarative Model Of Windows Workflow Foundation [英文])。這篇文章促使我想進一步討論這個主題,並介紹如何使用 Windows Workflow Foundation 來處理自動進程與人工活動貫穿相交的這種常見業務方案。它為開發和執行基於複雜過程的多種應用程式提供了架構。典型樣本包括文件管理應用程式、企業對公司專屬應用程式程式和企業對消費者應用程式。使用者可以使用 Visual Studio® 2005 協助設計基礎工作流程以及有關的頂級應用程式和程式集。

常見業務方案

對於訂單處理、採購申請、差旅費用之類的任務,各組織通常會設有許多內部進程。工作流程使這些獨立進程以透明、動態、有效方式按順序進行。

讓我們看一個典型的支援人員工作流程進程。在技術支援人員接到客戶電話,並開立記錄客戶姓名、來電時間和問題簡要說明的票證時,進程即算開始。建立票證之後,該技術支援人員會將這件事放在一邊,並等待其他來電。下班時,他將登出電腦,然後回家。此時,在另一個部門中(可能位於其他城市),一組技術人員正專註解決這些未解決的問題。每個工作的技術人員要選取申請,然後解決該申請或將該申請升級到第二級協助。如何編寫代碼來實現此進程?

可以使用 Windows 表單應用程式來收集電話的相關輸入資料,並在資料庫中建立一個記錄:即包含時間、說明、狀態和唯一 ID 的票證。第二個 Windows 表單應用程式的使用者將看到待處理申請的即時列表,然後選取一個申請。然後,接線員將盡量解決問題(回電給客戶、檢索申請的資訊、寄送電子郵件或執行一些遠程活動),並指明問題是已解決還是需要進一步研究。此決策可由一個命令性動作表示,例如單擊某個按鈕更新同一基礎資料庫中的票證。最後,如果還涉及其他類別的使用者,自訂前端將使這些使用者能夠指明問題已成功關閉或中止。

儘管此過程明確地表達了工作流程需要使用者進行某些決策,但可以使用以標準程式設計語言和資料庫編寫的傳統順序代碼輕鬆實現。

應用 Windows Workflow Foundation

如果使用者具備由各活動組成的基於工作流程的系統(如 Windows Workflow Foundation),則可利用命令性代碼和聲明性活動圖的強大組合以及綁定它們的聲明性規則來實現應用程式。主要好處在於使用者可以為解決方案建模(甚至以直觀方式建模),將 Windows Workflow 嵌入運行時伺服器來解釋圖表,並使 Windows Workflow 遵循在建立塊中定義的連結。進程越複雜,為其設計和實現的流程就越簡單。進程動態更改越容易,使用者需要編寫和維護的代碼數量就越少。讓我們瞭解一下如何?支援人員方案的 Windows Workflow Foundation 解決方案。

支援人員解決方案

通過建立票證,建立的支援人員工作流程即開始,然後在等待串連使用者或技術人員給予響應時停止。無論票證是關閉還是升級,工作流程都將獲得外來事件,並更新應用程式的內部狀態以跟蹤該事件。因此,工作流程需要與外界進行互動。這類非同步活動是 Windows Workflow Foundation 解決的實際工作流程進程的固有問題之一。因為需要與系統外部的實體進行互動,所以宿主應用程式和工作流程可以定義約定,以進行任何必要的資料交換。此處顯示的 IHelpDeskService 介面說明了在工作流程及其宿主之間建立的通訊介面:

[DataExchangeService]
public interface IHelpDeskService
{
event EventHandler<HelpDeskTicketEventArgs> TicketClosed;
event EventHandler<HelpDeskTicketEventArgs> TicketEscalated;
void CreateTicket(
string description, string userRef, string createdBy);
void CloseTicket(string ticketID);
void EscalateTicket(string ticketID);
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.