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>;

示例

javascript
informat.bpmn.getBpmnProcessDefineList('flow', {
    accountId: 'zhangsan',
    name: '请假'
})
json
[
  {
    "color": "c2",
    "createTime": 1692861587735,
    "icon": "store",
    "id": "s615lvvta7l7",
    "key": "leave",
    "name": "请假流程",
    "remark": "",
    "rowNumber": 1,
    "updateTime": 1692861587735
  }
]

isMultiInstanceActivity

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

javascript
informat.bpmn.isMultiInstanceActivity(procDefId, activityId)

入参

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

返回值

返回值Boolean

示例

javascript
informat.bpmn.isMultiInstanceActivity('process_uotiqkw6kk5d:22:56aa67bf-8b65-11ee-adfa-a6c0b0be7615', 'Activity_121ubs9');
json
true

queryInstanceList

查询工作流实例列表

javascript
informat.bpmn.queryInstanceList(module, query)

入参

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

返回值

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

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

javascript
informat.bpmn.queryInstanceList('flow', {
    pageIndex: 1,
    pageSize: 10,
    processDefineId: 'leave',
    status: 'doing'
});
json
[
  {
    "active": true,
    "businessKey": "s615lvvta7l7",
    "id": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
    "isActive": true,
    "name": "请假",
    "procDefId": "process_idy5gsmor6ym:78:3663d930-ca24-11ed-b464-9604767b6c5e",
    "procDefName": "请假流程",
    "procInstId": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
    "startTime": 1679649411594,
    "startUserAvatar": "pic15.png",
    "startUserId": "zhangsan",
    "startUserName": "张三",
    "taskCount": 0,
    "tenantId": "g09aj7cus3d8s_croe0zft168y3_pwlfcrmbm46t"
  }
]

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

javascript
informat.bpmn.queryInstanceList('flow', {
    pageIndex: 1,
    pageSize: 10,
    status: 'doing',
    processDefineId: 'leave',
    varList: [{ 'name': 'form_recordId', 'value': 'vem8fxf4ooztl' }]
});
json
[
  {
    "active": true,
    "businessKey": "s615lvvta7l7",
    "id": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
    "isActive": true,
    "name": "请假",
    "procDefId": "process_idy5gsmor6ym:78:3663d930-ca24-11ed-b464-9604767b6c5e",
    "procDefName": "请假流程",
    "procInstId": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
    "startTime": 1679649411594,
    "startUserAvatar": "pic15.png",
    "startUserId": "zhangsan",
    "startUserName": "张三",
    "taskCount": 0,
    "tenantId": "g09aj7cus3d8s_croe0zft168y3_pwlfcrmbm46t"
  }
]

addComment

添加评论

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

入参

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

返回值

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

示例

javascript
informat.bpmn.addComment('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', '今天的天气特别好');
text
c5cyqgj06avp0

注意

存入数据库的 message 格式为:

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

deleteComment

删除评论

javascript
informat.bpmn.deleteComment(moduleId, taskId, id)

入参

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

返回值

删除的评论数量

示例

