馳騁BPM工做流後臺經常使用接口與前臺經常使用方法 前端
工做流引擎發起、待辦、在途、已完成接口 json
獲取數據是如何根據您本身的須要,經過CCBPM的接口獲取想要的數據。 bootstrap
好比:發起流程,待辦工做,在途工做。 url
類名:BP.WF. Dev2Interface.DT_* 在當前的靜態方法中通常的返回的都是datatable數據集合類型,能夠將它轉化爲json以方便前臺生成列表。 spa
發起列表:BP.WF. Dev2Interface.DB_GenerCanStartFlowsOfDataTable htm
發起列表是當前登陸人員,或者指定人員能夠發起的流程列表,返回的數據源包含 No,Name兩個列,分別是流程模版編號,流程模版名稱,能夠鏈接到工做處理器 MyFlow.htm?FK_Flow=001 上讓用戶能夠直接發起流程。 blog
系統提供的功能頁面:請參考/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 ip
系統提供的功能頁面:請參考/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 |
發送消息 |
組織結構接口是指對組織結構操做的接口,登陸、登出發送消息等操做。
接口是以Port_開頭,本操做手冊不能及時與代碼同步,最新的接口須要參考代碼。
方法 |
方法名 |
參數 |
備註 |
Port_Login |
登陸 |
UserNo |
|
Port_SigOut |
退出登陸 |
前端的主要接口,主要包括前端訪問後臺數據或方法、共用方法,主要集中封裝在幾個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();
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類
改方法主要封裝了模態彈出窗的方法。
使用方法:
//彈出模態框
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("關閉了");
});
}