本文概述了反写插件在单据处理中的作用,包括保存、审核、反审核、删除时的数据反写与撤销机制。反写插件具有公共属性,注册后可触发多种事件,如业务流程跟踪前、反写前、反写值精度处理取消、源单行关闭前后等,通过这些事件可以干预反写过程,实现自定义逻辑和数据处理。
一、反写插件概述
1.说明
1)单据保存、审核时,会根据其业务流程追踪信息,搜索出全部上游单据,然后逐个执行反写规则,把数据反写到上游单据上。
2)单据反审核、删除时,会根据历史反写记录,回滚反写,把已反写数据从上游单据上撤销。
3)单据的反写插件是公用的,会覆盖本单全部反写规则的执行过程。因此,非常有必要,在反写插件中,对当前执行的反写规则进行判断,如果不是目标反写规则,则需要略过;
2.公共属性
BusinessInfo当前单据元数据信息,Context上下文,DynamicObjects当前选择单据数据信息
LinkEntity单据BOSIDE中配置的单据关联配置信息,OperateOption当前操作的额外选项信息,OperationNumber操作码
3.注册
二、反写插件事件
1.BeforeTrackBusinessFlow 业务流程跟踪前事件,反写分析前触发,作用:可以取消整单反写
2.BeforeCreateArticulationRow 构建每行关联数据包前事件,每行关联信息数据包构建前均触发,作用:可以取消本行反写和分配
2.2 CancelWriteBackValuePrecision 取消平台对反写值精度处理事件,每个反写规则解析时触发,作用:取消平台对反写值精度处理
3.BeforeWriteBack 每个反写规则执行前事件,执行每个反写规则前均触发,作用:可以取消本反写规则反写和网控
4.AfterCustomReadFields 增加自定义源单字段事件,在平台加载完每个反写规则中使用到的相关源单字段后均触发,作用:加入反写中需要使用的源单字段
5.RuleFirstRunning 反写规则首次运行事件,历史数据,首次执行当前反写规则触发,作用:干预源单数据或预补偿源单
6.AfterCommitAmount 源单行反写后事件,对每个源单行完成反写后均触发,作用:插件干预源单记录或填写额外字段值
7.BeforeCloseRow 关闭源单行前事件,每次判断源单行关闭条件前均触发,作用:取消对源单行的关闭处理
8.AfterCloseRow 关闭源单行后事件,在处理源单行关闭逻辑之后,不管源单行是否符合关闭条件均触发,作用:插件干预关闭源单后相关业务逻辑
9.BeforeCheckHighLimit 超额检查前事件,每个源单行反写完毕后,进行超额检查之前均触发,作用:干预源单超额检查进行前或者直接取消超额检查,允许超额
10.AfterCheckHighLimit 超额检查后事件,每个源单行反写完毕后,超额检查之后均触发,作用:干预源单超额检查后,是否抛出超额检查错误,以及自定义超额检查错误提示语
11.BeforeSaveWriteBackData 保存源单数据前事件,当前反写规则反写逻辑运行完,保存源单数据前触发,作用:干预源单整体数据包
12.AfterSaveWriteBackData 保存源单数据后事件,源单数据保存后触发,作用:处理其他相关业务逻辑
13.FinishWriteBack 反写完成后事件,所有反写逻辑处理完之后触发,作用:处理其他相关业务逻辑
推荐阅读