API文档:complete_task_by_id — DeepFOS
task_id:任务实例id
comment:备注,文本
attachment:附件,可以是多个,例如[{"id":"1","url":"/1.xlsx","fileName":"1.xlsx","fileSize":1,"fileType":"ATT","createUser":"1","fileDescription":"1.xlsx"},{"id":"2","url":"/2.txt","fileName":"2.txt","fileSize":2,"fileType":"ATT","createUser":"2","fileDescription":"2.txt"}]
outcome:结果选项,文本,和任务处理动作的结果对应
extra_res_params:完成参数,字段,例如{"boolvalue":true,"decimalvalue":1.23,"strvalue":"测试文本"}
模拟业务场景:需要在任务审批同意前进行复杂校验,用PY脚本统一管理校验逻辑,校验通过后才允许审批通过
配置要点:
在任务处理界面(UX组件)用自定义按钮
来实现校验和工作流任务的完成,而非用任务处理
组件
同意
按钮,触发PY脚本,走校验逻辑+审批同意
拒绝
按钮,触发PY脚本,走审批拒绝
PY脚本的传参都来源于任务处理界面(UX组件)
效果:
from deepfos.element.workflow import *
def main(p1, p2):
# 实例化工作流
flow = WorkFlow('complete_task_by_id')
if p2['outcome'] == "approve":
# 审批同意,先校验,校验通过,再任务通过
if p2['valid']:
flow.complete_task_by_id(
task_id = p2['task_id'],
comment = p2['comment'],
attachments = p2['attachments'],
outcome = p2['outcome'],
extra_res_params = p2['extra_res_params'],
)
else:
raise ValueError("业务逻辑校验未通过: XX条件不满足!")
else:
# 审批拒绝,必须填备注,然后走任务拒绝
if len(p2['comment'])==0:
raise ValueError("拒绝必须写备注!")
else:
flow.complete_task_by_id(
task_id = p2['task_id'],
comment = p2['comment'],
attachments = p2['attachments'],
outcome = p2['outcome'],
extra_res_params = p2['extra_res_params'],
)
回到顶部
咨询热线