Skip to main content

BPM引擎

整体说明

爱速搭提供了丰富的OpenAPI来调用流程,用来在平台内外都可以自如的使用BPM引擎。

BPM接口同时支持【组织级别】和【应用级别】的权限调用。

接口规范

请求头中必须携带x-isuda-company-keyx-isuda-env

如果使用某一应用级别的密钥对或者希望仅操作某一应用内的资源,那么请携带x-isuda-app-key

注意:如果密钥对为组织级别,那么可以查询任意应用内的数据。如果密钥对为应用级别,那么查询范围限定为密钥对所属应用。

接口列表

流程列表

地址:POST /openapi/bpmn/v1/flow/normal/list

提交格式是 JSON,比如:

1 > POST /openapi/bpmn/v1/flow/normal/list
1 > Authorization: Bearer xxxx // 签名
1 > Content-Type: application/json
1 > x-client-id: 1mjBMxn7wzTCMn7v2Ydw1K
1 > x-isuda-company-key: a0d83 // 组织key
1 > x-isuda-env: dev // 环境标识
{
"page" : 1,
"perPage" : 10
}

返回示例:

{
"data": {
"items": [
{
"flowName": "财务审批", // 流程名
"flowKey": "8L1L4ULQdVWhhrNny46SAf",// 流程key,后续用于触发、查询等场景
"appKey": "9e26162838cd", // 应用key
"companyKey": "a0d83", // 组织key
"enable": true // 是否启用
}
],
"count": 1
},
"msg": "",
"status": 0
}

触发流程

地址:POST /openapi/bpmn/v1/flow/normal/trigger

提交格式是 JSON,比如:

1 > POST /openapi/bpmn/v1/flow/normal/trigger
1 > Authorization: Bearer xxx
1 > Content-Type: application/json
1 > x-client-id: 1mjBMxn7wzTCMn7v2Ydw1K
1 > x-isuda-app-key: 9e26162838cd
1 > x-isuda-company-key: a0d83
1 > x-isuda-env: dev
{
"userId" : "user@baidu.com", // 触发使用人员
"flowKey" : "8L1L4ULQdVWhhrNny46SAf" // 触发所属流程key
"globalParams":{ // 流程参数
"age":12
}
}

返回示例:

{
"msg": "",
"status": 0
}

查看待办列表

地址:POST /openapi/bpmn/v1/task/todo/list

提交格式是 JSON,比如:

1 > POST /openapi/bpmn/v1/task/todo/list
1 > Authorization: Bearer xxx
1 > Content-Type: application/json
1 > x-client-id: 1mjBMxn7wzTCMn7v2Ydw1K
1 > x-isuda-app-key: 9e26162838cd
1 > x-isuda-company-key: a0d83
1 > x-isuda-env: dev
{
"userId": "user@baidu.com", // 查看所属人员待办
"page": 1,
"perPage": 10,
"groupName" : "xx流程组" // 流程所属组,可选
"flowName" : "xx流程", // 流程名称,可选
"flowKey" : "7ZY89hx1cihGebRcZuLNCW" // 流程key,可选
}

返回示例:

{
"data": {
"items": [
{
"flowName": "财务审批", // 流程名称
"flowKey": "5g9evQixwCuefVmhorYxuy",// 流程key
"triggerUser": { // 触发人
"email": "user@baidu.com",
"name": "userName"
},
"flowIcon": "fa fa-address-book",
"appKey": "9e26162838cd", // 所属应用
"companyKey": "a0d83", // 所属组织
"flowRelativeLink": "/company/a0d83/flow/detail/DyVZYPAEav", // 流程详情相对路径
"taskId": "DyVZYPAEav", // 任务id,用于查询任务审批记录和审批进度
"flowTriggerTime":"2023-07-03T06:06:44.348+00:00", // 流程触发时间
"taskArriveTime":"2023-07-03T06:06:46.348+00:00", // 任务到达时间
"taskDealTime":"2023-07-03T06:06:46.348+00:00", // 任务处理时间,如果流程尚未处理,那么此值等于任务到达时间
"flowInstanceStatus":"running", // 流程实例状态,见附录
"read":false, // 任务已读状态
"delaySchedules": [
{
"delayStartAt": "2023-08-03T06:06:46.348+00:00" // 任务超期时间,数组,可能存在多个超期时间节点
}
]
}
],
"count": 1
},
"msg": "",
"status": 0
}

查看已办列表

地址:POST /openapi/bpmn/v1/task/done/list

提交格式是 JSON,比如:

1 > POST /openapi/bpmn/v1/task/done/list
1 > Authorization: Bearer xxx
1 > Content-Type: application/json
1 > x-client-id: 1mjBMxn7wzTCMn7v2Ydw1K
1 > x-isuda-app-key: 9e26162838cd
1 > x-isuda-company-key: a0d83
1 > x-isuda-env: dev
{
"userId" : "user@baidu.com",
"page" : 1,
"perPage" : 10,
"groupName" : "xx流程组" // 流程所属组,可选
"flowName" : "xx流程", // 流程名称,可选
"flowKey" : "7ZY89hx1cihGebRcZuLNCW" // 流程key,可选
}