javascript
informat.bpmn.deleteComment('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'b8sy2k46dfckh');
text
1

queryCommentListCount

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

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

返回值

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

示例

javascript
informat.bpmn.queryCommentListCount('flow', {
    procInstId: '1554f565-3e48-11ed-8392-a210f8dfa819',
    taskId: 'bf5e798f-3f1b-11ed-b5f4-a210f8dfa819'
});
text
1

queryCommentList

查询工作流评论列表

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

返回值

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

示例

javascript
informat.bpmn.queryCommentList('flow', {
    pageIndex: 1,
    pageSize: 10,
    moduleId: 'flow',
    procInstId: '1554f565-3e48-11ed-8392-a210f8dfa819',
    taskId: 'bf5e798f-3f1b-11ed-b5f4-a210f8dfa819'
});
json
[
  {
    "userId": "liutao",
    "procInstId": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
    "taskId": "15571850-3e48-11ed-8392-a210f8dfa819",
    "startTime": 1664271502000,
    "message": "{\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"同意\"}]}]}"
  }
]

queryInstanceListCount

查询工作流实例列表总数

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

返回值

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

示例

javascript
informat.bpmn.queryInstanceListCount('flow', {
    moduleId: 'flow',
    processDefineId: 'insertUser',
    status: 'doing'
});
text
1

queryInstanceById

查询工作流实例

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

返回值

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

示例

javascript
informat.bpmn.queryInstanceById('flow', '9cc1e6fa-ca24-11ed-8bc0-be634eacf49a');
json
{
  "active": true,
  "businessKey": "s615lvvta7l7",
  "id": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
  "isActive": true,
  "name": "请假",
  "procDefId": "process_idy5gsmor6ym:78:3663d930-ca24-11ed-b464-9604767b6c5e",
  "procDefName": "请假流程",
  "procInstId": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
  "startTime": 1679649411594,
  "startUserAvatar": "pic15.png",
  "startUserId": "zhangsan",
  "startUserName": "zhangsan",
  "taskCount": 0,
  "tenantId": "g09aj7cus3d8s_croe0zft168y3_pwlfcrmbm46t"
}

queryTaskList

查询工作流任务列表

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

返回值

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

示例

javascript
informat.bpmn.queryTaskList('flow', {
    pageIndex: 1,
    pageSize: 10,
    procInstId: '9cc1e6fa-ca24-11ed-8bc0-be634eacf49a',
    status: 'doing'
});
json
[
  {
    "assignee": "zhangsan",
    "assigneeAvatar": "c4b936e826fe45b38e1b4072c79a7a79.jpg",
    "assigneeName": "张三",
    "duration": 0,
    "executionId": "9cdf8124-ca24-11ed-8bc0-be634eacf49a",
    "id": "9cf63d7a-ca24-11ed-8bc0-be634eacf49a",
    "name": "部门经理审批",
    "procDefId": "process_idy5gsmor6ym:78:3663d930-ca24-11ed-b464-9604767b6c5e",
    "procDefName": "请假流程",
    "procInstId": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
    "procInstName": "请假",
    "startTime": 1679649411860,
    "startUserAvatar": "pic15.png",
    "startUserId": "zhangsan",
    "startUserName": "zhangsan",
    "taskDefKey": "Activity_0ofrc9c",
    "tenantId": "g09aj7cus3d8s_croe0zft168y3_pwlfcrmbm46t"
  }
]

queryTaskListCount

查询工作流任务列表总数

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

返回值

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

示例

javascript
informat.bpmn.queryTaskListCount('flow', {
    procInstId: '9cc1e6fa-ca24-11ed-8bc0-be634eacf49a',
    status: 'doing'
});
text
1

queryTaskById

查询工作流任务

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

返回值

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

示例

javascript
informat.bpmn.queryTaskById('flow', '9cf63d7a-ca24-11ed-8bc0-be634eacf49a');
json
{
  "assignee": "zhangsan",
  "assigneeAvatar": "c4b936e826fe45b38e1b4072c79a7a79.jpg",
  "assigneeName": "zhangsan",
  "duration": 0,
  "executionId": "9cdf8124-ca24-11ed-8bc0-be634eacf49a",
  "id": "9cf63d7a-ca24-11ed-8bc0-be634eacf49a",
  "name": "部门经理审批",
  "procDefId": "process_idy5gsmor6ym:78:3663d930-ca24-11ed-b464-9604767b6c5e",
  "procDefName": "请假流程",
  "procInstId": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
  "procInstName": "请假",
  "startTime": 1679649411860,
  "startUserAvatar": "pic15.png",
  "startUserId": "zhangsan",
  "startUserName": "zhangsan",
  "taskDefKey": "Activity_0ofrc9c",
  "tenantId": "g09aj7cus3d8s_croe0zft168y3_pwlfcrmbm46t"
}

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,返回值为变量值

示例

javascript
informat.bpmn.getInstanceVar('flow', '9cc1e6fa-ca24-11ed-8bc0-be634eacf49a', 'userName');
text
张三

getInstanceVars

获取流程实例所有变量

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

返回值

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

示例

javascript
informat.bpmn.getInstanceVars('flow', '9cc1e6fa-ca24-11ed-8bc0-be634eacf49a');
json
{
  "reason": "家里有事",
  "instanceId": "9cc1e6fa-ca24-11ed-8bc0-be634eacf49a",
  "form": {
    "approver": {
      "avatar": "c4b936e826fe45b38e1b4072c79a7a79.jpg",
      "id": "zhangsan",
      "name": "张三"
    },
    "id": "isvuoz412f1ve",
    "title": "333",
    "day": 5,
    "status": "1"
  },
  "initiator": "zhangsan",
  "project": "项目管理",
  "taskName": "任务",
  "userName": "张三",
  "taskStatus": "进行中"
}

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,返回值为变量值

示例

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

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,返回值为变量值

示例

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

getTaskVars

获取流程任务变量

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

返回值

类型Object,返回值为变量值

示例

javascript
informat.bpmn.getTaskVars('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', false);
json
{
  "name": "张三"
}

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,返回值为变量值

示例

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

注意事项

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

createInstance

创建工作流实例

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

返回值

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

示例

javascript
let form = {
    level: 1,
    sex: 'man',
    idNo: '450323111111111111',
    post: '刚刚',
    biographicalNote: {
        'id': 'qqc5uxend8j5zg8annd6w.crx',
        'md5': '0b3df75922df4b125309577c93645d0b',
        'name': 'JSON-handle_0.6.1.crx',
        'path': 'do5u69j9ff3ap/jcn3qaf48z6dh/qqc5uxend8j5zg8annd6w.crx',
        'size': 197147,
    },
    name: '肖建宇',
    status: 'atInterview',
};

let vars = {
    startTime: new Date(),
};

informat.bpmn.createInstance('flow', 'insertUser', 'yvkc2kwpy3xzr', form, vars);
text
3cc15cd9-8b9f-11ee-bbf4-a6c0b0be7615

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是否自动委派

注意事项

需要注意的是,当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>;

示例

javascript
informat.bpmn.getIdentityLinksForTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615');
json
[
  {
    "groupId": "admin",
    "id": "662e2b7b-e8e5-11ed-9724-9604767b6c5e",
    "taskId": "a8c27e21-24af-11ef-bcd1-a6c0b0be7615",
    "type": "candidate"
  },
  {
    "taskId": "a8c27e21-24af-11ef-bcd1-a6c0b0be7615",
    "type": "owner",
    "userId": "zhangsan"
  }
]

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);

