馳騁工作流引擎設(shè)計系列07 線性流程節(jié)點運動(發(fā)送)設(shè)計

第1節(jié). 關(guān)鍵字

馳騁工作流引擎?流程快速開發(fā)平臺?workflow ccflow jflow

第1節(jié).線性流程節(jié)點運動(發(fā)送)設(shè)計

發(fā)送就是從一個節(jié)點發(fā)送到另外一個節(jié)點,也可以說從一個節(jié)點運動到另外的節(jié)點上去。

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




在計算發(fā)送到下一個節(jié)點動作里,請參考方向條件設(shè)計規(guī)則。

在計算到達(dá)節(jié)點的接受人范圍動作里,請參考接收人規(guī)則設(shè)計。

在最后一個動作里“執(zhí)行當(dāng)前節(jié)點完成過程”,會對一些表產(chǎn)生影響,請參考下一章節(jié)。

1.1.1: 對相關(guān)的表影響

流程從一個節(jié)點運動到另外一個節(jié)點上,就需要影響流程狀態(tài),流程節(jié)點所在的位置變化,影響到流程引擎表,與流程業(yè)務(wù)表,軌跡表,本章節(jié)分別介紹了相關(guān)表的變化內(nèi)容。

1.1.1.1:對WF_GenerWorkflow表的影響

WF_GenerWokFlow流程引擎注冊表。

字段名中文名解釋

WorkID工作ID無

WFState狀態(tài)設(shè)置為:運行中的狀態(tài)?

Title標(biāo)題無

FK_Flow流程模版編號無

FK_Node停留節(jié)點設(shè)置為:當(dāng)前停留的節(jié)點。

Starter發(fā)起人?

RDT發(fā)起日期?

TodoEmps當(dāng)前處理人設(shè)置為:當(dāng)前節(jié)點的工作接收人。


1.1.1.2: 對WF_GenerWorkerlist表的影響

工作人員列表: WF_GenerWokerList用于記錄運行中的業(yè)務(wù)流程工作人員的信息的表。對于一個流程模版,每個節(jié)點,每個流程實例,每個工作人員,僅僅并且只有一條數(shù)據(jù),在該表里,在流程運行到結(jié)束后,該流程實例下的所有的人員數(shù)據(jù),就會被清除掉。

一個流程實例從一個節(jié)點運動到另外一個節(jié)點需要變化到,當(dāng)前節(jié)點工作人員的狀態(tài)變化。到達(dá)的工作人員新增接受人數(shù)據(jù),讓該節(jié)點上的接受人產(chǎn)生待辦工作。


對于當(dāng)前節(jié)點該表的數(shù)據(jù)變化:


字段名中文名解釋

WorkID工作ID主鍵

FK_Emp狀態(tài)主鍵

FK_Node標(biāo)題主鍵

IsPass是否通過?設(shè)置為:1標(biāo)識已經(jīng)通過。

IsRead是否讀???0=未讀,1=已讀

SDT應(yīng)完成日期無

RDT到達(dá)日期無

CDT實際完成日期設(shè)置為:當(dāng)前完成日期.


對與到達(dá)節(jié)點該表的數(shù)據(jù)變化:

對于產(chǎn)生的新的工作人員,每個人員都要新建一條記錄

字段名中文名解釋

WorkID工作ID主鍵

FK_Emp狀態(tài)主鍵

FK_Node標(biāo)題主鍵

IsPass是否通過?設(shè)置為:0=未通過

IsRead是否讀???設(shè)置為:0=未讀?

SDT應(yīng)完成日期根據(jù)時效考核規(guī)則計算當(dāng)前應(yīng)該完成的時間

RDT到達(dá)日期設(shè)置為:當(dāng)前日期

CDT實際完成日期設(shè)置為:null


[if !supportLists]1.1.1.3:?[endif]對NDxxxRpt業(yè)務(wù)表的影響

業(yè)務(wù)表包含10多個系統(tǒng)字段:

字段名稱類型說明

OIDintOID主鍵-與流程的workid一致

RDTnvarchar記錄日期

