第 3 章Workflow基礎設計實作第 3 章Workflow基礎設計實作\3-4會簽活動處理

3-4會簽活動處理

 


在企業的簽核單據中,經常會有多個人一起簽核意見的情況,當然我們也可以一個個依次貼入多個活動元件來讓個別的對象簽核,但這樣會有時效性的問題,就是必須上一個人簽完後才能讓下一個人簽核,因此,在EEP WF的系統中,我們

提供了一個 ParallelActivity活動元件來專門處理這種多個對象同時簽核的情況,這種活動會平行觸發多條方向同時簽核,可以提高企業的運作效率。另外,此活動元件中也可以設定多個活動是「AND」或「OR」的關係,一般沒有設定都是代表「AND」,就是所有活動中都必須全部簽核才能到下一個活動(我們稱之會簽功能),否則會一直等待簽核;「OR」則代表平行的活動中,只要有一人審核了,就自動往下一個活動(我們稱之為平行簽核),端看你的流程需求而定。

Step1在原來的Customers.Xoml當中,經過主管審核後,我們希望這個客戶的申請能指派一個服務窗口給他,因為服務窗口的指派與信用審核不衝突,因此,我們在主管審核後分流同時進行服務窗口與信用審核的指派,並且在信用審核與服務窗口指派都必須被簽核過關後,才會進入「通過通知」的活動中,為此,我們特別在Customers這個資料表中,增加了ServiceRole欄位(nVarchar 20),代表服務窗口的角色代號(GroupsGroupID),如下:

 

   

Step2因為SCustomers.dll這個Server端的模組,之前我們是使用「Select * From Customers」的方式下達SQL語句,因此SCustomers.dll就無須重新編譯,即可取出新的ServiceRole欄位。接著,我們打開CCustomers這個專案,並將之前的CCustomers.cs的表單打開,如下圖,我們用MouseidCustomers這個InfoDataSet點兩下,會出現一個「DataSet Column Selector」的視窗,然後,我們可以選擇Customers這個TableServiceRole這個新欄位拖入表單當中,如果你Customers中找不到ServiceRole欄位者,可以將idCustomers的「Active」屬性先設為False,在設為True即可,如果還是不行,就須對SCustomers.dll重新編譯。另一個要注意的就是「服務窗口」的資料字典由來,你可以事先在「EEPManager」的「Data Dictionary」中事先定義即可。

 

 

Step3重新對CCustomers這個專案編譯,即可得到最新的CCustomer表單。

 

Step4FLDesigner打開Customers.Xoml,首先在「主管審核」與「信用額度審核」間拖入ParallelActivity活動元件,如圖,拖入後,請立即將「信用額度審核」的IfElseActivity活動元件整個拖入右邊的ParallelActivity(sequenceActivity2的下方)。注意,ParallelActivity的「Description」是用來設定是否為會簽或平行簽核,設為「AND」代表為會簽,設為「OR」代表為平行簽核,預設為AND

 

Step5接著,我們再拖入一個FLStand標準活動於ParallelActivity的左方(sequenceActivity1的下方),如圖,我們按下文來設定此活動元件。

 

現將這個FLStand的活動元件,屬性設定如下:

 

(Name):活動名稱,直接輸入中文指定服務窗口

 

FormName請選擇一個Windows的表單名稱,同樣選CCustomers .CCustomers 這個表單。

 

NavigatorMode設定打開此表單後,要控制其Navigator的進入的狀態,此活動因為要能夠讓其對象可以更改,因此我們設定為Modify,代表可以對資料進行更改的動作 (不能新增/刪除/查詢資料等等),目前是可以更改所有欄位,如果要控制只能輸入ServiceRole欄位,我們將在進階設計中來說明如何控制。

 

FLNavigatorMode在此設定為Approve,代表將顯示「審核」與「退回」的按鈕,而不是Summit的「上呈」按鈕。

 

SendToKind活動的對象種類,我們設定為 Role,代表此活動指定了一個特定的角色來指定服務窗口的動作。

 

SendToRole活動的簽核角色,當本活動設定SendToKindRole之後,就必須在SendToRole中來定義簽核角色。因為我們是要交給客服經理來負責服務窗口的指定,因此我們設定為R05,可以透過此SendToRole右方的下拉選項來選擇角色代號。

 

 

最後別忘了對此Customers.Xoml進行存檔。

 

Step6同樣以003這個User來登入EEPNetFLClient中,與之前一樣,打開「客戶申請」這個Customers.Xoml後,點選「客戶申請」這個活動來打開CCustomers這個表單,接著我們輸入一筆客戶資料,如下:

 

其中,信用額度我們輸入11萬,目的是為了不經過總經理審核,但又需經行政經理信用審核,服務處窗口我們暫時不輸入。最後我們按下「上呈」後,會自動送往R02業務經理待辦中。

 

Step7使用005登入EEPNetFLClient,再從「待辦事項」中找到C007這個申請單,在待辦事項中以右鍵選擇「Approve」來直接審核,如圖,當按下「確認」時,系統會告知同時送往 R05客服經理(指定服務窗口),與R03行政經理(信用審核)等兩個活動,代表此兩個角色會同時收到此單據。

 

 

Step8我們先使用002登入EEPNetFLClient,再從「待辦事項」中找到C007這個申請單,在待辦事項中以右鍵選擇「Approve」來直接審核,如圖,當按下「確認」時,系統會告知「等待對象」R05(客服經理),此代表在會簽當中,不管有多少對象,系統會清楚告知還要等待多少對象。

 

此會簽會有一個現象,就是必須大家協同一致的方向,不能有的是選擇審

核,有的選擇退回,這樣系統會提出「你不能退回/前進,因為另一個的狀態為前進/退回」。

 

Step9接著使用007登入EEPNetFLClient,再從「待辦事項」中找到C007這個申請單,在待辦事項中以右鍵選擇「Open」來打開此單據,如圖,可以按下「更改」來更改「服務窗口」的欄位,此時我們設定為R04,代表指定某一個工程師的角色,為了配合下一節的動態角色,我們在此還是輸入角色代號,不然一般情況下,都會以USER代號為主。

 

更改後按下「存檔」,最後按下「審核」,因為後面只剩下申請者003的通過通知活動而已,因此系統會告知本流程已結案的訊息。

 

 

Top of Page