在一般情況下,作業流程都是事先規劃好並被XOML事先定義好了,但有些流程是無法事先定義好的,必須由呈送者來指定呈送流程,因此如果要滿足動態決定的流程,就須透過FLDetails來動態設定流程的步驟與其呈送對象。下文中,我們將此客戶申請流程改用動態的決定方式,交給申請者自行決定流程,如下的設計步驟:
Step1>至Table右鍵新增CustomerFLDetails這個Table,結構如下:
Table創建完成以後,在CustomerFLDetails 資料表上按右鍵將此table Export to Dictionary並對其DD做如下設定:
Step2>接著在Server上右鍵點選 Wizard產生一個名為SCustomers2,其中選擇Customers為主檔,CustomerFLDetails為明細檔,並以Customers.CustomerID與CustomerFLDetails.CustomerID作為Relation。
手動在SCustomers2上加入一個名為Roles的InfoCommand,點選Roles在屬性中的CommandText設定如下圖:
點選Group
Table 並按下Add*
鈕,在此我們只撈Group中是角色的資料因此加入Where ISROLE=’Y’的條件,按下View可以確認資料是否有誤。
確認後按下OK並將SCustomer2存檔。
Step3>使用Webpage右鍵 Wizard產生一個以MasterDetail1為Template的WebForm,我們將其命名為WCustomer2,產生時Details選次序、對象角色、會簽處理和呈送模式四個欄位,次序則為動態產生活動的順序,對象角色使用RefValBox用選的(在D.D.中定義)並設定RemoteName為SCustomer2的Roles、ValueField為GroupID、DisplayField為GroupName,會簽處理如果為’Y’代表該活動與上一個活動為平行會簽,呈送模式欄位可以填入Apporve審核模式或Continue呈送模式。產生完成後,同樣將JQDataForm的IsShowFlowIcon更換為True。
Step4>打開 CustomerFL,將原來的「信用審核流程」(FLSubFlow)刪除,改用FLDetails,並將其命名為「客戶資料簽核」。
接著,我們進行屬性設定,定義如下圖,這裡要說明如下的屬性:
DetailsTableName:FLDetails活動元件參照Table名稱這裡設為CustomerFLDetails;
RelationKeys:主檔Table與FLDetails活動元件參照Table名稱關聯欄位為CustomerID;
ParallelField:會簽參照欄位設為CustomerFLDetails的Parellel欄位,當此欄位的值為”Y”,代表該活動與上一個活動為平行會簽;
SendToField:簽核指定角色欄位在此設為RoleID。
NavigatorModeField:呈送模式欄位參照,設為CustomerFLDetails的NavigatorMode欄位,當此欄位的值可填入為Approve 或Continue。
為了配合這個流程的設定,請將Customers.xoml中的其他活動的WebFormName都改成WCustomers2這個Web表單。
Step5>以003為User 登入打開「客戶申請」輸入如下2505資料,在Detail中輸入二個角色,前一個行政經理會簽,往下則還有總經理簽核等。輸入完畢後將資料上呈至005。
003送出後,同樣會呈送給005業務經理,當005業務經理審核後,則透過FLDetails首先會送出給002行政主管等會簽完畢後,會繼續給001總經理來簽核,最後等001簽核完畢才會送出通過通知,並結束該流程。
Related Topics