馳騁工做流程底層的API開發接口-重要的

開發API程序員

URL調用接口 | 代碼開發API | FEE開發API框架

登陸與門戶API spa

  1. 首先要進行代碼集成與組織機構的集成
  2. 其次在本身的系統登陸界面,登陸成功後要執行ccbpm的框架登陸。
  3. 所謂的登陸就是調用ccbpm的登陸接口,如左邊的代碼所示。

// 以下代碼須要寫入您的系統校驗密碼與用戶名以後。
string userNo = "zhangsan";
BP.WF.Dev2Interface.Port_Login(userNo);設計

菜單API 日誌

  1. 發起:一個操做員能夠發起的工做
  2. 待辦:等待處理的工做。
  3. 在途:我參與的,可是這條流程尚未結束的流程。
  4. 抄送:不須要我處理,可是須要我知曉的工做。

發起: //得到指定人員的能夠發起的流程列表,調用這個接口返回一個datatable, 能夠參考一個demo實現發起列表的輸出。

System.Data.DataTable dtStart = BP.WF.Dev2Interface.DB_GenerCanStartFlowsOfDataTable("zhangsan");
待辦: //得到指定人員的待辦,調用這個接口返回一個datatable, 能夠參考一個demo實現發起列表的輸出。
DataTable dtTodolist = BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable(); 在途: //得到指定人員的在途,調用這個接口返回一個datatable ,代碼參考:。
DataTable dtRuning = BP.WF.Dev2Interface.DB_GenerRuning(); 查詢: //ccbpm給你提供了一個link ,您能夠調用這個link ,也能夠本身去根據代碼實現。

實現列表輸出代碼,請參考:
http://localhost:2207/WF/App/Simple/Search.htm
運行Demo: 查詢htm

建立WorkID 對象

  1. 建立工做ID是啓動流程的開始。
  2. ccbpm的工做ID是一個Int64位的整數,始終是按照順序號+1產生的。
  3. 該workid全局惟一,而且沒有重複性,該信息記錄到Sys_Serial,WorkID的生成從100開始。
  4. 該workid全局惟一,而且沒有重複性,該信息記錄到Sys_Serial,WorkID的生成從100開始。

//傳入流程編號,調用建立一個工做ID。
Int64 workid = BP.WF. Dev2Interface.Node_CreateBlankWork("001");接口

發送 - 簡單發送開發

  1. 工做發送就是讓節點向下運動。
  2. 調用接口執行發送後,返回一個執行結果的對象,該對象是流程引擎執行過程當中的變量。
  3. 解析該變量,能夠檢查出流程是否完成,運行到那一個節點上去了,下一個節點誰能夠處理工做?
  4. 它的流向,是根據流程設計的規則執行的。
  5. 它的接收人,是根據接受人的規則肯定的。

//傳入流程編號, WorkID執行發送.
BP.WF.SendReturnObjs objs= BP.WF.Dev2Interface.Node_SendWork("001",workid);

// 檢查流程是否結束?
bool isFlowOver = objs.IsStopFlow;

// 得到發送到那個節點上去了?
int toNodeID = objs.VarToNodeID;
string toNodeName = objs.VarToNodeName;

// 得到發送給誰了? 注意:這裏若是是多個接受人員就會使用逗號分開。
string toEmpID = objs.VarAcceptersID;
string toEmpName = objs.VarAcceptersName;

// 輸出提示信息, 這個信息能夠提示給操做員.
string infoMsg = objs.ToMsgOfHtml();get

發送 - 要指定發送給誰?發送到那個節點?(萬能發送接口)

  1. 若是程序員知道下一步要發送給誰,發送到那一個節點的狀況下,就能夠調用這個接口。
  2. 該接口就會擺脫流程引擎設計的方向條件規則與接受人規則。

//若是肯定了(或者本身計算好了)下一步要達到的節點,下一步的接受人,就能夠按照以下格式調用。
BP.WF.SendReturnObjs objs = null; objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103, "zhangsan" );
//發送給一我的,若是發送給多我的用逗號分開好比: zhangsan,lisi,wangwu

//下面調用方式,是知道要發送到那一個節點,可是不知道要發送給誰,讓當前的節點定義的接受人規則來肯定。
objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103, null);

//下面調用方式,是知道要發送到那些人,可是不知道要發送到那個節點,讓當前的節點定義的方向條件來肯定。
objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103,"zhangsan");

// 輸出提示信息, 這個信息能夠提示給操做員.
string infoMsg = objs.ToMsgOfHtml();

撤銷

  • 撤銷是發送的逆向操做。
  • 撤銷能夠調用ccbpm提供的撤銷窗口完成,這是最簡單的方式。
  • 地址爲:/WF/WorkOpt/UnSend.htm 參數爲: FK_Flow,FK_Node,WorkID,FID,當前流程的4大參數。
  • 若是須要在其餘設備上工做,或者要本身寫一個移交界面,請參考。
  • 可否被撤銷,是有當前活動節點的撤銷規則所決定的。
  • 撤銷的功能顯示在,在途的流程列表裏,只有在途的工做才能被撤銷。
  • 在途工做:顧名思義,就是我參與的工做,而且工做還沒有完成。
  • 回滾流程,是在流程結束後須要從新在指定的節點,讓指定的人員重新向下走。

