Tpflow工作流引擎在事务方面的表现

        之前我们谈过一篇文章《聊聊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;

通过简单的语句,可以对单据进行更新。可以完美解决各种在流程后,无法更新单据的弊端


蝈蝈博客

事务还可以有更多的功能,如果你有更好的建议,可以在下方评论。


[ 活动/福利 ]

免费领取2160元云主机新购优惠 ,快去看看吧!

官方博客:http://www.cojz8.com/

官方博客:http://tpflow.cojz8.com/

工作流手册:https://www.kancloud.cn/guowenbin/tpflow  赞助支持我们,可购买看云完整文档


逆天的蝈蝈博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论