# 流程事务API调用示例

# 流程中存在或签的审批任务

场景示例:信息填报,学生提交个人信息到信息办,多位老师参与审批,其中一位老师审批即可。

或签

API调用步骤:发起一条待办,指定一个/多个应办人,其中一人完成待办即可,具体如下图:

或签调用步骤

# 1. 创建待办

调用创建待办接口,创建一条新的待办,在接口中设置待办的发起人、应办人、办理地址、查阅地址等。

# 后续 在用户端查看待办

用户(应办人)登录用户端,在前台查看待办,并进行后续操作。

# 2. 办理待办

一人完成待办,那么这条事务就完成了,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = end(事务状态自动更新为已办结)。

# 流程中存在会签的审批任务

场景示例:文件签章,项目有三位负责人,文件需要其中两位负责人签字可通过。

会签

为每人创建一条待办,各自完成待办,当完成的待办数满足了业务要求,即事务结束,具体的调用步骤如下图:

会签调用步骤

# 1. 创建待办

调用创建待办接口,为每人创建一条待办,在接口中设置待办的发起人、应办人、办理地址、查阅地址等,taskId设为同一个。

# 后续 在用户端查看待办

每个用户(应办人)各自登录用户端,在前台查看待办,并进行后续操作。

# 2. 办理待办

应办人完成待办时,对接方根据自己的业务逻辑判断是否要结束:

若完成待办的数量未达到业务要求(例如要求两人完成,只完成一人),调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = none(仅完成当前待办,不影响其它待办)。

若完成待办的数量已达到业务要求,那么这条事务就完成了,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = end(完成当前待办,同时将其他未完成的待办删除,事务状态更新为已办结)。

# 流程中存在串行的审批任务

场景示例:费用报销,发起报销流程,需要经过领导、财务、老板逐个的审批。

串行

按创建待办、完成待办、创建待办、完成待办的顺序进行,具体的调用步骤如下图:

串行调用步骤

# 1. 创建待办

调用创建待办接口,创建第一条待办,在接口中设置待办的发起人、应办人、办理地址、查阅地址等。

# 后续 在用户端查看待办

用户(应办人)登录用户端,在前台查看待办,并进行后续操作。

# 2. 办理待办

完成待办后,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = none(仅完成当前待办)。

使用完成&创建待办接口,除了可以完成待办,还可以同时创建一条有关联的新待办,需要在接口中设置states = next,并且设置下一条待办的参数。

# 3. 创建下一条待办(若在2.办理待办时,同时创建下一条待办,可跳过此步骤)

这一步是串行的关键,即在上一条待办完成后,创建下一条待办。

调用创建待办接口,创建一条与上条待办关联的新待办,在接口中设置待办的发起人、应办人、办理地址、查阅地址等。

# 循环 按业务串行逻辑循环2、3,直到最后一条待办

# 4. 办理待办

完成待办后,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = end(完成当前待办,事务状态更新为已办结)。

# 流程中存在并行的审批任务

场景示例:学生请假,发起请假申请,需要分别由老师、辅导员审批通过。

并行

创建多条待办,全部待办完成时,结束并行的流程,具体的调用步骤如下图:

并行调用步骤

# 1. 创建待办

调用创建待办接口,创建多条待办,在接口中设置待办的发起人、应办人、办理地址、查阅地址等。

# 后续 在用户端查看待办

每个用户(应办人)登录用户端,在前台查看待办,并进行后续操作。

# 2. 办理待办

应办人完成待办时,对接方根据自己的业务逻辑判断并行流程是否可以结束:

若并行流程未结束,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = none(仅完成当前待办,不影响其它待办)。

若并行流程结束,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = end(完成当前待办,同时将其他未完成的待办删除,事务状态更新为已办结)。

# 流程中同时存在并行+串行的审批任务

串并

具体的调用步骤如下图:

串并调用步骤

# 1. 创建待办

调用创建待办接口,创建多条待办,在接口中设置待办的发起人、应办人、办理地址、查阅地址等。

# 后续 在用户端查看待办

每个用户(应办人)登录用户端,在前台查看待办,并进行后续操作。

# 2. 办理待办

并行上面的线上,A或B完成待办,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = none(仅完成当前待办,不影响其它待办)。

并行下面的线上,C和D各自完成待办,分别调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = none(仅完成当前待办,不影响其它待办)。

使用完成&创建待办接口,除了可以完成待办,还可以同时创建一条有关联的新待办,需要在接口中设置states = next,并且设置下一条待办的参数。

# 3. 创建下一条待办(若在2.办理并行下面的线上的待办时,同时创建下一条待办,可跳过此步骤)

这一步是串行的关键,即在上一条待办完成后,创建下一条待办。

调用创建待办接口,创建一条与上条待办关联的新待办,在接口中设置待办的发起人、应办人、办理地址、查阅地址等。

# 4. 办理待办

应办人完成待办时,对接方根据自己的业务逻辑判断并行流程是否可以结束:

若并行流程未结束,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = none(仅完成当前待办,不影响其它待办)。

若并行流程结束,调用完成待办接口,将待办状态更新为已完成,同时在此接口中设置status = end(完成当前待办,同时将其他未完成的待办删除,事务状态更新为已办结)。