全部文档
文档中心工作流使用手册PythonSDK完成任务complete_task_by_id

完成任务complete_task_by_id

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组件)

DEMO元素: https://alpha.deepfos.com/element-deepflow/3-0-0/edit?elementName=complete_task_by_id&folderId=DIRa0b4814019b7&moduleId=WKFL3_0&sign=YXBwSWQ9Y3pqbml3MDI0JnNwYWNlPWN6am5pdw%3D%3D

效果:


Copy
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'],
                )

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send