Skip to content

informat.bpmn 工作流操作

概述

使用informat.bpmn查询和创建工作流实例,工作流任务

processEngine

ProcessEngine是Flowable流程引擎的核心组件,负责管理流程定义、流程实例、任务、变量、事件等各个方面,为用户提供了一套完整的流程管理接口。

javascript
informat.bpmn.processEngine()

提示

此接口需要license中包含系统函数调用模块

参考ProcessEngine文档

示例

javascript
// 设置工作流任务负责人
let processEngine = informat.bpmn.processEngine();
let taskService = processEngine.getTaskService();
taskService.setAssignee('dcc50d2e-0601-11ef-92a9-0e6cd3d9f023','zhangsan');

getBpmnProcessDefineList

查询工作流定义列表

javascript
informat.bpmn.getBpmnProcessDefineList(module, query);
参数类型描述
moduleIdString工作流模块标识符
queryBpmnProcessQuery查询条件

返回值

返回值为符合条件的工作流定义列表,类型为 Array<BpmnProcess>

示例

isMultiInstanceActivity

判断节点是否为多实例节点

javascript
informat.bpmn.isMultiInstanceActivity(procDefId, activityId)

入参

参数类型描述
procDefIdString流程定义ID
activityIdString节点ID

返回值

返回值Boolean

示例

queryInstanceList

查询工作流实例列表

javascript
informat.bpmn.queryInstanceList(module, query)

入参

参数类型描述
moduleIdString工作流模块标识符
queryBpmnInstanceQuery查询条件

返回值

返回值为符合条件的工作流实例列表,类型为 Array<BpmnInstance>

示例-通过状态查询工作流实例

示例-通过数据表记录 ID 查询工作流实例

addComment

添加评论

javascript
informat.bpmn.addComment(moduleId, taskId, msg)

入参

参数类型描述
moduleIdString工作流模块标识符
taskIdString任务 ID
msgString评论内容

返回值

返回值为新增评论的 ID 记录

示例

注意

存入数据库的 message 格式为:

json
{
  "type": "doc",
  "content": [
    {
      "type": "paragraph",
      "content": [
        {
          "type": "text",
          "text": "今天的天气特别好"
        }
      ]
    }
  ]
}

queryCommentListCount

查询工作流任务评论列表总数

javascript
informat.bpmn.queryCommentListCount(moduleId, query);
参数类型描述
moduleIdString工作流模块标识符
queryBpmnCommentQuery查询条件

返回值

返回值为符合条件的评论总数,类型为Integer

示例

queryCommentList

查询工作流评论列表

javascript
informat.bpmn.queryCommentList(module, query);
参数类型描述
moduleIdString工作流模块标识符
queryBpmnCommentQuery查询条件

返回值

返回值为符合条件的工作流评论列表,类型为 Array<BpmnComent>

示例

queryInstanceListCount

查询工作流实例列表总数

javascript
informat.bpmn.queryInstanceListCount(moduleId, query);
参数类型描述
moduleIdString工作流模块标识符
queryBpmnInstanceQuery查询条件

返回值

返回值为符合条件的工作流实例列表总数,类型为Integer

示例

queryInstanceById

查询工作流实例

javascript
informat.bpmn.queryInstanceById(moduleId, instanceId);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID

返回值

返回值为符合条件的实例,类型为BpmnInstance

示例

queryTaskList

查询工作流任务列表

javascript
informat.bpmn.queryTaskList(moduleId, query);
参数类型描述
moduleIdString工作流模块标识符
queryBpmnTaskQuery查询条件

返回值

返回值为符合条件的任务列表,类型为 Array<BpmnTask>;

示例

queryTaskListCount

查询工作流任务列表总数

javascript
informat.bpmn.queryTaskListCount(moduleId, query);
参数类型描述
moduleIdString工作流模块标识符
queryBpmnTaskQuery查询条件

返回值

返回值为符合条件的任务总数,类型为Integer

示例

queryTaskById

查询工作流任务

