馳騁BPM工作流後台常用接口與前台常用方法
一、流程引擎後台常用接口
接口説明
- 所謂的馳騁工作流引擎的接口,在BP.WF.Dev2Interface.cs上面的靜態方法,前台頁面通過這些靜態方法通過頁面於操作者提供交互數據功能交互。
- Port_* 開頭的方法都是組織結構相關的操作,比如:登錄、登出、發送消息。
- DB_*的都是提供數據列表的接口,比如:發起列表、待辦列表、在途列表、完成列表等。
- 馳騁BPM工作流的發起、待辦、在途菜單功能都是通過這個靜態方法提供的BP.WF.Dev2Interface.DB_*接口生成的列表。
- 馳騁BPM的工作處理器創建工作ID、發送、退回、移交、刪除、加簽、會籤等操作也是調用BP.WF.Dev2Interface.Node_*通過流程接口對流程的操作比如:流程的刪除、回滾、撤銷、凍結、取消凍結等流程的操作都是操作的BP.WF.Dev2Interface.Flow_*開發接口。
- 以WorkOpt_* 開頭的方法,都是工作流引擎部件的代碼,比如在退回窗口上,獲取可以退回的節點列表,設置指定的節點處理人。
- 我們在流程屬性裏有一個接口,請參考如下圖:

