• 驰骋BPM工作流后台常用接口与前台常用方法


    驰骋BPM工作流后台常用接口与前台常用方法

    一、流程引擎后台常用接口

    接口说明

     

    1. 所谓的驰骋工作流引擎的接口,在BP.WF.Dev2Interface.cs上面的静态方法,前台页面通过这些静态方法通过页面于操作者提供交互数据功能交互。
    2. Port_* 开头的方法都是组织结构相关的操作,比如:登录、登出、发送消息。
    3. DB_*的都是提供数据列表的接口,比如:发起列表、待办列表、在途列表、完成列表等。
    4. 驰骋BPM工作流的发起、待办、在途菜单功能都是通过这个静态方法提供的BP.WF.Dev2Interface.DB_*接口生成的列表。
    5. 驰骋BPM的工作处理器创建工作ID、发送、退回、移交、删除、加签、会签等操作也是调用BP.WF.Dev2Interface.Node_*通过流程接口对流程的操作比如:流程的删除、回滚、撤销、冻结、取消冻结等流程的操作都是操作的BP.WF.Dev2Interface.Flow_*开发接口。
    6. 以WorkOpt_* 开头的方法,都是工作流引擎部件的代码,比如在退回窗口上,获取可以退回的节点列表,设置指定的节点处理人。
    7. 我们在流程属性里有一个接口,请参考如下图:

      工作流引擎发起、待办、在途、已完成接口

      获取数据是如何根据您自己的需要,通过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("关闭了");

                  });

              }

    1. 相关阅读:
      判断是否微信浏览器,是的话,加入自己想加的功能
      Spring MVC源码(三) ----- @RequestBody和@ResponseBody原理解析
      Spring MVC源码(二) ----- DispatcherServlet 请求处理流程 面试必问
      Spring MVC源码(一) ----- 启动过程与组件初始化
      spring5 源码深度解析----- IOC 之 bean 的初始化
      spring5 源码深度解析-----IOC 之 循环依赖处理
      spring5 源码深度解析-----IOC 之 属性填充
      spring5 源码深度解析----- IOC 之 bean 创建
      spring5 源码深度解析----- IOC 之 开启 bean 的加载
      spring5 源码深度解析----- IOC 之 自定义标签解析
    2. 原文地址:https://www.cnblogs.com/mengjuan/p/13740436.html
    Copyright © 2020-2023  润新知