返回示例:

{
"data": {
"items": [
{
"flowName": "财务审批",
"flowKey": "8L1L4ULQdVWhhrNny46SAf",
"brief": {},
"triggerUser": {
"email": "user@baidu.com",
"name": "userName"
},
"appKey": "9e26162838cd",
"companyKey": "a0d83",
"flowRelativeLink": "/company/a0d83/flow/detail/4DNoRQbZ3l",
"taskId": "4DNoRQbZ3l",
"comment": "",
"flowTriggerTime":"2023-07-03T06:06:44.348+00:00", // 流程触发时间
"taskArriveTime":"2023-07-03T06:06:46.348+00:00", // 任务到达时间
"taskDealTime":"2023-07-03T06:06:46.348+00:00", // 任务处理时间,如果流程尚未处理,那么此值等于任务到达时间
"flowInstanceStatus":"running", // 流程实例状态,见附录
"read":false // 任务已读状态
}
],
"count": 1
},
"msg": "",
"status": 0
}

查看收到通知列表

地址:POST /openapi/bpmn/v1/task/notice/list

提交格式是 JSON,比如:

1 > POST /openapi/bpmn/v1/task/notice/list
1 > Authorization: Bearer xxx
1 > Content-Type: application/json
1 > x-client-id: 1mjBMxn7wzTCMn7v2Ydw1K
1 > x-isuda-app-key: 9e26162838cd
1 > x-isuda-company-key: a0d83
1 > x-isuda-env: dev
{
"userId" : "user@baidu.com",
"page" : 1,
"perPage" : 1,
"groupName" : "xx流程组" // 流程所属组,可选
"flowName" : "xx流程", // 流程名称,可选
"flowKey" : "7ZY89hx1cihGebRcZuLNCW" // 流程key,可选
}

返回示例:

{
"data": {
"items": [
{
"flowName": "财务审批",
"flowKey": "8L1L4ULQdVWhhrNny46SAf",
"brief": {},
"triggerUser": {
"email": "user@baidu.com",
"name": "userName"
},
"appKey": "9e26162838cd",
"companyKey": "a0d83",
"flowRelativeLink": "/company/a0d83/flow/detail/lKVZOBqEBd",
"taskId": "lKVZOBqEBd",
"flowTriggerTime":"2023-07-03T06:06:44.348+00:00", // 流程触发时间
"taskArriveTime":"2023-07-03T06:06:46.348+00:00", // 任务到达时间
"taskDealTime":"2023-07-03T06:06:46.348+00:00", // 任务处理时间,如果流程尚未处理,那么此值等于任务到达时间
"flowInstanceStatus":"running", // 流程实例状态,见附录
"read":false // 任务已读状态
}
],
"count": 1
},
"msg": "",
"status": 0
}

查看我发起的流程列表

地址:POST /openapi/bpmn/v1/task/launch/list

提交格式是 JSON,比如:

1 > POST /openapi/bpmn/v1/task/launch/list
1 > Authorization: Bearer xxx
1 > Content-Type: application/json
1 > x-client-id: 1mjBMxn7wzTCMn7v2Ydw1K
1 > x-isuda-app-key: 9e26162838cd
1 > x-isuda-company-key: a0d83
1 > x-isuda-env: dev
{
"userId" : "user@baidu.com",
"page" : 1,
"perPage" : 1,
"groupName" : "xx流程组" // 流程所属组,可选
"flowName" : "xx流程", // 流程名称,可选
"flowKey" : "7ZY89hx1cihGebRcZuLNCW" // 流程key,可选
}

返回示例:

{
"data": {
"items": [
{
"flowName": "财务审批",
"flowKey": "cjRus3TmQuS1BJh8AwxhPY",
"brief": {},
"triggerUser": {
"email": "user@baidu.com",
"name": "username"
},
"appKey": "9e26162838cd",
"companyKey": "a0d83",
"flowRelativeLink": "/company/a0d83/flow/detail/XYVw6vKwva",
"flowInstanceId": "LBzwQ51wM2",
"transactors": [
{
"email": "user@isuda.com",
"name": "username"
}
],
"flowTriggerTime":"2023-07-03T06:06:44.348+00:00", // 流程触发时间
"taskArriveTime":"2023-07-03T06:06:46.348+00:00", // 任务到达时间
"taskDealTime":"2023-07-03T06:06:46.348+00:00", // 任务处理时间,如果流程尚未处理,那么此值等于任务到达时间
"flowInstanceStatus":"running", // 流程实例状态,见附录
"read":false // 任务已读状态
}
],
"count": 35
},
"msg": "",
"status": 0
}