javascript
informat.bpmn.queryTaskById(moduleId, taskId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString任务 ID

返回值

返回值为符合条件的任务,类型为BpmnTask

示例

setInstanceVar

设置流程实例变量

javascript
informat.bpmn.setInstanceVar(moduleId, instanceId, name, value);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
nameString变量名称
valueObject变量值

示例

javascript
informat.bpmn.setInstanceVar('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', 'userName', '张三');

getInstanceVar

获取流程实例变量

javascript
informat.bpmn.getInstanceVar(moduleId, instanceId, name);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
nameString变量名称

返回值

类型Object,返回值为变量值

示例

getInstanceVars

获取流程实例所有变量

javascript
informat.bpmn.getInstanceVars(moduleId, instanceId);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID

返回值

类型Object,返回值为所有变量键值队

示例

setInstanceLocalVar

设置流程实例局部变量

javascript
informat.bpmn.setInstanceLocalVar(moduleId, instanceId, name, value);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
nameString变量名称
valueObject变量值

示例

javascript
informat.bpmn.setInstanceLocalVar('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', 'project', '项目管理');

getInstanceLocalVar

获取流程实例局部变量

javascript
informat.bpmn.getInstanceLocalVar(moduleId, instanceId, name);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
nameString变量名称

返回值

类型Object,返回值为变量值

示例

setTaskVar

设置流程任务变量

javascript
informat.bpmn.setTaskVar(moduleId, taskId, name, value);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
nameString变量名称
valueObject变量值

示例

javascript
informat.bpmn.setTaskVar('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'taskName', '任务');

getTaskVar

获取流程任务变量

javascript
informat.bpmn.getTaskVar(moduleId, taskId, name);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
nameString变量名称

返回值

类型Object,返回值为变量值

示例

getTaskVars

获取流程任务变量

javascript
informat.bpmn.getTaskVars(moduleId, taskId, localVariable);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
localVariableBoolean是否是本地变量

返回值

类型Object,返回值为变量值

示例

setTaskLocalVar

设置流程任务局部变量

javascript
informat.bpmn.setTaskLocalVar(moduleId, taskId, name, value);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
nameString变量名称
valueObject变量值

示例

javascript
informat.bpmn.setTaskLocalVar('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'taskStatus', '进行中');

注意事项

在流程任务节点开启将表单数据存储为任务变量(任务变量仅当前任务可见)时,设置流程任务变量的表单信息,变量名称需要使用${form}_task,其中${form}为表单标识符

getTaskLocalVar

获取流程任务局部变量

javascript
informat.bpmn.getTaskLocalVar(moduleId, taskId, name);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
nameString变量名称

返回值

类型Object,返回值为变量值

示例

注意事项

在流程任务节点开启将表单数据存储为任务变量(任务变量仅当前任务可见)时,获取流程任务变量的表单信息,变量名称需要使用${form}_task,其中${form}为表单标识符

createInstance

创建工作流实例

javascript
informat.bpmn.createInstance(moduleId, processDefineId, startUserId, form, vars);
参数类型描述
moduleIdString工作流模块标识符
processDefineIdString工作流定义标识符
startUserIdString发起人账号 ID
formObject数据表记录
varsObject启动变量

返回值

类型String,返回值为流程实例ID

示例

setTaskAssignee

设置任务的处理人

javascript
informat.bpmn.setTaskAssignee(moduleId, taskId, userId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
userIdString处理人账号 ID

示例

javascript
informat.bpmn.setTaskAssignee('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'yvkc2kwpy3xzr');

setTaskOwner

设置任务的所有者

javascript
informat.bpmn.setTaskOwner(moduleId, taskId, userId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
userIdString所有者账号 ID

示例

javascript
informat.bpmn.setTaskOwner('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'yvkc2kwpy3xzr');

claimTask

指派任务(将任务的责任分配给一个具体的参与者)

INFO

如果任务已经被领取,则不能指派任务。

javascript
informat.bpmn.claimTask(moduleId, taskId, userId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
userIdString处理人账号 ID

示例

javascript
informat.bpmn.claimTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan');

unclaimTask

取消任务的指派

javascript
informat.bpmn.unclaimTask(moduleId, taskId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID

示例

javascript
informat.bpmn.unclaimTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615');

transferTask

转交任务(将任务的所有权和处理权从当前参与者转移给另一个参与者,即将任务转交给另一个参与者)

javascript
informat.bpmn.transferTask(moduleId, taskId, userId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
userIdString处理人账号 ID

示例

javascript
informat.bpmn.transferTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan');

delegateTask

委托任务(将任务的责任从当前参与者转移给另一个参与者,即委派任务给另一个参与者)

javascript
informat.bpmn.delegateTask(moduleId, taskId, userId, autoDelegate);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
userIdString处理人账号 ID
autoDelegateBoolean是否自动委派

TIP

需要注意的是,当autoDelegate为 true 时,需要确保已经定义了自动委派规则,以确保任务能够正确地被委派给合适的参与者。同时,需要确保自动委派不会引起死循环或其他问题,以保证流程的稳定性和可靠性。

示例

javascript
informat.bpmn.delegateTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan', true);

getIdentityLinksForTask

获取与任务相关联的身份关联列表

javascript
informat.bpmn.getIdentityLinksForTask(moduleId, taskId);

INFO

用于查询任务相关的参与者或候选人。通过查询身份关联列表,可以确定哪些用户或角色与任务相关联,并对任务进行相应的授权和管理

参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID

返回值

类型 Array<BpmnIdentityLink>; 示例

addTaskCandidateRole

向任务添加候选角色

javascript
informat.bpmn.addTaskCandidateRole(moduleId, taskId, roleId);

TIP

候选角色是指可以参与到任务处理中的应用角色,例如“开发人员”、“测试人员”等。

参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
roleIdString应用角色 ID

示例

javascript
informat.bpmn.addTaskCandidateRole('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'tester');

deleteTaskCandidateRole

删除任务候选角色。

javascript
informat.bpmn.deleteTaskCandidateRole(moduleId, taskId, roleId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
roleIdString应用角色 ID

示例

javascript
informat.bpmn.deleteTaskCandidateRole('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'tester');

addTaskCandidateUser

向任务添加候选用户

javascript
informat.bpmn.addTaskCandidateUser(moduleId, taskId, userId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
userIdString候选用户 ID

示例

javascript
informat.bpmn.addTaskCandidateUser('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan');

deleteTaskCandidateUser

删除任务候选用户

javascript
informat.bpmn.deleteTaskCandidateUser(moduleId, taskId, userId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
userIdString候选用户 ID

示例

javascript
informat.bpmn.deleteTaskCandidateUser('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan');

completeTask

完成任务

javascript
informat.bpmn.completeTask(moduleId, taskId, variables);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
variablesObject完成任务时需要传递给后续步骤的输出数据和流程变量

示例

javascript
informat.bpmn.completeTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', null);

moveToActivity

将流程节点从当前位置移动到另一个节点

javascript
informat.bpmn.moveToActivity(moduleId, taskId, targetActivityId);
参数类型描述
moduleIdString工作流模块标识符
taskIdString流程任务 ID
targetActivityIdString目标节点 ID(工作流「设置流程图 >> 选中节点 >> 基本信息」可以查到)

示例

javascript
informat.bpmn.moveToActivity('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'Activity_0y15knc');

revokeInstance

撤销流程实例

javascript
informat.bpmn.revokeInstance(moduleId, instanceId, reason);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
reasonString取消理由

示例

javascript
informat.bpmn.revokeInstance('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', '取消流程');

deleteInstance

删除流程实例

javascript
informat.bpmn.deleteInstance(moduleId, instanceId, reason);

TIP

当一个流程实例被删除时,该流程将被终止,并将清除所有与该流程实例相关的数据和状态信息。

参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
reasonString删除理由

示例

javascript
informat.bpmn.deleteInstance('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', '删除流程');

sendMessage

向流程实例或执行实例发送消息

javascript
informat.bpmn.sendMessage(moduleId, instanceId, messageName);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
messageNameString消息名称

示例

javascript
informat.bpmn.sendMessage('flow','9cd49233-24b2-11ef-bcd1-a6c0b0be7615','消息A');

sendSignal

向流程实例或执行实例发送信号

javascript
informat.bpmn.sendSignal(moduleId, instanceId, signalName);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
signalNameString信号名称

示例

javascript
informat.bpmn.sendSignal('flow','9cd49233-24b2-11ef-bcd1-a6c0b0be7615','信号A');

trigger

触发一个正在等待的流程实例

javascript
informat.bpmn.trigger(moduleId, instanceId, activityId);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
activityIdString中间事件 ID(在流程设计节点的基本信息里可以查看)

示例

javascript
informat.bpmn.trigger('flow', '9cd49233-24b2-11ef-bcd1-a6c0b0be7615', 'Activity_0jl4nsq');

getProcessDefineXml

获取工作流定义的xml内容

javascript
informat.bpmn.getProcessDefineXml(moduleId, procDefId);
参数类型描述
moduleIdString工作流模块标识符
procDefIdString流程定义ID

示例

generateProcessDiagram

生成工作流流程图图片

javascript
informat.bpmn.generateProcessDiagram(moduleId, procDefId, config);
参数类型描述
moduleIdString工作流模块标识符
procDefIdString流程定义ID
configBpmnProcessDiagramConfig配置信息

示例

setProcessInstanceName

设置流程实例名称

javascript
informat.bpmn.setProcessInstanceName(moduleId, instanceId, name);
参数类型描述
moduleIdString工作流模块标识符
instanceIdString流程实例 ID
nameString变量名称

示例

javascript
informat.bpmn.setProcessInstanceName('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', '新流程实例名称');

addMultiInstanceExecution

多实例新增流程执行

javascript
informat.bpmn.addMultiInstanceExecution(moduleId, activityId, parentExecutionId, variables);
参数类型描述
moduleIdString工作流模块标识符
activityIdString流程节点ID
parentExecutionIdString父流程执行ID,可以是流程实例ID
variablesObject流程执行变量

返回值

返回值为新增的流程执行ID,类型为String

示例

INFO

此接口只针对多实例节点有效

deleteMultiInstanceExecution

多实例删除流程执行

javascript
informat.bpmn.deleteMultiInstanceExecution(moduleId, executionId, executionIsCompleted);
参数类型描述
moduleIdString工作流模块标识符
executionIdString流程节点ID
executionIsCompletedBoolean是否标记流程执行已完成

示例

javascript
// 为节点A删除一个审批人
informat.bpmn.deleteMultiInstanceExecution('flow','a8be867d-24af-11ef-bcd1-a6c0b0be7615',true);

INFO

此接口只针对多实例节点有效

addBpmnTaskCcList

此方法向BPMN任务抄送人表中添加抄送人

javascript
informat.bpmn.addBpmnTaskCcList(taskId, copyUserList);
参数类型描述
taskIdStringBPMN任务的ID。
copyUserListArray<String>要添加的抄送人用户ID列表。

示例

javascript
informat.bpmn.addBpmnTaskCcList('a8c27e21-24af-11ef-bcd1-a6c0b0be7615', ['yvkc2kwpy3xzr']);

deleteBpmnTaskCc

此方法从BPMN任务抄送人表移除一个抄送人。

javascript
informat.bpmn.deleteBpmnTaskCc(taskId, copyUserId);
参数类型描述
taskIdStringBPMN任务的ID。
copyUserIdString要从CC列表中移除的用户ID。

示例

javascript
informat.bpmn.deleteBpmnTaskCc('3cc8fe05-8b9f-11ee-bbf4-a6c0b0be7615', 'zhangsan');

queryBpmnTaskCcList

根据给定查询检索BPMN任务抄送人列表。

javascript
informat.bpmn.queryBpmnTaskCcList(query);
参数类型描述
queryQuery用于过滤BPMN任务抄送人表的查询对象。

示例

queryBpmnTaskCcListCount

根据给定过滤器返回BPMN任务抄送人表的数量。

javascript
informat.bpmn.queryBpmnTaskCcListCount(filter);
参数类型描述
filterFilter用于计数BPMN任务抄送人表的过滤器对象。

示例

getHistoryTaskVariables

获取流程历史任务变量

javascript
informat.bpmn.getHistoryTaskVariables(taskId);
参数类型描述
taskIdString流程任务 ID

返回值

类型Object,返回值为所有变量值

示例

javascript
informat.bpmn.getHistoryTaskVariables('9cf63d7a-ca24-11ed-8bc0-be634eacf49a')

getHistoryTaskVariable

获取流程历史任务变量

javascript
informat.bpmn.getHistoryTaskVariable(taskId, variableName);
参数类型描述
taskIdString流程任务 ID
variableNameString变量名称

返回值

类型Object,返回值为变量值

示例

javascript
informat.bpmn.getHistoryTaskVariable('9cf63d7a-ca24-11ed-8bc0-be634eacf49a','form')

deleteTasks

删除工作流任务列表

javascript
informat.bpmn.deleteTasks(moduleId, taskIds, deleteReason, cascade);
参数类型描述
moduleIdString模块标识符
taskIdsArray<String>任务ID列表
deleteReasonString删除原因
cascadeBoolean是否级联删除

返回值

示例

javascript
informat.bpmn.deleteTasks('flow', ['9cf63d7a-ca24-11ed-8bc0-be634eacf49a'],'测试删除', true);