之前我们谈过一篇文章《聊聊PHP工作流的几种模式—tpflow》我们深刻解释了流程模式中的各种应用,相信已经能解决大部分公司在审批中的应用,2020年我们推出了新版本3.1版本正式版,当然现在还在更新中。3.1版本最大的特性就是新增了事务的这个应用,今天我们详细聊聊:
事务接受:
假如有这么一个表单,他的整体审批流是:张三进行单据填写.这时候张三便发起了业务审批流,发起工作流进入了流程
A——》B——》C的审核中,这时候如果ABC三个节点步骤都是固定的人员还能解决,如果是同个角色也能解决。如果B人员是个变量呢?
而这个变量来自于业务单据中已经填写的某些人?这时候我们几乎解决不了这样的流程问题。
再解决这个问题的时候,我们首先想到可以用流程转出,即为设置N个下级步骤,如图2;通过多个下级进行解决。不过要设置N个判断条件,这个对于动态人员来说,相当不友好。
事务接收者的概念来源于流程中的事务,我们通过对单据已有的人员,可以再B步骤就读取单据的审批人员字段,从而解决再环形步骤中的难题。
属性控制说明图(图1)
步骤设计图(图2)
节点事务:
节点事务是在整个步骤结束后,执行的操作。节点事务打通了单据、业务关联消息中的壁垒,也可以说是万能的工具。
例子1:某业务需要在B审核结束后,对单据的某个状态进行更新或者修改?
例子2:某业务需要在工作流结束后,对关联的业务进行更新修改删除?
例子3:某业务需要在A审核后,根据单据的用户信息,调整步骤的审批信息?
例子4:某业务需要在A审核后,根据不同的审核结果发送不同的消息提示
在上诉几个Demo中,在3.0版本下,是几乎不可能解决的问题。也没有现行可以解决的方案。
因为在3.0、2.0、1.0版本中,我们针对业务的不同操作,仅仅只是更新业务的 status\uptime两个字段。
节点事务中的事务SQL、事务MSG,中可以解决上述问题:
单据ID:@from_id
节点ID:@run_id
提交意见:@check_con
UPDATE News SET status=1 WHERE id=@from_id;
通过简单的语句,可以对单据进行更新。可以完美解决各种在流程后,无法更新单据的弊端
事务还可以有更多的功能,如果你有更好的建议,可以在下方评论。
工作流手册:https://www.kancloud.cn/guowenbin/tpflow 赞助支持我们,可购买看云完整文档
本文为逆天的蝈蝈的文章,转载无需和我联系,但请注明cojz8.com