所有需要抛出异常的校验(卡住流程不往后走),都需要通过python的raise error来实现,python可以用数据流3.0实现,也可以通过python脚本2.0实现。
底层逻辑是将这段python排在工作流任务节点的后续,且必须处于同一个异步延续内,一旦python抛错,工作流任务也无法完成。如果处于不同异步延续,即使pyhton抛错,也不影响任务完成。详见异步延续相关文档:工具栏 — 使用手册 | DeepFOS Docs
完成任务时填写的备注,在完成任务后会落库到对应的表中,如果使用了DeepModel组件,可以体现在DFProcessComment-流程备注对象中,因此需要使用到DeepModel组件、并添加好流程备注对象,详见文档:DeepModel — 关联元素 | DeepFOS Docs。如果没有DeepModel组件,则需要直连数据库查询对应底表数据,用【连接器组件+数据流3.0组件】也可以实现。
设计思路:
1、判断本次审批动作是否为【拒绝】。此信息来源于此工作流任务节点的acr$outcome变量;
2、查询流程备注对象中,此任务是否填写了备注。查询条件是任务实例ID,来源于此工作流任务节点的acp$task_id变量;
3、如果没有填写备注,通过python的raise error来报错,中断流程。通过【数据流3.0组件或python脚本2.0(要靠工作流调用)】都可以实现。
DEMO地址:
DEMO讲解视频(外部人员需要申请语雀权限,内部人员可点击链接直接访问):
1、使用效果
2、如何配置
总结建议:
1、如果流程内,任务节点很多,且都需要在完成任务时校验,建议将校验的子工作流排在任务的完成时监听,可以避免画布上出现过多节点,精简主流程,校验子流程在主流程的各任务节点都可以复用;
2、如果流程内,仅一两个任务节点需要有此校验,可以直接排工作流的【PY脚本】节点或【启动数据流(同步)】节点,只要和任务节点在同一异步延续区间即可,这样编排页面上展现的报错信息更简洁。
同【如何实现审批拒绝要求备注必填】,唯一区别是任务备注存在工作流底表中,业务数据存在业务表中(数据表、对象等),因此对设计思路和搭建不再重复讲解,请见【如何实现审批拒绝要求备注必填】章节。
DEMO地址:
DEMO讲解视频(外部人员需要申请语雀权限,内部人员可点击链接直接访问):
回到顶部
咨询热线
