反写
处理单据关联关系防止数据紊乱的规则
反写是ERP系统中用于管理单据间关联关系的技术规则,通过目标单据生成后对源单据数值属性或字段状态的更新,避免数据重复生成凭证导致的紊乱。其核心实现方式包括配置反写公式、设定超额检查机制及开发反写插件,支持累加、扣减、覆盖三种数值写入模式,并通过控制字段管理跨级单据的数值分配逻辑。在跨级反写场景中,支持三级单据(如采购订单→收料通知单→采购入库单)间的字段回溯更新,采用自上而下分配与按权重分配相结合的数值调整策略。技术架构层面通过主表与多语言表实现数据库同步,并依托反写插件事件处理特殊字段的逻辑更新。
技术实现机制
反写规则通过配置来源字段的公式表达式实现数值更新,包含三种核心操作模式:累加模式将下游数值累计到源单字段,扣减模式反向减少源单数值,覆盖模式直接替换源单字段值。对于多选基础资料等特殊字段,需通过反写插件事件(BeforeWriteBack、AfterCommitAmount)自定义同步逻辑,或在操作插件中直接修改上游数据包。系统在反写完成后自动触发剩余金额/数量的重新计算,并通过检查源单行关闭条件执行整单状态切换。
跨级单据处理
在存在A→B→C三级单据的场景下,反写规则支持从C单直接修改A单的控制字段。跨级反写采用最大分配值机制,依据上游携带值与分配上限的较小值构建数值约束框架。分配过程中对控制字段实施两种逻辑:直接上下游关系采用顺序分配(不超过最大值),跨级关系按权重分配比例并处理余数;非控制字段则采用固定值反写策略。
表结构与数据同步
反写规则在金蝶云星空系统中采用主表T_BF_WRITEBACKRULE存储核心配置,通过FID字段关联多语言表T_BF_WRITEBACKRULE_L实现国际化支持。数据同步需通过SQL语句维护主表与多语言表的一致性,典型操作包括使用INSERT语句插入FID为'f899a3be-be66-45ce-b9af-0078e3fa77bf'的规则记录。系统提供XML脚本执行与数据库直接操作两种同步方式,满足不同部署环境的需求。
业务场景应用
规则配置流程
创建反写规则需在BOS平台定义上下游单据关联关系,设置操作条件与计算公式。核心步骤包括:选择目标单据字段作为数据源,配置反写公式表达式(如),定义超额处理模式(允许超额/严格控制等)。对于复杂逻辑场景,需在BOS IDE中开发反写插件并实现IWriteBackService接口,通过注册BeforeWriteBack事件拦截器处理自定义业务逻辑。配置完成后需执行单据下推测试,验证字段反写是否触发剩余量自动重算。
参考资料
单据反写——反写多选基础资料的处理.金蝶集团官方网站.2024-06-24
【业务流程】--反写分配.金蝶集团官方网站.2025-04-05
反写规则能否支持跨级反写 .金蝶集团官方网站.2024-06-21
最新修订时间:2025-06-07 02:31
目录
概述
技术实现机制
跨级单据处理
参考资料