通常业务处理都可以转化为对表的插入和更新操作,所以过去数据库都支持触发器和存储过程,支持降低业务开发代码的复杂度,但由于数据库的触发器调测困难,维护需要数据库管理员参与才可以,后来基本上都被代码逻辑代替。
质流基于配置模式实现数据跨表更新的触发器能力,将表单的增删改查导入及流程审批增加钩子能力,自动根据配置的sql进行事务处理,sql执行可测试,可日志跟踪,可视化修改变更,有效的发挥了触发器的价值,又避免了数据库触发器的弊端。
本文通过触发器的配置说明,使用一个仓库减库存的例子演示来进一步讲解质流的触发器配置使用方法。
01
触发器配置
管理员登录 --> 系统设置 --> 表单触发器管理
表单触发器管理主要配置两个参数,一个是执行步骤,一个是执行sql
执行步骤如果是非流程的,增加和修改为0,删除为-1,如果是流程则配置流程步骤,例如配置2,则表明执行第二步审批的时候触发。
执行sql可通过{{id}}获取当前更新数据的主键,举例如下:
update warehouse_management a set item_inventory_quantity =item_inventory_quantity - (select issue_quantity from items_out_of_storage where id={{id}}) where article_numbering =(select article_numbering from items_out_of_storage where id={{id}})
02
修改库存的例子
我们举个例子来进一步说明质流中的触发器使用方法。
我们有两个应用,一个应用是仓库管理,包括字段如下:

另一个是物品出库的流程应用,包括字段如下,相关应用创建看前两讲即可。

如上图所示,我们需要在物品出库的第二步审批通过的时候执行库存修改,如果审批不通过则不修改。
配置如下:

配置的sql如下:
update warehouse_management a set item_inventory_quantity =item_inventory_quantity - (select issue_quantity from items_out_of_storage where id={{id}}) where article_numbering =(select article_numbering from items_out_of_storage where id={{id}})




文章转载自数据库平台优化,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




