驰骋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("关闭了");
});
}