API
根据流程的元数据定义,自动生成审批相关API。
本协议约定低代码平台流程引擎需要提供的相关API接口的规范,包括请求接口参数,返回值等规则。
名称 | 请求操作 |
---|---|
发起审批 | POST |
暂存审批单 | POST |
计算下一步处理人 | POST |
提交草稿中申请单 | POST |
提交审批中申请单 | POST |
以下是各个流程 API 的详细规范。
新建一个草稿状态的审批单。
/api/workflow/open/drafts
请求该接口时需要传入以下参数。
名称 | 类型 | 描述 |
---|---|---|
flow | string | 流程_id |
applicant | string | 申请人_id |
applicant_username | string | 申请人用户名 |
values | object | 审批单字段值 |
applicant 与 applicant_username 两个参数两选一即可。
{
"status": "success",
"data": {...}
}
data返回的是创建成功的审批单记录信息。
{
"status": "error",
"data": { errors: [{ errorMessage: "..." }] }
}
敬请期待…
根据当前步骤状态计算下一步可供选择的处理人清单。
/api/workflow/nextStepUsers?spaceId=<spaceId>&deal_type=<deal_type>
以下表格描述了URI中的参数清单。
名称 | 描述 |
---|---|
<spaceId> | 当前公司 _id 值 |
<deal_type> | 处理人类型 |
请求该接口时需要根据URI中传入的不同处理人类型传入不同的参数。
名称 | 类型 | 描述 |
---|---|---|
specifyUserIds | string[] | 人员_id集合 |
名称 | 类型 | 描述 |
---|---|---|
applicantId | string | 申请人_id |
approveRoleIds | string[] | 审批岗位集合 |
名称 | 类型 | 描述 |
---|---|---|
approveHrRoleIds | string[] | 角色集合 |
名称 | 类型 | 描述 |
---|---|---|
applicantId | string | 申请人_id |
名称 | 类型 | 描述 |
---|---|---|
applicantId | string | 申请人_id |
名称 | 类型 | 描述 |
---|---|---|
userField | object | 人员字段 |
userFieldValue | string | 人员字段值 |
userField 参数是一个json对象,以下表格描述了该参数的属性清单:
名称 | 类型 | 描述 |
---|---|---|
is_multiselect | boolean | 是否多选 |
名称 | 类型 | 描述 |
---|---|---|
orgField | object | 部门字段 |
orgFieldValue | string | 部门字段值 |
orgField 参数是一个json对象,以下表格描述了该参数的属性清单:
名称 | 类型 | 描述 |
---|---|---|
is_multiselect | boolean | 是否多选 |
名称 | 类型 | 描述 |
---|---|---|
specifyOrgIds | string[] | 部门_id集合 |
名称 | 类型 | 描述 |
---|---|---|
userField | object | 人员字段 |
userFieldValue | string | 人员字段值 |
approverRoleIds | string[] | 审批岗位_id集合 |
userField 参数是一个json对象,以下表格描述了该参数的属性清单:
名称 | 类型 | 描述 |
---|---|---|
is_multiselect | boolean | 是否多选 |
名称 | 类型 | 描述 |
---|---|---|
orgField | object | 部门字段 |
orgFieldValue | string | 部门字段值 |
approverRoleIds | string[] | 审批岗位_id集合 |
orgField 参数是一个json对象,以下表格描述了该参数的属性清单:
名称 | 类型 | 描述 |
---|---|---|
is_multiselect | boolean | 是否多选 |
该API接口返回值格式如下:
{
"nextStepUsers": [...],
"error": ""
}
其中 nextStepUsers 是一个对象数组,表示下一步可供选择的处理人列表,以下表格描述了该数组中每个处理人信息:
名称 | 类型 | 描述 |
---|---|---|
id | string | 处理人_id |
name | string | 处理人姓名 |
当该API接口执行过程中出现错误时,会以字符串形式返回到 error 键值中。
把草稿状态的申请单提交到下一步骤。
/api/workflow/submit
请求该接口时需要传入以下参数。
名称 | 类型 | 描述 |
---|---|---|
Instances | object[] | 申请单内容 |
以下表格描述了Instances中的对象键值信息:
名称 | 类型 | 描述 |
---|---|---|
_id | string | 审批单_id |
flow | string | 当前流程_id |
name | string | 审批单名称 |
applicant | string | 申请人_id |
submitter | string | 提交人_id |
inbox_users | string[] | 待审核人_id集合 |
traces | object[] | 签核历程 |
以下表格描述了 traces 中的对象键值信息:
名称 | 类型 | 描述 |
---|---|---|
approves | object[] | 审批历程 |
以下表格描述了 approves 中的对象键值信息:
名称 | 类型 | 描述 |
---|---|---|
next_steps | string[] | 下一步骤_id集合 |
attachments | string[] | 附件 |
description | string[] | 审批意见 |
traces 是每个步骤的签核历程,approves 则是每个签核历程中的审批历程,里面记录了详细的审批表单信息。
{
"result": [...]
}
result中返回的是一个对象数组,该数组中包含的键值信息如下所示:
名称 | 类型 | 描述 |
---|---|---|
alerts | string | 提示信息 |
alerts中主要是提示流程版本是否已升级。
{
errors: [{ errorMessage: "..." }]
}
把审批中的申请单提交到下一步骤。
/api/workflow/engine
请求该接口时需要传入以下参数。
名称 | 类型 | 描述 |
---|---|---|
Approvals | object[] | 审批内容 |
以下表格描述了Approvals中的对象键值信息:
名称 | 类型 | 描述 |
---|---|---|
instance | string | 当前审批单_id |
trace | string | 当前签核历程_id |
_id | string | 当前审批历程_id |
values | object | 审批表单值 |
next_steps | object[] | 下一步骤 |
judge | string | 审批状态 |
description | string | 审批意见 |
geolocation | string | 审批地点 |
以下表格描述了next_steps中的对象键值信息:
名称 | 类型 | 描述 |
---|---|---|
step | string | 下一步骤_id |
users | string[] | 下一步骤处理人_id |
以下表格描述了judge数据字典:
名称 | 类型 | 描述 |
---|---|---|
approved | string | 核准 |
rejected | string | 驳回 |
terminated | string | 被取回 |
reassigned | string | 转签核 |
relocated | string | 重定位 |
该API接口请求成功时返回空对象。
该API接口请求失败时返回值格式如下:
{
errors: [{ errorMessage: "..." }]
}