馳騁工作流引擎設計系列07 線性流程節點運動(傳送)設計
第1節. 關鍵字
馳騁工作流引擎 流程快速開發平臺 workflow ccflow jflow
第1節. 線性流程節點運動(傳送)設計
傳送就是從一個節點發送到另外一個節點,也可以說從一個節點運動到另外的節點上去。
1.1.1: 執行序列圖(線性流程運動)
在計算髮送到下一個節點動作裡,請參考方向條件設計規則。
在計算到達節點的接受人範圍動作裡,請參考接收人規則設計。
在最後一個動作裡“執行當前節點完成過程”,會對一些表產生影響,請參考下一章節。
1.1.2: 對相關的表影響
流程從一個節點運動到另外一個節點上,就需要影響流程狀態,流程節點所在的位置變化,影響到流程引擎表,與流程業務表,軌跡表,本章節分別介紹了相關表的變化內容。
1.1.2.1: 對WF_GenerWorkflow 表的影響
WF_GenerWokFlow 流程引擎登錄檔。
欄位名 |
中文名 |
解釋 |
WorkID |
工作ID |
無 |
WFState |
狀態 |
設定為:執行中的狀態 |
Title |
標題 |
無 |
FK_Flow |
流程模版編號 |
無 |
FK_Node |
停留節點 |
設定為:當前停留的節點。 |
Starter |
發起人 |
|
RDT |
發起日期 |
|
TodoEmps |
當前處理人 |
設定為:當前節點的工作接收人。 |
1.1.2.2: 對WF_GenerWorkerlist表的影響
工作人員列表: WF_GenerWokerList 用於記錄執行中的業務流程工作人員的資訊的表。對於一個流程模版,每個節點,每個流程例項,每個工作人員,僅僅並且只有一條資料,在該表裡,在流程執行到結束後,該流程例項下的所有的人員資料,就會被清除掉。
一個流程例項從一個節點運動到另外一個節點需要變化到,當前節點工作人員的狀態變化。到達的工作人員新增接受人資料,讓該節點上的接受人產生待辦工作。
對於當前節點該表的資料變化:
欄位名 |
中文名 |
解釋 |
WorkID |
工作ID |
主鍵 |
FK_Emp |
狀態 |
主鍵 |
FK_Node |
標題 |
主鍵 |
IsPass |
是否通過? |
設定為:1標識已經通過。 |
IsRead |
是否讀取? |
0=未讀,1=已讀 |
SDT |
應完成日期 |
無 |
RDT |
到達日期 |
無 |
CDT |
實際完成日期 |
設定為:當前完成日期. |
對與到達節點該表的資料變化:
對於產生的新的工作人員,每個人員都要新建一條記錄
欄位名 |
中文名 |
解釋 |
WorkID |
工作ID |
主鍵 |
FK_Emp |
狀態 |
主鍵 |
FK_Node |
標題 |
主鍵 |
IsPass |
是否通過? |
設定為:0=未通過 |
IsRead |
是否讀取? |
設定為:0=未讀 |
SDT |
應完成日期 |
根據時效考核規則計算當前應該完成的時間 |
RDT |
到達日期 |
設定為:當前日期 |
CDT |
實際完成日期 |
設定為:null |
1.1.2.3: 對NDxxxRpt業務表的影響
業務表包含10多個系統欄位:
欄位名稱 |
型別 |
說明 |
OID |
int |
OID主鍵-與流程的workid一致 |
RDT |
nvarchar |
記錄日期 |
Title |
nvarchar |
流程標題 |
FID |
int |
FID分合流用到 |
CDT |
nvarchar |
完成日期 |
Rec |
nvarchar |
記錄人 |
Emps |
nvarchar |
操作員,多個用逗號分開。 |
FK_Dept |
nvarchar |
所在部門 |
FK_NY |
nvarchar |
年月,比如:2018-01,統計分析用. |
MyNum |
int |
個數,統計分析用 |
PNodeID |
int |
父子流程所用 |
PrjName |
nvarchar |
工程名稱 |
PrjNo |
nvarchar |
工程編號,工程流程所用 |
PEmp |
nvarchar |
父子流程所用 |
AtPara |
nvarchar |
引數屬性 |
BillNo |
nvarchar |
單據編號 |
FlowNote |
nvarchar |
流程備註 |
GUID |
nvarchar |
唯一識別符號 |
WFSta |
int |
簡易狀態 |
FlowStartRDT |
nvarchar |
發起日期 |
FlowEnderRDT |
nvarchar |
最後節點處理日期 |
FlowEndNode |
int |
設定為傳送到最後節點. |
FlowDaySpan |
float |
流程跨度天數,重新計算 |
PWorkID |
int |
父子流程所用 |
PFlowNo |
nvarchar |
父子流程所用 |
FlowEmps |
nvarchar |
設定為:流程參與人,增加當前人員 |
FlowEnder |
nvarchar |
設定為:最後處理人 |
FlowStarter |
nvarchar |
流程發起人 |
WFState |
int |
流程狀態 |
1.1.2.4: 對NDxxTrack表的影響
增加一筆從節點,從人員,到節點,到人員的傳送動作日誌資料。
1.1.3: 傳送的介面定義Node_SendWork
傳送介面,就是傳送呼叫的方法如下圖所示:
簡潔的傳送方法:引數:flowNo, worked.
具有主表引數的傳送方法:Node_SendWork(String flowNo, Int64 workid,Hashtable ht)
說明:如果傳送的時候需要把業務主表的資料傳入到系統中,就需要使用hashtable 這個引數,key value 的方式。
1.1.4: 萬能傳送的API
有一個重寫的API,是願意傳送到本流程那個節點,就傳送到那個節點,願意傳送到那個接受人,就傳送到那個接受人,我們把這個API稱為萬能的API。
比如:當前節點,傳送到下一個節點有分支。
程式碼: BP. Dev2Interface.Node_SendWork(‘001’,2232,0,null);
傳送該流程讓節點配置的方向條件與到達節點的接受人規則自動計算,自動計算到達的節點,自動計算到達節點的接收人。
程式碼: BP. Dev2Interface.Node_SendWork(‘001’,2232,105,null);
標識,傳送到指定的節點105上去,並且105節點的接收人自動計算,就是按照節點配置的規則計算。
程式碼: BP. Dev2Interface.Node_SendWork(‘001’,2232,105,’zhangsan’);
標識,傳送到指定的節點105上去,並且105節點的接收人設定為張三。
程式碼: BP. Dev2Interface.Node_SendWork(‘001’,2232,105,’zhangsan,lisi’);
標識,傳送到指定的節點105上去,並且105節點的接收人設定為zhangsan與lisi兩個人。
1.1.5: 傳送返回的結果物件設計
概要說明:
執行傳送結果傳送成功後,需要把傳送結果的變數返回過來,比如,傳送到那裡了?傳送給那些人了?當前節點資訊等等。這個物件就叫傳送後返回物件。
傳送後返回物件就是一系列變數。
請參考如下程式碼:
輸出資訊: