BOTP反写是什么?
苍穹平台BOTP(Business Object Transform Platform)主要提供单据转换类的功能,实现了不同单据间一种对象转换到另一种对象的方法。这一能力衍生出了正向的单据转换和反向的反写规则。其中,反写又可分为正向反写和回滚反写:正向反写允许小明在下推单据后,在合适的时机自动地反写下游单据数据到上游单据中,并更改数据行或整单状态,而回滚反写支持小明在删除反写的下游单据后,将上游单据被反写的字段置为反写前的状态。
反写规则对应于下游单据对上游单据的反写操作,不妨以一个例子说明小明使用反写规则的方法。
准备工作
采购系统中存在采购申请单和采购订单,并已在开发平台中进行了单据配置工作,配置后页面单据情况如下图:
采购申请单:
采购订单:
在两个单据页面上配置以下准备工作:
• 对采购申请单,映射字段属性功能控制中已打开允许单据转换携带,工具栏已增加下推和下查,主实体属性业务控制中已打开参与单据转换。
• 对采购订单,主实体属性关联配置中,选择关联实体为采购订单的单据体,反写字段为订货数量。同样的,工具栏增加了上查以查看反写结果,主实体业务控制中配置参与单据转换。
采购订单的关联配置:
实施步骤
接下来进行反写实施:BOTP单据反写规则配置入口在【流程服务云】->【业务流服务】->【单据转换】->【反写路线】。选择云,新增反写规则,然后依次配置规则详情:
• 基本信息
命名反写规则名;配置业务上下游单据关系,上游源单为采购申请单,下游目标单为采购订单。设置反写时机为 ”保存即反写”,并启用反写规则。
• 反写公式
设置反写的逻辑为:将采购订单的订货数量累加,反写至采购申请单的已采购数量字段。
• 关闭源单
设置关闭源单行和整单的条件,提供了两条判断逻辑:
对于一行数据,设置行关闭字段为分录状态。反写后,采购申请单的已采购数量等于申请数量时,该行物料采购计划已完成,故将分录行状态修改为“已关闭”。
对于整单数据,设置单关闭策略为“全部分录行关闭后,整单关闭”,此时修改采购申请单的单据状态为“已关闭”。
• 超额检查
设置超额检查模式为“严格控制,不允许超额”。针对采购申请单,检查反写结果,当“单据体.已采购数量”>“单据体.申请数量”时,报错并给出反写超额提醒。
效果检验
设置好反写规则后,在实际采购申请业务场景校验了BOTP下推和反写功能。如下的场景中,有两条采购申请需求,分别是酒精和油漆,且均已采购部分物料。首先是采购申请单的提交、审核和下推。
源单:采购申请单
下推结果:采购订单。根据实际情况,手动修改订货数量。
上查单-分录关闭:保存采购订单,保存即反写。上查采购申请单,此时油漆已采购完成,分录行关闭。
上查单-单据关闭:下推采购订单时,倘若按默认的足量采购反写,反写后所有分录行物料均已完成采购而行关闭,因此单据状态变为已关闭。
上查单-超额限制:下推采购订单时,倘若填入超量采购的数字,保存即反写时会报错,并提示填报错误数据的位置。