2010-03-30 147 views
2

this question有些相似,除了我們還沒有確定我們將使用WF。工作流UI集成 - WF是一種好方法嗎?

我正在設計一個系統,需要一系列關於「工作對象」的決定和活動,所以我自然開始考慮工作流程,特別是WF。我想知道是,如果WF是像下面(簡單化了這個問題)的情況下的情況下很好地解決(請原諒壞的ASCII藝術):

   __________________ 
      | Gather some info | 
      | (web page) | 
      |__________________| 
         | 
         | 
        /\ 
        / \ 
       / \ 
       /  \ 
       /cond \ 
       \ 1 /
        \  /
        \ /
        \ /
        \/
         | 
         | 
     ______________|_______________ 
     |        | 
     |        | 
     |      ______|______ 
______|________    /do some /
| Get more info |   /process /
| (web page) |   /____________/ 
|_______________| 
     | 
     | 
    /\ 
    / \ 
    / \ 
    /cond. \ 
    \ 2 /
    \ /
     \ /
     \/
     | 
     | 
     |__________________ 
     |     | 
     |     | 
    _____|_____  _____|_____ 
/ some / /another/
/process/ /process/
/__________/  /__________/ 

我與掙扎的部分是get more info (web page)一步以及隨後會發生什麼,這意味着工作流運行時的執行會停止。我知道這是可能的,但我不確定WF是這種類型代碼的最佳方法,因爲在整個工作流程中許多不同點可能需要用戶交互,並且工作流將驅動哪些數據輸入屏幕是需要的。我們正在使用一個WinForms/ASP.NET Web窗體包,這是一個本地出現且很難推送部署的UI,因此像SharePoint集成這樣的事情是不可能的。我們的後端是DB2,工作流代碼(無論是WF還是其他)都需要與之交互。

我想底線是,我們應該考慮使用WF來做這件事嗎?或者我們可以更好地爲自己編碼? WF能否輕鬆整合數據輸入屏幕來捕獲可在工作流程中進一步使用的信息?

回答

1

使用WF的長時間運行的工作流程功能,我相信它會起作用。您的工作流可以隨時保存到數據庫中。如果要填寫幾個條件表單,請將其定義作爲工作流程中的步驟(有多種方法可以解決此問題)。這樣,工作流程不僅可以驅動流程,還可以驅動數據請求。

當工作流程持續存在時,用戶可以通過該工作流程繼續工作來「喚醒」工作流程。應用程序(ASP.NET,Winforms等)可以查詢工作流以找出抽象的「表單」。