工作流引擎發起、待辦、在途、已完成接口
獲取數據是如何根據您自己的需要,通過CCBPM的接口獲取想要的數據。
比如:發起流程,待辦工作,在途工作。
類名:BP.WF. Dev2Interface.DT_* 在當前的靜態方法中一般的返回的都是datatable數據集合類型,可以將它轉化為json以方便前台生成列表。
發起列表:BP.WF. Dev2Interface.DB_GenerCanStartFlowsOfDataTable
發起列表是當前登錄人員,或者指定人員可以發起的流程列表,返回的數據源包含 No,Name兩個列,分別是流程模版編號,流程模版名稱,可以連接到工作處理器 MyFlow.htm?FK_Flow=001 上讓用户可以直接發起流程。
系統提供的功能頁面:請參考/WF/Start.htm
待辦列表:BP.WF. Dev2Interface.DB_ GenerEmpWorksOfDataTable
就是當前操作員的待辦,需要他解決的問題,待辦列表返回的是WorkID流程實例ID,Title流程實例標題,FK_Flow流程模版編號,FlowName流程模版名稱等列,更多的信息請參考(Select * from WF_EmpWorks的視圖)。開發者可以根據這個數據源生成待辦數據列表,連接到MyFlow.htm,比如MyFlow.htm?WorkID=10112&FK_Flow=002&FK_Node=203
系統提供的功能頁面:請參考/WF/Todolist.htm
在途列表: BP.WF. Dev2Interface.DB_ GenerRuningOfDataTable
顧名思義在途就是未完成的工作,並且我參與了,比如,我發起流程,他就是我的在途,我審批過的流程。對於在途流程的集合返回的列有,WorkID, Title 等。連接到工作查看器上比如,/WF/MyView.htm?WorkID=111&FK_Flow=001,在在途上可以執行,撤銷或者催辦操作。
系統提供的功能頁面:請參考/WF/Runing.htm
已完成列表: BP.WF. Dev2Interface. DB_FlowComplete
我審批或發起的,並且已經結束的流程。對於已完成流程的集合返回的列有,WorkID, Title 等。
系統提供的功能頁面:請參考/WF/Complete.htm
流程接口
流程接口是指對流程實例操作的接口,比如流程的催辦、回滾、刪除、凍結等操作。
流程的接口是以Flow_開頭的接口,本操作手冊不能及時與代碼同步,最新的接口需要參考代碼。
|
方法 |
方法名 |
參數 |
備註 |
|
Flow_DoFlowOver |
流程完成 |
workID |
|
|
Flow_DoPress |
催辦 |
workID |
|
|
Flow_DoRebackWorkFlow |
回滾 |
workID |
|
|
Flow_DoDeleteFlowByFlag |
邏輯刪除 |
workID |
|
|
Flow_DoUnDeleteFlowByFlag |
撤銷邏輯刪除 |
workID |
|
|
Flow_DoFix |
凍結 |
workID |
|
|
Flow_DoUnFix |
撤銷凍結 |
workID |
|
|
Flow_DoDeleteFlowByReal |
徹底的刪除 |
workID |
|
|
Flow_DoDeleteDraft |
刪除草稿 |
workID |
|
|
Flow_DoUnSend |
撤銷發送 |
workID |
|
|
Flow_IsCanDoCurrentWork |
判斷是否可以處理當前工作 |
workID |
|
|
Flow_IsCanDeleteFlowInstance |
判斷是否有刪除流程實例的權限 |
workID |
|
|
Flow_IsCanStartThisFlow |
判斷是否可以發起流程 |
workID |
|
|
Flow_SetFlowTitle |
設置流程標題 |
workID |
|
|
Flow_SetSDTOfFlow |
設置流程應完成日期 |
workID |
|
|
Flow_ReSend |
重新發送 |
workID |
|
|
Flow_DoComeBackWorkFlow |
把流程從非正常運行狀態恢復到正常運行狀態. |
workID |
比如現在的流程的狀態是,刪除,掛起,現在恢復成正常運行。 |
工作流節點接口
節點接口是指對流程實例操作的接口,比如創建workid,執行發送,退回,移交,會籤等操作。
接口是以Node_開頭的接口,本操作手冊不能及時與代碼同步,最新的接口需要參考代碼。
|
方法 |
方法名 |
參數 |
備註 |
|
Node_CreateBlankWork |
創建workid |
||
|
Node_SendWork |
執行發送 |
||
|
Node_ReturnWork |
執行退回 |
||
|
Node_SetWorkRead |
設置工作已讀 |
||
|
Node_SetWorkUnRead |
設置工作未讀 |
||
|
Node_Shift |
移交 |
||
|
Node_ShiftUn |
撤銷移交 |
||
|
Node_Allot |
工作分配 |
||
|
Node_AddTodolist |
增加一個操作員 |
||
|
Node_AddNextStepAccepters |
增加指定步驟的操作員 |
||
|
Node_CC |
抄送 |
||
|
Node_CC_DoDel |
刪除抄送 |
||
|
Node_CC_SetRead |
設置讀取 |
||
|
Node_SetDraft |
設置為草稿 |
||
|
Node_SetDraft2Todolist |
把草稿轉為待辦 |
||
|
Node_HungUpWork |
掛起 |
||
|
Node_UnHungUpWork |
撤銷掛起 |
||
|
WriteTrackInfo |
寫入軌跡 |
||
|
WriteToSMS |
寫入消息列表 |
||
|
WorkOpt_SetAccepter |
指定節點接收人 |
||
|
Port_SendMsg |
發送消息 |
BPM工作流系統登錄接口
組織結構接口是指對組織結構操作的接口,登錄、登出發送消息等操作。
接口是以Port_開頭,本操作手冊不能及時與代碼同步,最新的接口需要參考代碼。
|
方法 |
方法名 |
參數 |
備註 |
|
Port_Login |
登錄 |
UserNo |
|
|
Port_SigOut |
退出登錄 |
二、馳騁BPM工作流前端常用方法
工作流引擎常用接口説明
前端的主要接口,主要包括前端訪問後台數據或方法、共用方法,主要集中封裝在幾個js文件中。
WF/Comm/Gener.js
Gener.js,主要封裝了前台訪問後台的方法,主要包含以下幾個方法:
1.WebUser方法
作用:用於前台獲取當前登陸人的信息
使用説明:
//先聲明
var user=new WebUser();
//獲取當前登陸人帳號
var no=user.No;
//獲取當前登陸人姓名
var name=user.Name;
//獲取當前登陸人部門編號
var fk_dept=user.FK_Dept;
//獲取當前登陸人部門名稱
var depName=user.FK_DeptName;
2. HttpHandler方法
作用:用於訪問後台接口
使用説明:
//先聲明接口所在位置(包名,namespace)以及類名,比如BP.AS.Handler包名下的App.cs
var handler=new HttpHandler("BP.AS.Handler.App");
//根據訪問的接口,決定是否需要傳遞參數
handler.AddPara("參數名1","參數值1");
handler.AddPara("參數名2","參數值2");
//增加附件參數(所有控件類型為input[type=file]的數據)
handler.AddFileData();
//增加JSON格式數據
handler.AddJson("參數名","JSON格式數據");
.........省略......
//執行接口(GetDataList),並返回字符類型數據
var data=handler. DoMethodReturnString("GetDataList");
//執行接口(GetDataList),並返回JSON數據
var data=handler. DoMethodReturnJSON ("GetDataList");
3.替換表達式方法
作用:用於替換字符串的變量
變量格式:@+變量名
使用方法:
//替換字符串中的變量
var char=DealExp("字符串",new WebUser());
4.DBAccess方法
作用:執行SQL語句
使用方法:
//查詢數據列表,返回值格式為JSON格式
var data=DBAccess. RunSQLReturnTable("查詢語句");
//查詢並返回只有一行一列的數據,返回值格式為字符類型
var data=DBAccess. RunSQLReturnVal ("查詢語句");
//執行刪除、更新
var data= DBAccess.RunSQL("SQL語句");
5.Entity方法
作用:對實體類進行操作,只能操作單條數據
使用方法:
以人員實體類為例(BP.Port.Emp)
//先聲明一條數據,主鍵方式
var emp=new Entity("BP.Port.Emp","zhangsan");
//或
var emp=new Entity("BP.Port.Emp");
emp.Retrieve("類中存在列名","唯一值,並不一定的主鍵");
//取值,只要類中存在的值,都可以使用
var name=emp.Name;
//更新
emp.Name="張三";
emp.Update();
//刪除
emp.Delete();
//插入
var emp=new Entity("BP.Port.Emp");
emp.SetValByKey("列名","值");
...省略......
emp.Insert();或者emp.DirectInsert();
Insert方法與DirectInsert方法不同之處在於,執行Insert方法時,系統會執行插入前、插入中、插入後三個事件,DirectInsert則只執行插入數據,不執行事件。
//某個值是否存在(比如判斷帳號為zhangsan的數據是否存在)
var emp=new Entity("BP.Port.Emp","zhangsan");
var isexits=emp. IsExits();
true為存在,false為不存在
6.Entites方法
作用:對實體類進行操作,多條數據操作,Entity可以被認作是Entites的一條記錄
使用方法:
以人員實體類為例(BP.Port.Emp)
//先聲明一條數據,主鍵方式
var emps=new Entites ("BP.Port.Emp");
//返回值格式為JSON
emps.Retrieve("列名1","參數1","列名2","參數2","列名3","參數3".....);
或者,查詢所有數據
emps. RetrieveAll();
//刪除
emps.Delete();
WF/Script/ QueryString.js
QueryString.js,主要封裝了獲取url參數的方法
1.獲取某個url參數的值
var DoType= GetQueryString("DoType");
2.獲取通用的參數
//獲取WorkID
var WorkID= RequestArgs.WorkID;
//獲取FK_Flow
var WorkID= RequestArgs. Flow;
//獲取FK_Node
var WorkID= RequestArgs. Node;
.....省略......
其他參數請參考該JS文件下的RequestArgs類
WF/Script/ bootstrap/ BootstrapUIDialog.js
改方法主要封裝了模態彈出窗的方法。
使用方法:
//彈出模態框
function WinOpenParentMenu(url, title) {
//模態窗寬度
var W = document.body.clientWidth - 200;
//模態窗高度
var H = document.body.clientHeight - 100;
OpenBootStrapModal("URL", "eudlgframe", "模態窗標題", W, H, "icon-property", false, function () { }, null, function () {
//關閉後執行方法的方法,不需要時,可以為空
alert("關閉了");
});
}