查看流程审批记录列表

地址:POST /openapi/bpmn/v1/task/record/list

提交格式是 JSON,比如:

1 > POST http:/openapi/bpmn/v1/task/record/list
1 > Authorization: Bearer xxx
1 > Content-Type: application/json
1 > x-client-id: 1mjBMxn7wzTCMn7v2Ydw1K
1 > x-isuda-app-key: 9e26162838cd
1 > x-isuda-company-key: a0d83
1 > x-isuda-env: dev
{
"taskId" : "3mrZq0LEjN", // 流程任务id 和[流程实例id]选一即可
"flowInstanceId":"d1d15fbfb4ed" // 流程实例id 和[流程任务id]选一即可
}

返回示例:

{
"data": {
"items": [
{
"flowName": "空触发提醒",
"flowKey": "8L1L4ULQdVWhhrNny46SAf",
"brief": {}, // 流程摘要
"triggerUser": {
"email": "user@baidu.com",
"name": "username"
},
"appKey": "9e26162838cd",
"companyKey": "a0d83",
"flowRelativeLink": "/company/a0d83/flow/detail/k1Jw8Gbo8G",
"taskId": "k1Jw8Gbo8G",
"transactor": {
"email": "user@baidu.com",
"name": "username"
},
"status": "submitted", // 任务状态 见附录 流程任务状态可取值
"comments": "", // 任务评论
"attachements": "", // 任务附件
"flowTriggerTime":"2023-07-03T06:06:44.348+00:00", // 流程触发时间
"taskArriveTime":"2023-07-03T06:06:46.348+00:00", // 任务到达时间
"taskDealTime":"2023-07-03T06:06:46.348+00:00", // 任务处理时间,如果流程尚未处理,那么此值等于任务到达时间
"flowInstanceStatus":"running", // 流程实例状态,见附录 流程实例状态可取值
"read":false // 任务已读状态
},
{
"flowName": "空触发提醒",
"flowKey": "8L1L4ULQdVWhhrNny46SAf",
"brief": {},
"triggerUser": {
"email": "user@baidu.com",
"name": "username"
},
"appKey": "9e26162838cd",
"companyKey": "a0d83",
"flowRelativeLink": "/company/a0d83/flow/detail/3mrZq0LEjN",
"taskId": "3mrZq0LEjN",
"transactor": {
"email": "user@baidu.com",
"name": "username"
},
"status": "waiting-for-submit",
"comments": "",
"attachements": ""
}
],
"count": 0
},
"msg": "",
"status": 0
}

查看流程审批进度

地址:POST /openapi/bpmn/v1/node/view/list

提交格式是 JSON,比如:

1 > POST /openapi/bpmn/v1/node/view/list
1 > Authorization: Bearer xxx
1 > Content-Type: application/json
1 > x-client-id: 1mjBMxn7wzTCMn7v2Ydw1K
1 > x-isuda-app-key: 9e26162838cd
1 > x-isuda-company-key: a0d83
1 > x-isuda-env: dev
{
"taskId" : "3mrZq0LEjN", // 流程任务id 和[流程实例id]选一即可
"flowInstanceId":"d1d15fbfb4ed" // 流程实例id 和[流程任务id]选一即可
}

返回示例:

{
"data": {
"lines": [ // 描述连线
{
"from": "5854eaadc03a", // 连线出度节点
"to": "b611f40a3dc0" // 连线入度节点
},
{
"from": "b611f40a3dc0",
"to": "64956dd94bbf"
},
{
"from": "64956dd94bbf",
"to": "292f3ff27db2"
},
{
"from": "292f3ff27db2",
"to": "c0e0133d376a"
}
],
"nodes": [
{
"id": "c0e0133d376a", // 节点id
"name": "结束" // 节点名称
},
{
"id": "b611f40a3dc0",
"name": "填写节点"
},
{
"id": "292f3ff27db2",
"name": "知会节点"
},
{
"id": "5854eaadc03a",
"name": "开始"
},
{
"id": "64956dd94bbf",
"name": "提交节点"
}
],
"activeNodeIds": [
"b611f40a3dc0" // 运行中的节点列表
],
"footprintNodeIds": [
"5854eaadc03a" // 已执行完成节点列表
]
},
"msg": "",
"status": 0
}

附录

流程任务状态可取值

取值状态
approved审批节点完成
auto-approved审批节点合并通过
disagreed审批节点拒绝
auto-disagreed审批节点合并审批拒绝
submitted填写节点已填写
rollbacked审批节点、填写节点被回退
aborted审批节点、填写节点被终止
transfered审批节点、填写节点被移交
waiting-for-submit填写节点待填写

流程实例状态可取值

取值状态
running进行中
finish已完成
aborted被终止
exception异常
suspended流程被挂起(流程干预)