/*
*
執行撤銷,返回撤銷是否成功信息,若是拋出異常就說明撤銷失敗。
*撤銷失敗的緣由多種,最有可能的是由於當前活動節點不容許撤銷規則決定的。
*/



string msg= BP.WF.Dev2Interface.Flow_DoUnSend("001", workID);

回滾

  • 回滾與撤銷不一樣的是回滾是在流程完成之後的操做,而且回滾是由管理員操做的。
  • 回滾流程,是在流程結束後須要從新在指定的節點,讓指定的人員重新向下走。

//執行回滾,返回的是回滾執行信息,若是回滾失敗,則會拋出異常。
string msg= BP.WF.Dev2Interface.Flow_DoRebackWorkFlow("001", workID, 103, "由於審批錯誤,須要回滾,從節點103從新開始審批。");

退回

  1. 退回能夠調用ccbpm提供的退回窗口完成,這是最簡單的方式。
  2. 地址爲:/WF/WorkOpt/ReturnWork.htm 參數爲: FK_Flow,FK_Node,WorkID,FID,當前流程的4大參數。
  3. 若是須要在其餘設備上工做,或者要本身寫一個退回界面,請參考。

/*
* 1,
得到當前節點能夠退回的節點,該接口返回一個datatable。
* 2, 一個節點可以退回到那寫節點是由當前節點的退回規則肯定的。
* 3, 調用退回須要三個參數:節點編號,工做ID, 流程ID, 對於線性流程FID始終等於0.
*/

System.Data.DataTable dtCanReturnNodes = BP.WF.Dev2Interface.DB_GenerWillReturnNodes(103, workid, 0);
// 返回的是能夠退回的節點。

//執行退回,當前的節點是103,要退回的節點是105,
string msg = BP.WF.Dev2Interface.Node_ReturnWork("001", workid, 0, 103, 105, "您的申請信息不完整,請修改後從新發送。", false);

移交

  1. 移交也能夠調用ccbpm提供的移交窗口完成,這是最簡單的方式。
  2. 地址爲:/WF/WorkOpt/Forward.htm 參數爲: FK_Flow,FK_Node,WorkID,FID,當前流程的4大參數。
  3. 移交就是把本身所要作的工做交給其餘人處理。
  4. 若是須要在其餘設備上工做,或者要本身寫一個移交界面,請參考。


/*
*
調用移交接口,傳入必要的參數執行移交.
* FID 在線性流程上始終等於0.
*/


BP.WF.Dev2Interface.Node_Shift("001", 103, workid, 0, "zhangsan", "因我須要出差,因此特把工做移交給您。");

/*
*
撤銷移交
* 若是在移交以後,發現不須要移交,就須要撤銷回來,調用撤銷移交接口。
*/

BP.WF.Dev2Interface.Node_ShiftUn("001", workid);

加簽

  • 加簽也能夠調用ccbpm提供的加簽窗口完成,這是最簡單的方式。
  • 地址爲:/WF/WorkOpt/Forward.htm 參數爲: FK_Flow,FK_Node,WorkID,FID,當前流程的4大參數。
  • 加簽就是把本身所要作的工做參考其餘人意見,或者讓其餘人處理。
  • 加簽有兩種模式:1,加簽後由加簽人發送到下一個節點。2,加簽後由讓加簽人發送給當前人,由當前人發送給下一個節點。
  • 若是須要在其餘設備上工做,或者要本身寫一個加簽界面,請參考。


/*
*
調用加簽接口,傳入必要的參數執行.
* FID 在線性流程上始終等於0.
*/


//技術人員zhangsan接受工做後,點擊發送還會發送給當前人員,由當前人員發送給下一節點。
string info1= BP.WF.Dev2Interface.Node_Askfor(workid, BP.WF.AskforHelpSta.AfterDealSendByWorker, "zhangsan", "這裏須要您出具技術鑑定意見.");

//技術人員填寫後,直接就發送了下一節點.
string info2 = BP.WF.Dev2Interface.Node_Askfor(workid, BP.WF.AskforHelpSta.AfterDealSend, "zhangsan", "這裏須要您出具技術鑑定意見.");

//技術人員回覆加簽,在由當前人發送到下一個節點。
string infoReply = BP.WF.Dev2Interface.Node_AskforReply("001", 103, workid,0, "我已經出具了技術鑑定意見,請參考.");

結束流程

  • 流程結束有三種方式
  • 第一種走到最後一個節點正常結束。
  • 第二種在特定的節點上,用戶須要終止流程向下運動(與刪除流程不一樣)。
  • 第三種在特定的節點上,用戶須要刪除流程。


/* * 手工的結束流程,這種方式會記錄日誌.
*/

string overInfo = BP.WF.Dev2Interface .Flow_DoFlowOver("001" , workID, "該供應商找不到了,要結束掉該流程。");
/* * 刪除流程,
* 刪除流程有多種方式,用戶能夠根據本身的需求,調用不一樣的方式.
* 最後一個參數是是否刪除子流程.
*/

//按照標記刪除流程
string delInfo0 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByFlag("001", workID, "我不須要請假了", true);

//完全的刪除流程,無日誌記錄.
string delInfo1 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByReal("001", workID, "我不須要請假了", true);

//完全的刪除流程,有日誌記錄.
string delInfo2 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByWriteLog("001", workID, "我不須要請假了", true);

相關文章
相關標籤/搜索