注意事项

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

参数类型描述
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

示例

javascript
informat.bpmn.getProcessDefineXml('flow', 'process_idy5gsmor6ym:100:ae4923cb-6d64-11ee-a8da-eed108c67451');
xml
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:flowable="http://flowable.org/bpmn"
             xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
             xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:informat="http://informat.cn/schema/bpmn/ip"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="Examples">
    <process id="process_uotiqkw6kk5d" name="项目变更流程" isExecutable="true"
    ...
    >
    <message id="message" name="消息"/>
    <bpmndi:BPMNDiagram id="BPMNDiagram_1"
    ...
    >
</definitions>

generateProcessDiagram

生成工作流流程图图片

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

示例

javascript
let config = {
    activityFontName: "宋体",
    labelFontName: "宋体",
    annotationFontName: "宋体",
    highLightedActivities: ['StartEvent_1', 'Activity_0ofrc9c', 'Activity_0i7rzdo'],
    highLightedFlows: ['Flow_061bx1o', 'Flow_0l1tmev', 'Flow_0n92u98'],
    scaleFactor: 1.0,
    drawSequenceFlowNameWithNoLabelDI: false
}
let procDefId = 'process_idy5gsmor6ym:100:ae4923cb-6d64-11ee-a8da-eed108c67451';
let base64Img = informat.bpmn.generateProcessDiagram('flow', procDefId, config);
console.log('base64Img', base64Img);
text
iVBORw0KGgoAAAANSUhEUgAAByYAAAImCAYAAAAWme0EAACAAElEQVR4XuzdCZxkVX33/8MmIuCCgiAiAwKi4...

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

示例

javascript
// 为节点A新增一个审批人(李四lisi)
var variables = {
    'assignee': 'yvkc2kwpy3xzr'	//assignee是流程节点处理人那里填写的变量名称,按照具体情况需要修改
}
informat.bpmn.addMultiInstanceExecution('flow', 'Activity_0a866jw', 'fa3d9fde-93ff-11ee-b865-eed108c67451', variables);
text
c263580f-9402-11ee-b865-eed108c67451

注意事项

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

deleteMultiInstanceExecution

多实例删除流程执行

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

示例

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

注意事项

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

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任务抄送人表的查询对象。

可过滤的字段

参数类型描述
taskIdString任务ID
copyUserIdString抄送用户

示例

javascript
informat.bpmn.queryBpmnTaskCcList({
    pageIndex: 1,
    pageSize: 10,
    filter: {
        conditionList: [
            { fieldId: 'taskId', opt: 'eq', value: 'taskId' }
        ]
    }
})
json
[
  {
    "copyUserAvatar": "pic7.png",
    "copyUserId": "xwi9jogl4fcx4",
    "copyUserName": "张三",
    "id": "ifpno8kcp60w0",
    "taskId": "fb8ff623-f7ae-11ee-b253-a6c0b0be7615"
  },
  {
    "copyUserAvatar": "383e58e051c849e9bff4f26f432c0764.jpg",
    "copyUserId": "nx8hcjsq4xk8z",
    "copyUserName": "李四",
    "id": "fyyew216vjagc",
    "taskId": "396ebfdd-1770-11ef-b056-a6c0b0be7615"
  }
]

queryBpmnTaskCcListCount

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

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

示例

javascript
informat.bpmn.queryBpmnTaskCcList({
    conditionList: [
        { fieldId: 'taskId', opt: 'eq', value: 'taskId' }
    ]
})
text
2

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);

getStartSetting

获取流程定义启动设置

javascript
informat.bpmn.getStartSetting(moduleKey, defineId);
参数类型描述
moduleKeyString模块标识符
defineIdString流程定义ID

返回值

返回值类型为BpmnStartSetting,流程的启动设置信息

