本协议约定低代码平台流程引擎需要提供的相关API接口的规范,包括请求接口参数,返回值等规则。

API 清单

名称请求操作
发起审批POST
暂存审批单POST
计算下一步处理人POST
提交草稿中申请单POST
提交审批中申请单POST

API 规范

以下是各个流程 API 的详细规范。

发起审批

新建一个草稿状态的审批单。

URI

/api/workflow/open/drafts

请求参数

请求该接口时需要传入以下参数。

名称类型描述
flowstring流程_id
applicantstring申请人_id
applicant_usernamestring申请人用户名
valuesobject审批单字段值

applicant 与 applicant_username 两个参数两选一即可。

返回值

  • 该API接口请求成功时返回值格式如下:
{
    "status": "success",
    "data": {...}
}

data返回的是创建成功的审批单记录信息。

  • 该API接口请求失败时返回值格式如下:
{
    "status": "error",
    "data": { errors: [{ errorMessage: "..." }] }
}

暂存审批单

敬请期待…

计算下一步处理人

根据当前步骤状态计算下一步可供选择的处理人清单。

URI

/api/workflow/nextStepUsers?spaceId=<spaceId>&deal_type=<deal_type>

以下表格描述了URI中的参数清单。

名称描述
<spaceId>当前公司 _id 值
<deal_type>处理人类型

请求参数

请求该接口时需要根据URI中传入的不同处理人类型传入不同的参数。

  • 处理人类型为指定人员 specifyUser 时需要传入的参数:
名称类型描述
specifyUserIdsstring[]人员_id集合
  • 处理人类型为指定审批岗位 applicantRole 时需要传入的参数:
名称类型描述
applicantIdstring申请人_id
approveRoleIdsstring[]审批岗位集合
  • 处理人类型为指定角色 hrRole 时需要传入的参数:
名称类型描述
approveHrRoleIdsstring[]角色集合
  • 处理人类型为申请人上级 applicantSuperior 时需要传入的参数:
名称类型描述
applicantIdstring申请人_id
  • 处理人类型为申请人 applicant 时需要传入的参数:
名称类型描述
applicantIdstring申请人_id
  • 处理人类型为指定人员字段 userField 时需要传入的参数:
名称类型描述
userFieldobject人员字段
userFieldValuestring人员字段值

userField 参数是一个json对象,以下表格描述了该参数的属性清单:

名称类型描述
is_multiselectboolean是否多选
  • 处理人类型为指定部门字段 orgField 时需要传入的参数:
名称类型描述
orgFieldobject部门字段
orgFieldValuestring部门字段值

orgField 参数是一个json对象,以下表格描述了该参数的属性清单:

名称类型描述
is_multiselectboolean是否多选
  • 处理人类型为指定部门 specifyOrg 时需要传入的参数:
名称类型描述
specifyOrgIdsstring[]部门_id集合
  • 处理人类型为指定人员字段相关审批岗位 userFieldRole 时需要传入的参数:
名称类型描述
userFieldobject人员字段
userFieldValuestring人员字段值
approverRoleIdsstring[]审批岗位_id集合

userField 参数是一个json对象,以下表格描述了该参数的属性清单:

名称类型描述
is_multiselectboolean是否多选
  • 处理人类型为指定部门字段相关审批岗位 orgFieldRole 时需要传入的参数:
名称类型描述
orgFieldobject部门字段
orgFieldValuestring部门字段值
approverRoleIdsstring[]审批岗位_id集合

orgField 参数是一个json对象,以下表格描述了该参数的属性清单:

名称类型描述
is_multiselectboolean是否多选
  • 处理人类型为指定人员 pickupAtRuntime 时不需要传入任何参数,直接返回空数组。

返回值

该API接口返回值格式如下:

{
    "nextStepUsers": [...],
    "error": ""
}

其中 nextStepUsers 是一个对象数组,表示下一步可供选择的处理人列表,以下表格描述了该数组中每个处理人信息:

名称类型描述
idstring处理人_id
namestring处理人姓名

当该API接口执行过程中出现错误时,会以字符串形式返回到 error 键值中。

提交草稿中申请单

把草稿状态的申请单提交到下一步骤。

URI

/api/workflow/submit

请求参数

请求该接口时需要传入以下参数。

名称类型描述
Instancesobject[]申请单内容

以下表格描述了Instances中的对象键值信息:

名称类型描述
_idstring审批单_id
flowstring当前流程_id
namestring审批单名称
applicantstring申请人_id
submitterstring提交人_id
inbox_usersstring[]待审核人_id集合
tracesobject[]签核历程

以下表格描述了 traces 中的对象键值信息:

名称类型描述
approvesobject[]审批历程

以下表格描述了 approves 中的对象键值信息:

名称类型描述
next_stepsstring[]下一步骤_id集合
attachmentsstring[]附件
descriptionstring[]审批意见

traces 是每个步骤的签核历程,approves 则是每个签核历程中的审批历程,里面记录了详细的审批表单信息。

返回值

  • 该API接口请求成功时返回值格式如下:
{
    "result": [...]
}

result中返回的是一个对象数组,该数组中包含的键值信息如下所示:

名称类型描述
alertsstring提示信息

alerts中主要是提示流程版本是否已升级。

  • 该API接口请求失败时返回值格式如下:
{
    errors: [{ errorMessage: "..." }]
}

提交审批中申请单

把审批中的申请单提交到下一步骤。

URI

/api/workflow/engine

请求参数

请求该接口时需要传入以下参数。

名称类型描述
Approvalsobject[]审批内容

以下表格描述了Approvals中的对象键值信息:

名称类型描述
instancestring当前审批单_id
tracestring当前签核历程_id
_idstring当前审批历程_id
valuesobject审批表单值
next_stepsobject[]下一步骤
judgestring审批状态
descriptionstring审批意见
geolocationstring审批地点

以下表格描述了next_steps中的对象键值信息:

名称类型描述
stepstring下一步骤_id
usersstring[]下一步骤处理人_id

以下表格描述了judge数据字典:

名称类型描述
approvedstring核准
rejectedstring驳回
terminatedstring被取回
reassignedstring转签核
relocatedstring重定位

返回值

  • 该API接口请求成功时返回空对象。

  • 该API接口请求失败时返回值格式如下:

{
    errors: [{ errorMessage: "..." }]
}