第1節(jié). 關(guān)鍵字
馳騁工作流引擎?流程快速開發(fā)平臺?workflow ccflow jflow
第1節(jié).線性流程節(jié)點運動(發(fā)送)設(shè)計
發(fā)送就是從一個節(jié)點發(fā)送到另外一個節(jié)點,也可以說從一個節(jié)點運動到另外的節(jié)點上去。


在計算發(fā)送到下一個節(jié)點動作里,請參考方向條件設(shè)計規(guī)則。
在計算到達(dá)節(jié)點的接受人范圍動作里,請參考接收人規(guī)則設(shè)計。
在最后一個動作里“執(zhí)行當(dāng)前節(jié)點完成過程”,會對一些表產(chǎn)生影響,請參考下一章節(jié)。
流程從一個節(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的方式。
有一個重寫的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ā)送后返回對象就是一系列變量。
請參考如下代碼:

輸出信息:
