Fk_flow:流程編號node
userNo、BP.Web.WebUser.No:登陸賬號程序員
Fk_node:節點編號數據庫
Workid:工做ID設計
FID:父流程ID日誌
1.系統登陸對象
a) 前臺登陸:BP.WF.Dev2Interface.Port_Login(userNo);接口
b) 登陸流程設計器:/WF/Admin/XAP/Designer.aspxit
c) 自動登陸流程設計器:/WF/Admin/XAP/Designer.aspx?userNo=admin&SID=1234556.登錄
SID須要讀取數據庫中,對應admin的SID。變量
2.當前登錄人能夠發起的流程(發起)
Dt=BP.WF.Dev2Interface.DB_GenerCanStartFlowsOfDataTable(BP.Web.WebUser.No);
3.當前登錄人能夠處理的工做(待辦)
Dt=BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable(userNo,FK_Flow);
Dt=BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable();
4.當前登錄人處理過的流程(在途)
Dt=BP.WF.Dev2Interface.DB_GenerRuning(userNo,FK_Flow);
Dt=BP.WF.Dev2Interface.DB_GenerRuning();
5.當前人收到的抄送信息(閱知件)
Dt=BP.WF.Dev2Interface.DB_CCList(userNo);
6.建立空白的WorkID:
Int64 workid=BP.WF.Dev2Interface.Node_CreateBlankWork(fk_flow);
CCBPM的工做ID是一個int64位的證書,始終是按照順序號+1產生的。該值全局惟一,並無重複性,該信息記錄到Sys_Serial表中,Workid的生成衝100開始。
7.執行流程發送:
//執行發送
BP.WF.SendReturnObjs objs=BP.WF.Dev2Interface.Node_SendWork(fk_flow,workid);
//流程是否結束
Bool isFlowOver=objs.IsStopFlow;
//下一步節點ID
Int toNodeID=objs.VarToNodeID;
//下一步節點名稱
String toNodeName=objs.VarToNodeName;
//下一步處理人ID
String toEmpID=objs.VarAcceptersID;
//下一步處理人名稱
String toEmpName=objs.VarAcceptersName;
//發送後信息
String msgInfo=objs.ToMsgHtml();
發送說明:發送就是讓節點向下運動。調用接口執行發送後,返回一個執行結果的對象SendReturnObjs,該對象是流程引擎執行過程當中的編號,解析該變量,能夠檢查流程是否完成、暈倒到哪個節點、一下節點由誰來執行工做。他的流向和接受人是根據流程設計的規則而定的。
Objs=BP.WF.Dev2Interface.Node_SendWork(fk_flow,workid,fk_node,userNo);
若是程序員知道下一步要送給誰、到達哪一步節點,能夠調用上面的接口,該接口就會擺脫流程引擎的節點運行規則,自定義運行。
8.撤銷發送:
String msg=BP.WF.Dev2Interface.Flow_DoUnSend(fk_flow,workid);
撤銷是發送的逆向操做。可否被撤銷,是根據當前活動節點的撤銷規則決定的。
9.流程回滾:
String msg=BP.WF.Dev2Interface.Flow_DoRebackWorkFlow(fk_flow,worjid,fk_node,’回滾’);
回滾,是在流程結束後須要從新在指定的節點,讓指定的人員從新向下運行。與撤銷不一樣的是,回滾是在流程完成之後的操做,而且由管理員操做。
10.退回:
msg=BP.WF.Dev2Interface.Node_ReturnWork(fk_flow,workid,FID,fk_Node,toNodeID,toemp,’緣由’,’是否原路返回’);
11.移交:
BP.WF.Dev2Interface.Node_Shift(fk_flow,fk_node,workid,FID,toemp,’緣由’);
移交就是把本身所要作的工做交給其餘人處理。
12.加簽:
//A將工做加簽給B後,B處理完成後,會發送給A,由A發送到下一步。 msg=BP.WF.Dev2Interface.Node_Askfor(workid,BP.WF.AskforHelpSta.AfterDealSendByWorder,toemp,’緣由’);
//A將工做加簽給B後,B處理完成後,直接發送到下一步。
Msg=BP.WF.Dev2Interface.Node_Askfor(workid,BP.WF.AskforHelpSta.AskDealSend,toemp,’緣由’);
//A將工做加簽給B後,B回覆加簽
Msg=BP.WF.Dev2Interface.Node_AskforReply(fj_flow,fk_node,workid,fid,’緣由’);
加簽說明:
加簽就是把本身所要作的工做參考其餘人意見,或者讓其餘人處理。它分爲兩種模式:1.加簽後,由加簽人發送到下一步。2.加簽後,由加簽人發給當前人,由當前人發送到下一步。
13.結束流程:
//點擊結束按鈕,結束流程,這種方式會記錄日誌
Info=BP.WF.Dev2Interface.Flow_DoFlowOver(fk_flow,workid,’緣由’);
//按照標記刪除流程
Info=BP.WF.Dev2Interface.Flow_DoDeleteFlowByFlag(fk_flow,workid,’緣由’,true);
//完全的刪除流程,無日誌記錄
Info=BP.WF.Dev2Interface.Flow_DoDeleteFlowByReal(fk_flow,workid,’緣由’,true);
//完全刪除流程,有日誌記錄
Info=BP.WF.Dev2Interface.Flow_DoDeleteFlowByWriteLog(fk_flow,workid,’緣由’,true);
結束流程的三種方式說明:
第一種,走到最後一個節點,自動結束。
第二種,在指定的節點上,設置流程結束條件。流程運行到當前節點時,符合條件就執行結束,若是不符合,繼續向下運行,一直到自動結束。
第三種,在指定的節點上,啓用結束流程按鈕,強制結束流程。