Appearance
informat.bpmn 工作流操作
概述
使用informat.bpmn
查询和创建工作流实例,工作流任务
processEngine
ProcessEngine是Flowable流程引擎的核心组件,负责管理流程定义、流程实例、任务、变量、事件等各个方面,为用户提供了一套完整的流程管理接口。
javascript
informat.bpmn.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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
query | BpmnProcessQuery | 查询条件 |
返回值
返回值为符合条件的工作流定义列表,类型为 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)
入参
参数 | 类型 | 描述 |
---|---|---|
procDefId | String | 流程定义ID |
activityId | String | 节点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)
入参
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
query | BpmnInstanceQuery | 查询条件 |
返回值
返回值为符合条件的工作流实例列表,类型为 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)
入参
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 任务 ID |
msg | String | 评论内容 |
返回值
返回值为新增评论的 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)
入参
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 任务 ID |
id | String | 评论ID |
返回值
删除的评论数量
示例
javascript
informat.bpmn.deleteComment('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'b8sy2k46dfckh');
text
1
queryCommentListCount
查询工作流任务评论列表总数
javascript
informat.bpmn.queryCommentListCount(moduleId, query);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
query | BpmnCommentQuery | 查询条件 |
返回值
返回值为符合条件的评论总数,类型为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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
query | BpmnCommentQuery | 查询条件 |
返回值
返回值为符合条件的工作流评论列表,类型为 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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
query | BpmnInstanceQuery | 查询条件 |
返回值
返回值为符合条件的工作流实例列表总数,类型为Integer
示例
javascript
informat.bpmn.queryInstanceListCount('flow', {
moduleId: 'flow',
processDefineId: 'insertUser',
status: 'doing'
});
text
1
queryInstanceById
查询工作流实例
javascript
informat.bpmn.queryInstanceById(moduleId, instanceId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
query | BpmnTaskQuery | 查询条件 |
返回值
返回值为符合条件的任务列表,类型为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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
query | BpmnTaskQuery | 查询条件 |
返回值
返回值为符合条件的任务总数,类型为Integer
示例
javascript
informat.bpmn.queryTaskListCount('flow', {
procInstId: '9cc1e6fa-ca24-11ed-8bc0-be634eacf49a',
status: 'doing'
});
text
1
queryTaskById
查询工作流任务
javascript
informat.bpmn.queryTaskById(moduleId, taskId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 任务 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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
name | String | 变量名称 |
value | Object | 变量值 |
示例
javascript
informat.bpmn.setInstanceVar('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', 'userName', '张三');
getInstanceVar
获取流程实例变量
javascript
informat.bpmn.getInstanceVar(moduleId, instanceId, name);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
name | String | 变量名称 |
返回值
类型Object
,返回值为变量值
示例
javascript
informat.bpmn.getInstanceVar('flow', '9cc1e6fa-ca24-11ed-8bc0-be634eacf49a', 'userName');
text
张三
getInstanceVars
获取流程实例所有变量
javascript
informat.bpmn.getInstanceVars(moduleId, instanceId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
name | String | 变量名称 |
value | Object | 变量值 |
示例
javascript
informat.bpmn.setInstanceLocalVar('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', 'project', '项目管理');
getInstanceLocalVar
获取流程实例局部变量
javascript
informat.bpmn.getInstanceLocalVar(moduleId, instanceId, name);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
name | String | 变量名称 |
返回值
类型Object
,返回值为变量值
示例
javascript
informat.bpmn.getInstanceLocalVar('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', 'project');
text
项目管理
setTaskVar
设置流程任务变量
javascript
informat.bpmn.setTaskVar(moduleId, taskId, name, value);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
name | String | 变量名称 |
value | Object | 变量值 |
示例
javascript
informat.bpmn.setTaskVar('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'taskName', '任务');
getTaskVar
获取流程任务变量
javascript
informat.bpmn.getTaskVar(moduleId, taskId, name);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
name | String | 变量名称 |
返回值
类型Object
,返回值为变量值
示例
javascript
informat.bpmn.getTaskVar('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'taskName');
text
任务
getTaskVars
获取流程任务变量
javascript
informat.bpmn.getTaskVars(moduleId, taskId, localVariable);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
localVariable | Boolean | 是否是本地变量 |
返回值
类型Object
,返回值为变量值
示例
javascript
informat.bpmn.getTaskVars('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', false);
json
{
"name": "张三"
}
setTaskLocalVar
设置流程任务局部变量
javascript
informat.bpmn.setTaskLocalVar(moduleId, taskId, name, value);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
name | String | 变量名称 |
value | Object | 变量值 |
示例
javascript
informat.bpmn.setTaskLocalVar('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'taskStatus', '进行中');
注意事项
在流程任务节点开启将表单数据存储为任务变量(任务变量仅当前任务可见)
时,设置流程任务变量的表单信息,变量名称需要使用 ${form}_task
,其中${form}为表单标识符
getTaskLocalVar
获取流程任务局部变量
javascript
informat.bpmn.getTaskLocalVar(moduleId, taskId, name);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
name | String | 变量名称 |
返回值
类型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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
processDefineId | String | 工作流定义标识符 |
startUserId | String | 发起人账号 ID |
form | Object | 数据表记录 |
vars | Object | 启动变量 |
返回值
类型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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
userId | String | 处理人账号 ID |
示例
javascript
informat.bpmn.setTaskAssignee('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'yvkc2kwpy3xzr');
setTaskOwner
设置任务的所有者
javascript
informat.bpmn.setTaskOwner(moduleId, taskId, userId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
userId | String | 所有者账号 ID |
示例
javascript
informat.bpmn.setTaskOwner('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'yvkc2kwpy3xzr');
claimTask
指派任务(将任务的责任分配给一个具体的参与者)
INFO
如果任务已经被领取,则不能指派任务。
javascript
informat.bpmn.claimTask(moduleId, taskId, userId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
userId | String | 处理人账号 ID |
示例
javascript
informat.bpmn.claimTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan');
unclaimTask
取消任务的指派
javascript
informat.bpmn.unclaimTask(moduleId, taskId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
示例
javascript
informat.bpmn.unclaimTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615');
transferTask
转交任务(将任务的所有权和处理权从当前参与者转移给另一个参与者,即将任务转交给另一个参与者)
javascript
informat.bpmn.transferTask(moduleId, taskId, userId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
userId | String | 处理人账号 ID |
示例
javascript
informat.bpmn.transferTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan');
delegateTask
委托任务(将任务的责任从当前参与者转移给另一个参与者,即委派任务给另一个参与者)
javascript
informat.bpmn.delegateTask(moduleId, taskId, userId, autoDelegate);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
userId | String | 处理人账号 ID |
autoDelegate | Boolean | 是否自动委派 |
注意事项
需要注意的是,当autoDelegate
为 true 时,需要确保已经定义了自动委派规则,以确保任务能够正确地被委派给合适的参与者。同时,需要确保自动委派不会引起死循环或其他问题,以保证流程的稳定性和可靠性。
示例
javascript
informat.bpmn.delegateTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan', true);
getIdentityLinksForTask
获取与任务相关联的身份关联列表
javascript
informat.bpmn.getIdentityLinksForTask(moduleId, taskId);
INFO
用于查询任务相关的参与者或候选人。通过查询身份关联列表,可以确定哪些用户或角色与任务相关联,并对任务进行相应的授权和管理
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 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
候选角色是指可以参与到任务处理中的应用角色,例如“开发人员”、“测试人员”等。
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
roleId | String | 应用角色 ID |
示例
javascript
informat.bpmn.addTaskCandidateRole('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'tester');
deleteTaskCandidateRole
删除任务候选角色。
javascript
informat.bpmn.deleteTaskCandidateRole(moduleId, taskId, roleId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
roleId | String | 应用角色 ID |
示例
javascript
informat.bpmn.deleteTaskCandidateRole('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'tester');
addTaskCandidateUser
向任务添加候选用户
javascript
informat.bpmn.addTaskCandidateUser(moduleId, taskId, userId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
userId | String | 候选用户 ID |
示例
javascript
informat.bpmn.addTaskCandidateUser('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan');
deleteTaskCandidateUser
删除任务候选用户
javascript
informat.bpmn.deleteTaskCandidateUser(moduleId, taskId, userId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
userId | String | 候选用户 ID |
示例
javascript
informat.bpmn.deleteTaskCandidateUser('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'zhangsan');
completeTask
完成任务
javascript
informat.bpmn.completeTask(moduleId, taskId, variables);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
variables | Object | 完成任务时需要传递给后续步骤的输出数据和流程变量 |
示例
javascript
informat.bpmn.completeTask('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', null);
moveToActivity
将流程节点从当前位置移动到另一个节点
javascript
informat.bpmn.moveToActivity(moduleId, taskId, targetActivityId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
taskId | String | 流程任务 ID |
targetActivityId | String | 目标节点 ID(工作流「设置流程图 >> 选中节点 >> 基本信息」可以查到) |
示例
javascript
informat.bpmn.moveToActivity('flow', 'a8c27e21-24af-11ef-bcd1-a6c0b0be7615', 'Activity_0y15knc');
revokeInstance
撤销流程实例
javascript
informat.bpmn.revokeInstance(moduleId, instanceId, reason);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
reason | String | 取消理由 |
示例
javascript
informat.bpmn.revokeInstance('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', '取消流程');
deleteInstance
删除流程实例
javascript
informat.bpmn.deleteInstance(moduleId, instanceId, reason);
注意事项
当一个流程实例被删除时,该流程将被终止,并将清除所有与该流程实例相关的数据和状态信息。
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
reason | String | 删除理由 |
示例
javascript
informat.bpmn.deleteInstance('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', '删除流程');
sendMessage
向流程实例或执行实例发送消息
javascript
informat.bpmn.sendMessage(moduleId, instanceId, messageName);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
messageName | String | 消息名称 |
示例
javascript
informat.bpmn.sendMessage('flow', '9cd49233-24b2-11ef-bcd1-a6c0b0be7615', '消息A');
sendSignal
向流程实例或执行实例发送信号
javascript
informat.bpmn.sendSignal(moduleId, instanceId, signalName);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
signalName | String | 信号名称 |
示例
javascript
informat.bpmn.sendSignal('flow', '9cd49233-24b2-11ef-bcd1-a6c0b0be7615', '信号A');
trigger
触发一个正在等待的流程实例
javascript
informat.bpmn.trigger(moduleId, instanceId, activityId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
activityId | String | 中间事件 ID(在流程设计节点的基本信息里可以查看) |
示例
javascript
informat.bpmn.trigger('flow', '9cd49233-24b2-11ef-bcd1-a6c0b0be7615', 'Activity_0jl4nsq');
getProcessDefineXml
获取工作流定义的xml内容
javascript
informat.bpmn.getProcessDefineXml(moduleId, procDefId);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
procDefId | String | 流程定义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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
procDefId | String | 流程定义ID |
config | BpmnProcessDiagramConfig | 配置信息 |
示例
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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
instanceId | String | 流程实例 ID |
name | String | 变量名称 |
示例
javascript
informat.bpmn.setProcessInstanceName('flow', 'a8bbc752-24af-11ef-bcd1-a6c0b0be7615', '新流程实例名称');
addMultiInstanceExecution
多实例新增流程执行
javascript
informat.bpmn.addMultiInstanceExecution(moduleId, activityId, parentExecutionId, variables);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
activityId | String | 流程节点ID |
parentExecutionId | String | 父流程执行ID,可以是流程实例ID |
variables | Object | 流程执行变量 |
返回值
返回值为新增的流程执行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);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 工作流模块标识符 |
executionId | String | 流程节点ID |
executionIsCompleted | Boolean | 是否标记流程执行已完成 |
示例
javascript
// 为节点A删除一个审批人
informat.bpmn.deleteMultiInstanceExecution('flow', 'a8be867d-24af-11ef-bcd1-a6c0b0be7615', true);
注意事项
此接口只针对多实例节点有效
addBpmnTaskCcList
此方法向BPMN任务抄送人表中添加抄送人
javascript
informat.bpmn.addBpmnTaskCcList(taskId, copyUserList);
参数 | 类型 | 描述 |
---|---|---|
taskId | String | BPMN任务的ID。 |
copyUserList | Array<String> | 要添加的抄送人用户ID列表。 |
示例
javascript
informat.bpmn.addBpmnTaskCcList('a8c27e21-24af-11ef-bcd1-a6c0b0be7615', ['yvkc2kwpy3xzr']);
deleteBpmnTaskCc
此方法从BPMN任务抄送人表移除一个抄送人。
javascript
informat.bpmn.deleteBpmnTaskCc(taskId, copyUserId);
参数 | 类型 | 描述 |
---|---|---|
taskId | String | BPMN任务的ID。 |
copyUserId | String | 要从CC列表中移除的用户ID。 |
示例
javascript
informat.bpmn.deleteBpmnTaskCc('3cc8fe05-8b9f-11ee-bbf4-a6c0b0be7615', 'zhangsan');
queryBpmnTaskCcList
根据给定查询检索BPMN任务抄送人列表。
javascript
informat.bpmn.queryBpmnTaskCcList(query);
参数 | 类型 | 描述 |
---|---|---|
query | Query | 用于过滤BPMN任务抄送人表的查询对象。 |
可过滤的字段
参数 | 类型 | 描述 |
---|---|---|
taskId | String | 任务ID |
copyUserId | String | 抄送用户 |
示例
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);
参数 | 类型 | 描述 |
---|---|---|
filter | Filter | 用于计数BPMN任务抄送人表的过滤器对象。 |
示例
javascript
informat.bpmn.queryBpmnTaskCcList({
conditionList: [
{ fieldId: 'taskId', opt: 'eq', value: 'taskId' }
]
})
text
2
getHistoryTaskVariables
获取流程历史任务变量
javascript
informat.bpmn.getHistoryTaskVariables(taskId);
参数 | 类型 | 描述 |
---|---|---|
taskId | String | 流程任务 ID |
返回值
类型Object
,返回值为所有变量值
示例
javascript
informat.bpmn.getHistoryTaskVariables('9cf63d7a-ca24-11ed-8bc0-be634eacf49a')
getHistoryTaskVariable
获取流程历史任务变量
javascript
informat.bpmn.getHistoryTaskVariable(taskId, variableName);
参数 | 类型 | 描述 |
---|---|---|
taskId | String | 流程任务 ID |
variableName | String | 变量名称 |
返回值
类型Object
,返回值为变量值
示例
javascript
informat.bpmn.getHistoryTaskVariable('9cf63d7a-ca24-11ed-8bc0-be634eacf49a', 'form')
deleteTasks
删除工作流任务列表
javascript
informat.bpmn.deleteTasks(moduleId, taskIds, deleteReason, cascade);
参数 | 类型 | 描述 |
---|---|---|
moduleId | String | 模块标识符 |
taskIds | Array<String> | 任务ID列表 |
deleteReason | String | 删除原因 |
cascade | Boolean | 是否级联删除 |
示例
javascript
informat.bpmn.deleteTasks('flow', ['9cf63d7a-ca24-11ed-8bc0-be634eacf49a'], '测试删除', true);
getStartSetting
获取流程定义启动设置
javascript
informat.bpmn.getStartSetting(moduleKey, defineId);
参数 | 类型 | 描述 |
---|---|---|
moduleKey | String | 模块标识符 |
defineId | String | 流程定义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);
参数 | 类型 | 描述 |
---|---|---|
procDefineId | String | 流程定义ID |
taskDefKey | String | 任务定义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"
}