示例

javascript
informat.bpmn.getStartSetting('flow', 'h141dq1w5ijpf')
json
{
  "activityUserList": [],
  "enableStartForm": true,
  "formSetting": {
    "completeSetVarList": [],
    "enableShowProcessInfo": false,
    "formDesignerFieldSettingList": [],
    "id": "form",
    "localVariable": false,
    "tableFieldSettingList": [
      {
        "editable": true,
        "id": "y68l84iidbr9l",
        "visible": true
      },
      {
        "editable": true,
        "id": "vn4v208530vfj",
        "visible": true
      },
      {
        "editable": true,
        "id": "gjkb3rq7q44wu",
        "visible": true
      },
      {
        "editable": true,
        "id": "ceumuggdjze5i",
        "visible": true
      },
      {
        "editable": true,
        "id": "t9416rt5uv818",
        "visible": true
      },
      {
        "editable": true,
        "id": "a3rumke2j97m6",
        "visible": true
      }
    ],
    "tableId": "skwl7tkdsh650",
    "toolBarButtonList": []
  },
  "instanceToolbarButtonList": [],
  "startFormToolbarButtonList": [],
  "startVarList": []
}

getTaskSetting

获取任务设置

javascript
informat.bpmn.getTaskSetting(procDefineId, taskDefKey);
参数类型描述
procDefineIdString流程定义ID
taskDefKeyString任务定义ID

返回值

类型BpmnTaskSetting

示例

javascript
informat.bpmn.getTaskSetting('process_swf2089hng2j:1:c0cc319f-7a59-11ef-bb07-0242d99c1a6f', 'Activity_1nky9zn')
json
{
  "autocompleteNodeIds": [],
  "enableAutocomplete": false,
  "formSetting": {
    "completeSetVarList": [],
    "enableShowProcessInfo": false,
    "formDesignerFieldSettingList": [],
    "formType": "Form",
    "id": "form",
    "localVariable": false,
    "tableFieldSettingList": [
      {
        "editable": false,
        "id": "y68l84iidbr9l",
        "visible": true
      },
      {
        "editable": false,
        "id": "vn4v208530vfj",
        "visible": true
      },
      {
        "editable": false,
        "id": "gjkb3rq7q44wu",
        "visible": true
      },
      {
        "editable": false,
        "id": "ceumuggdjze5i",
        "visible": true
      },
      {
        "editable": false,
        "id": "t9416rt5uv818",
        "visible": true
      },
      {
        "editable": false,
        "id": "a3rumke2j97m6",
        "visible": true
      }
    ],
    "tableId": "skwl7tkdsh650",
    "toolBarButtonList": [
      {
        "action": "TaskComplete",
        "actionSetting": {
          "enableComment": false,
          "bpmnModuleId": "b6qe23fkfwlux",
          "taskIdExpression": "${task.id}",
          "varList": [],
          "valueList": [],
          "tableId": "skwl7tkdsh650"
        },
        "buttonSetting": {
          "enableConfirm": false,
          "hideName": false,
          "icon": "check-double",
          "plain": false,
          "round": false,
          "type": "primary"
        },
        "children": [],
        "controlType": "button",
        "hideExpression": "${task.endTime != null || task.assignee != user.id}",
        "id": "w7b5ah41xs1e",
        "inputSetting": {
          "width": 200
        },
        "isDirectory": false,
        "labelSetting": {
          "bold": false,
          "fontSize": 13
        },
        "name": "同意",
        "selectSetting": {
          "multiple": false,
          "optionList": [
          ],
          "width": 200
        },
        "switchSetting": {
          "type": "primary"
        },
        "visibleRoleList": []
      },
      {
        "action": "TaskMoveToEnd",
        "actionSetting": {
          "enableComment": false,
          "bpmnModuleId": "b6qe23fkfwlux",
          "taskIdExpression": "${task.id}",
          "valueList": [],
          "tableId": "skwl7tkdsh650"
        },
        "buttonSetting": {
          "completeExpression": "流程终止成功",
          "confirmMessageExpression": "确认要终止该流程吗?",
          "enableConfirm": true,
          "hideName": false,
          "icon": "stop-circle",
          "plain": false,
          "round": false,
          "type": "danger"
        },
        "children": [],
        "controlType": "button",
        "hideExpression": "${task.endTime != null || task.assignee != user.id}",
        "id": "mum6gdf67m9q",
        "inputSetting": {
          "width": 200
        },
        "isDirectory": false,
        "labelSetting": {
          "bold": false,
          "fontSize": 13
        },
        "name": "终止",
        "selectSetting": {
          "multiple": false,
          "optionList": [
          ],
          "width": 200
        },
        "switchSetting": {
          "type": "primary"
        },
        "visibleRoleList": []
      }
    ]
  },
  "userAction": "Form"
}