一文读懂-如何使用反写插件原创
金蝶云社区-犹豫
犹豫
14人赞赏了该文章 3,981次浏览 未经作者许可,禁止转载编辑于2021年12月23日 09:24:07

日常开发过程中,botp是必用功能,编写botp插件也是家常便饭。但是又有多少开发小伙伴使用过反写插件,反写插件又能实现那些功能呢?今天就给大家简单介绍一下

下面是常用的反写插件方法以及触发时机和适用场景

事件

触发时机

适用场景

beforeTrack

构建关联主实体全部关联记录前

取消关联和反写

beforeCreateArticulationRow

构建关联主实体单行数据与源单的关联记录前

取消本行的关联和反写

afterCalcWriteValue

基于下游单据当前行,反写值计算完毕后

修正反写量,调整对各源单行的分配量

beforeExcessCheck

对源单反写完毕,超额检查前

取消超额检查

afterExcessCheck

对源单反写完毕,超额检查完毕后

控制是否终止反写、提示超额、修正提示内容

我们就以afterCalcWriteValue和beforeExcessCheck两个方法为例,说明一下如何使用反写插件对反写内容进行处理,以及对超额检查的控制

以采购申请单与采购订单为例,我们关联实体为单据体对单据体

image.png

首先先看下我们配置的反写规则,其中包括订货数量以及金额字段,并且超额检查为严格控制

image.png

image.png

继承AbstractWriteBackPlugIn,重写beforeExcessCheck,afterCalcWriteValue两个方法。

image.png

反写插件比较特殊,需要注册在下游单据的关联配置中

image.png

保存之后,建立数据,来断点看下可以在插件中可以获取到那些数据

image.png

image.png

在afterCalcWriteValue方法中,我们可以获取到反写的单据体实体,反写数量,反写字段以及源单id信息

image.png

image.png

image.png

image.png

image.png

如果我们像手动修改反写内容,只需要判断反写字段,并将反写内容赋值即可

image.png

看效果

image.png

image.png

反写之后

image.png

再看beforeExcessCheck方法,同样可以获取到上下游单据信息

image.png

正常的超额检查如下:

image.png

image.png

如果想要取消超额检查,修改逻辑,设置上游单据为RMB时取消超额检查

image.png

看效果

image.png

image.png

image.png

并没有进行差额检查,并且反写成功。

本文就先简单介绍这两个案例,小伙伴们快去研究一下剩下的几个方法吧


赞 14