Titlenvarchar流程標(biāo)題

FIDintFID分合流用到

CDTnvarchar完成日期

Recnvarchar記錄人

Empsnvarchar操作員,多個用逗號分開。

FK_Deptnvarchar所在部門

FK_NYnvarchar年月,比如:2018-01,統(tǒng)計分析用.

MyNumint個數(shù),統(tǒng)計分析用

PNodeIDint父子流程所用

PrjNamenvarchar工程名稱

PrjNonvarchar工程編號,工程流程所用

PEmpnvarchar父子流程所用

AtParanvarchar參數(shù)屬性

BillNonvarchar單據(jù)編號

FlowNotenvarchar流程備注

GUIDnvarchar唯一標(biāo)識符

WFStaint簡易狀態(tài)

FlowStartRDTnvarchar發(fā)起日期

FlowEnderRDTnvarchar最后節(jié)點處理日期

FlowEndNodeint設(shè)置為發(fā)送到最后節(jié)點.

FlowDaySpanfloat流程跨度天數(shù),重新計算

PWorkIDint父子流程所用

PFlowNonvarchar父子流程所用

FlowEmpsnvarchar設(shè)置為:流程參與人,增加當(dāng)前人員

FlowEndernvarchar設(shè)置為:最后處理人

FlowStarternvarchar流程發(fā)起人

WFStateint流程狀態(tài)





1.1.1.4:NDxxTrack表的影響

增加一筆從節(jié)點,從人員,到節(jié)點,到人員的發(fā)送動作日志數(shù)據(jù)。



1.1.2:發(fā)送的接口定義Node_SendWork

發(fā)送接口,就是發(fā)送調(diào)用的方法如下圖所示:


簡潔的發(fā)送方法:參數(shù):flowNo,worked.




具有主表參數(shù)的發(fā)送方法:Node_SendWork(String flowNo, Int64 workid,Hashtable ht)

?

說明:如果發(fā)送的時候需要把業(yè)務(wù)主表的數(shù)據(jù)傳入到系統(tǒng)中,就需要使用hashtable這個參數(shù),key value的方式。

1.1.3: 萬能發(fā)送的API

有一個重寫的API,是愿意發(fā)送到本流程那個節(jié)點,就發(fā)送到那個節(jié)點,愿意發(fā)送到那個接受人,就發(fā)送到那個接受人,我們把這個API稱為萬能的API。


比如:當(dāng)前節(jié)點,發(fā)送到下一個節(jié)點有分支。

代碼:BP.?Dev2Interface.Node_SendWork(‘001’,2232,0,null);

發(fā)送該流程讓節(jié)點配置的方向條件與到達(dá)節(jié)點的接受人規(guī)則自動計算,自動計算到達(dá)的節(jié)點,自動計算到達(dá)節(jié)點的接收人。


代碼:BP.?Dev2Interface.Node_SendWork(‘001’,2232,105,null);

標(biāo)識,發(fā)送到指定的節(jié)點105上去,并且105節(jié)點的接收人自動計算,就是按照節(jié)點配置的規(guī)則計算。


代碼:BP.?Dev2Interface.Node_SendWork(‘001’,2232,105,’zhangsan’);

標(biāo)識,發(fā)送到指定的節(jié)點105上去,并且105節(jié)點的接收人設(shè)置為張三。


代碼:BP.?Dev2Interface.Node_SendWork(‘001’,2232,105,’zhangsan,lisi’);

標(biāo)識,發(fā)送到指定的節(jié)點105上去,并且105節(jié)點的接收人設(shè)置為zhangsan與lisi兩個人。

1.1.4: 發(fā)送返回的結(jié)果對象設(shè)計

概要說明:

執(zhí)行發(fā)送結(jié)果發(fā)送成功后,需要把發(fā)送結(jié)果的變量返回過來,比如,發(fā)送到那里了?發(fā)送給那些人了?當(dāng)前節(jié)點信息等等。這個對象就叫發(fā)送后返回對象。

發(fā)送后返回對象就是一系列變量。


請參考如下代碼:



輸出信息:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容