日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

驰骋工作流程底层的API开发接口-重要的

發(fā)布時(shí)間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 驰骋工作流程底层的API开发接口-重要的 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

開發(fā)API

URL調(diào)用接口 | 代碼開發(fā)API | FEE開發(fā)API

登錄與門戶API

  • 首先要進(jìn)行代碼集成與組織機(jī)構(gòu)的集成
  • 其次在自己的系統(tǒng)登錄界面,登錄成功后要執(zhí)行ccbpm的框架登錄。
  • 所謂的登錄就是調(diào)用ccbpm的登錄接口,如左邊的代碼所示。
  • // 如下代碼需要寫入您的系統(tǒng)校驗(yàn)密碼與用戶名之后。
    string userNo = "zhangsan";
    BP.WF.Dev2Interface.Port_Login(userNo);

    菜單API

  • 發(fā)起:一個(gè)操作員可以發(fā)起的工作
  • 待辦:等待處理的工作。
  • 在途:我參與的,但是這條流程還沒有結(jié)束的流程。
  • 抄送:不需要我處理,但是需要我知曉的工作。
  • 發(fā)起: //獲得指定人員的可以發(fā)起的流程列表,調(diào)用這個(gè)接口返回一個(gè)datatable, 可以參考一個(gè)demo實(shí)現(xiàn)發(fā)起列表的輸出。

    System.Data.DataTable dtStart = BP.WF.Dev2Interface.DB_GenerCanStartFlowsOfDataTable("zhangsan");
    待辦: //獲得指定人員的待辦,調(diào)用這個(gè)接口返回一個(gè)datatable, 可以參考一個(gè)demo實(shí)現(xiàn)發(fā)起列表的輸出。
    DataTable dtTodolist = BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable(); 在途: //獲得指定人員的在途,調(diào)用這個(gè)接口返回一個(gè)datatable ,代碼參考:。
    DataTable dtRuning = BP.WF.Dev2Interface.DB_GenerRuning(); 查詢: //ccbpm給你提供了一個(gè)link ,您可以調(diào)用這個(gè)link ,也可以自己去根據(jù)代碼實(shí)現(xiàn)。

    實(shí)現(xiàn)列表輸出代碼,請(qǐng)參考:
    http://localhost:2207/WF/App/Simple/Search.htm
    運(yùn)行Demo: 查詢

    創(chuàng)建WorkID

  • 創(chuàng)建工作ID是啟動(dòng)流程的開始。
  • ccbpm的工作ID是一個(gè)Int64位的整數(shù),始終是按照順序號(hào)+1產(chǎn)生的。
  • 該workid全局唯一,并且沒有重復(fù)性,該信息記錄到Sys_Serial,WorkID的生成從100開始。
  • 該workid全局唯一,并且沒有重復(fù)性,該信息記錄到Sys_Serial,WorkID的生成從100開始。
  • //傳入流程編號(hào),調(diào)用創(chuàng)建一個(gè)工作ID。
    Int64 workid = BP.WF. Dev2Interface.Node_CreateBlankWork("001");

    發(fā)送 - 簡(jiǎn)單發(fā)送

  • 工作發(fā)送就是讓節(jié)點(diǎn)向下運(yùn)動(dòng)。
  • 調(diào)用接口執(zhí)行發(fā)送后,返回一個(gè)執(zhí)行結(jié)果的對(duì)象,該對(duì)象是流程引擎執(zhí)行過程中的變量。
  • 解析該變量,可以檢查出流程是否完成,運(yùn)行到那一個(gè)節(jié)點(diǎn)上去了,下一個(gè)節(jié)點(diǎn)誰可以處理工作?
  • 它的流向,是根據(jù)流程設(shè)計(jì)的規(guī)則執(zhí)行的。
  • 它的接收人,是根據(jù)接受人的規(guī)則確定的。
  • //傳入流程編號(hào), WorkID執(zhí)行發(fā)送.
    BP.WF.SendReturnObjs objs= BP.WF.Dev2Interface.Node_SendWork("001",workid);

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

    // 獲得發(fā)送到那個(gè)節(jié)點(diǎn)上去了?
    int toNodeID = objs.VarToNodeID;
    string toNodeName = objs.VarToNodeName;

    // 獲得發(fā)送給誰了? 注意:這里如果是多個(gè)接受人員就會(huì)使用逗號(hào)分開。
    string toEmpID = objs.VarAcceptersID;
    string toEmpName = objs.VarAcceptersName;

    // 輸出提示信息, 這個(gè)信息可以提示給操作員.
    string infoMsg = objs.ToMsgOfHtml();

    發(fā)送 - 要指定發(fā)送給誰?發(fā)送到那個(gè)節(jié)點(diǎn)?(萬能發(fā)送接口)

  • 如果程序員知道下一步要發(fā)送給誰,發(fā)送到那一個(gè)節(jié)點(diǎn)的情況下,就可以調(diào)用這個(gè)接口。
  • 該接口就會(huì)擺脫流程引擎設(shè)計(jì)的方向條件規(guī)則與接受人規(guī)則。
  • //如果確定了(或者自己計(jì)算好了)下一步要達(dá)到的節(jié)點(diǎn),下一步的接受人,就可以按照如下格式調(diào)用。
    BP.WF.SendReturnObjs objs = null; objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103, "zhangsan" );
    //發(fā)送給一個(gè)人,如果發(fā)送給多個(gè)人用逗號(hào)分開比如: zhangsan,lisi,wangwu

    //下面調(diào)用方式,是知道要發(fā)送到那一個(gè)節(jié)點(diǎn),但是不知道要發(fā)送給誰,讓當(dāng)前的節(jié)點(diǎn)定義的接受人規(guī)則來確定。
    objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103, null);

    //下面調(diào)用方式,是知道要發(fā)送到那些人,但是不知道要發(fā)送到那個(gè)節(jié)點(diǎn),讓當(dāng)前的節(jié)點(diǎn)定義的方向條件來確定。
    objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103,"zhangsan");

    // 輸出提示信息, 這個(gè)信息可以提示給操作員.
    string infoMsg = objs.ToMsgOfHtml();

    撤銷

    • 撤銷是發(fā)送的逆向操作。
    • 撤銷可以調(diào)用ccbpm提供的撤銷窗口完成,這是最簡(jiǎn)單的方式。
    • 地址為:/WF/WorkOpt/UnSend.htm 參數(shù)為: FK_Flow,FK_Node,WorkID,FID,當(dāng)前流程的4大參數(shù)。
    • 如果需要在其他設(shè)備上工作,或者要自己寫一個(gè)移交界面,請(qǐng)參考。
    • 能否被撤銷,是有當(dāng)前活動(dòng)節(jié)點(diǎn)的撤銷規(guī)則所決定的。
    • 撤銷的功能顯示在,在途的流程列表里,只有在途的工作才能被撤銷。
    • 在途工作:顧名思義,就是我參與的工作,并且工作尚未完成。
    • 回滾流程,是在流程結(jié)束后需要重新在指定的節(jié)點(diǎn),讓指定的人員從新向下走。

    /*
    *
    執(zhí)行撤銷,返回撤銷是否成功信息,如果拋出異常就說明撤銷失敗。
    *撤銷失敗的原因多種,最有可能的是因?yàn)楫?dāng)前活動(dòng)節(jié)點(diǎn)不允許撤銷規(guī)則決定的。
    */



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

    回滾

    • 回滾與撤銷不同的是回滾是在流程完成以后的操作,并且回滾是由管理員操作的。
    • 回滾流程,是在流程結(jié)束后需要重新在指定的節(jié)點(diǎn),讓指定的人員從新向下走。

    //執(zhí)行回滾,返回的是回滾執(zhí)行信息,如果回滾失敗,則會(huì)拋出異常。
    string msg= BP.WF.Dev2Interface.Flow_DoRebackWorkFlow("001", workID, 103, "因?yàn)閷徟e(cuò)誤,需要回滾,從節(jié)點(diǎn)103重新開始審批。");

    退回

  • 退回可以調(diào)用ccbpm提供的退回窗口完成,這是最簡(jiǎn)單的方式。
  • 地址為:/WF/WorkOpt/ReturnWork.htm 參數(shù)為: FK_Flow,FK_Node,WorkID,FID,當(dāng)前流程的4大參數(shù)。
  • 如果需要在其他設(shè)備上工作,或者要自己寫一個(gè)退回界面,請(qǐng)參考。
  • /*
    * 1,
    獲得當(dāng)前節(jié)點(diǎn)可以退回的節(jié)點(diǎn),該接口返回一個(gè)datatable。
    * 2, 一個(gè)節(jié)點(diǎn)能夠退回到那寫節(jié)點(diǎn)是由當(dāng)前節(jié)點(diǎn)的退回規(guī)則確定的。
    * 3, 調(diào)用退回需要三個(gè)參數(shù):節(jié)點(diǎn)編號(hào),工作ID, 流程ID, 對(duì)于線性流程FID始終等于0.
    */

    System.Data.DataTable dtCanReturnNodes = BP.WF.Dev2Interface.DB_GenerWillReturnNodes(103, workid, 0);
    // 返回的是可以退回的節(jié)點(diǎn)。

    //執(zhí)行退回,當(dāng)前的節(jié)點(diǎn)是103,要退回的節(jié)點(diǎn)是105,
    string msg = BP.WF.Dev2Interface.Node_ReturnWork("001", workid, 0, 103, 105, "您的申請(qǐng)信息不完整,請(qǐng)修改后重新發(fā)送。", false);

    移交

  • 移交也可以調(diào)用ccbpm提供的移交窗口完成,這是最簡(jiǎn)單的方式。
  • 地址為:/WF/WorkOpt/Forward.htm 參數(shù)為: FK_Flow,FK_Node,WorkID,FID,當(dāng)前流程的4大參數(shù)。
  • 移交就是把自己所要做的工作交給其他人處理。
  • 如果需要在其他設(shè)備上工作,或者要自己寫一個(gè)移交界面,請(qǐng)參考。

  • /*
    *
    調(diào)用移交接口,傳入必要的參數(shù)執(zhí)行移交.
    * FID 在線性流程上始終等于0.
    */


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

    /*
    *
    撤銷移交
    * 如果在移交之后,發(fā)現(xiàn)不需要移交,就需要撤銷回來,調(diào)用撤銷移交接口。
    */

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

    加簽

    • 加簽也可以調(diào)用ccbpm提供的加簽窗口完成,這是最簡(jiǎn)單的方式。
    • 地址為:/WF/WorkOpt/Forward.htm 參數(shù)為: FK_Flow,FK_Node,WorkID,FID,當(dāng)前流程的4大參數(shù)。
    • 加簽就是把自己所要做的工作參考其他人意見,或者讓其他人處理。
    • 加簽有兩種模式:1,加簽后由加簽人發(fā)送到下一個(gè)節(jié)點(diǎn)。2,加簽后由讓加簽人發(fā)送給當(dāng)前人,由當(dāng)前人發(fā)送給下一個(gè)節(jié)點(diǎn)。
    • 如果需要在其他設(shè)備上工作,或者要自己寫一個(gè)加簽界面,請(qǐng)參考。


    /*
    *
    調(diào)用加簽接口,傳入必要的參數(shù)執(zhí)行.
    * FID 在線性流程上始終等于0.
    */


    //技術(shù)人員zhangsan接受工作后,點(diǎn)擊發(fā)送還會(huì)發(fā)送給當(dāng)前人員,由當(dāng)前人員發(fā)送給下一節(jié)點(diǎn)。
    string info1= BP.WF.Dev2Interface.Node_Askfor(workid, BP.WF.AskforHelpSta.AfterDealSendByWorker, "zhangsan", "這里需要您出具技術(shù)鑒定意見.");

    //技術(shù)人員填寫后,直接就發(fā)送了下一節(jié)點(diǎn).
    string info2 = BP.WF.Dev2Interface.Node_Askfor(workid, BP.WF.AskforHelpSta.AfterDealSend, "zhangsan", "這里需要您出具技術(shù)鑒定意見.");

    //技術(shù)人員回復(fù)加簽,在由當(dāng)前人發(fā)送到下一個(gè)節(jié)點(diǎn)。
    string infoReply = BP.WF.Dev2Interface.Node_AskforReply("001", 103, workid,0, "我已經(jīng)出具了技術(shù)鑒定意見,請(qǐng)參考.");

    結(jié)束流程

    • 流程結(jié)束有三種方式
    • 第一種走到最后一個(gè)節(jié)點(diǎn)正常結(jié)束。
    • 第二種在特定的節(jié)點(diǎn)上,用戶需要終止流程向下運(yùn)動(dòng)(與刪除流程不同)。
    • 第三種在特定的節(jié)點(diǎn)上,用戶需要?jiǎng)h除流程。


    /* * 手工的結(jié)束流程,這種方式會(huì)記錄日志.
    */

    string overInfo = BP.WF.Dev2Interface .Flow_DoFlowOver("001" , workID, "該供應(yīng)商找不到了,要結(jié)束掉該流程。");
    /* * 刪除流程,
    * 刪除流程有多種方式,用戶可以根據(jù)自己的需求,調(diào)用不同的方式.
    * 最后一個(gè)參數(shù)是是否刪除子流程.
    */

    //按照標(biāo)記刪除流程
    string delInfo0 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByFlag("001", workID, "我不需要請(qǐng)假了", true);

    //徹底的刪除流程,無日志記錄.
    string delInfo1 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByReal("001", workID, "我不需要請(qǐng)假了", true);

    //徹底的刪除流程,有日志記錄.
    string delInfo2 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByWriteLog("001", workID, "我不需要請(qǐng)假了", true);

    ?

    轉(zhuǎn)載于:https://my.oschina.net/ccflow/blog/3023004

    總結(jié)

    以上是生活随笔為你收集整理的驰骋工作流程底层的API开发接口-重要的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。