1. 程式人生 > >馳騁工作流引擎設計系列07 線性流程節點運動(傳送)設計

馳騁工作流引擎設計系列07 線性流程節點運動(傳送)設計

第1節. 關鍵字

馳騁工作流引擎 流程快速開發平臺 workflow ccflow jflow

第1節. 線性流程節點運動(傳送)設計

傳送就是從一個節點發送到另外一個節點,也可以說從一個節點運動到另外的節點上去。

1.1.1: 執行序列圖(線性流程運動)

image

image

 

在計算髮送到下一個節點動作裡,請參考方向條件設計規則

在計算到達節點的接受人範圍動作裡,請參考接收人規則設計

在最後一個動作裡“執行當前節點完成過程”,會對一些表產生影響,請參考下一章節。

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表的影響

增加一筆從節點,從人員,到節點,到人員的傳送動作日誌資料。

image

1.1.3: 傳送的介面定義Node_SendWork

傳送介面,就是傳送呼叫的方法如下圖所示:

image

簡潔的傳送方法:引數:flowNo, worked.

image

具有主表引數的傳送方法:Node_SendWork(String flowNo, Int64 workid,Hashtable ht)

image

說明:如果傳送的時候需要把業務主表的資料傳入到系統中,就需要使用hashtable 這個引數,key value 的方式。

1.1.4: 萬能傳送的API

有一個重寫的API,是願意傳送到本流程那個節點,就傳送到那個節點,願意傳送到那個接受人,就傳送到那個接受人,我們把這個API稱為萬能的API。

image

比如:當前節點,傳送到下一個節點有分支。

程式碼: 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: 傳送返回的結果物件設計

概要說明:

執行傳送結果傳送成功後,需要把傳送結果的變數返回過來,比如,傳送到那裡了?傳送給那些人了?當前節點資訊等等。這個物件就叫傳送後返回物件。

傳送後返回物件就是一系列變數。

請參考如下程式碼:

image

輸出資訊:

image