本文介绍了非控制字段与控制字段的反写逻辑,涵盖直接上下游单据及跨级反写的处理规则。非控制字段直接反写上游字段值,控制字段反写则需考虑合并情况下的分配策略,跨级反写时还需追踪并计算最上层反写值作为分配依据。同时,阐述了合并情况下跨级与直接上下游反写的区别及注意事项。
非控制字段反写逻辑
直接上下游单据携带和反写
1. 不存在合并情况
携带:对应上游行字段值
反写:字段值直接反写到相应上游行字段上
2. 存在合并情况
携带:对应上游行中的第一行字段值
反写:字段值直接反写到对应上游各合并行字段上
跨级反写
1. 不存在合并情况
反写:字段值直接反写到相应上游行字段上
2. 存在合并情况
反写:需对上游合并行进行分配,反写规则中的分配上限值作为每行最大分配值,
除第一次外,每次分配上限值等于分配上限值加上次反写值
控制字段反写逻辑
直接上下游反写
1. 不存在合并情况携带和反写
携带:对应上游行字段值
反写:字段值直接反写到相应上游行字段上
2. 存在合并情况携带和反写
携带:对应上游合并行字段值总和
反写:需对上游合并行进行分配,
携带量作为每行最大分配值
跨级反写
2.1 不存在合并情况反写
反写:字段值直接反写到相应上游行字段上
2.2 存在合并情况反写
反写:需对上游合并行进行分配,
取分配上限值和跨级反写控制字段携带值中的较小值,作为每行可分配的最大值。
分配上限值:反写规则中配置的分配上限表达式计算出来的值
跨级反写控制字段携带值:
为控制字段逐层向上追索到的最上层反写值
自上而下分配
1.下游行存在反写上游多行时,需要根据每行最大分配值进行分配
2. 分配剩余值都分配给上游最后一行,并且不受分配最大值限制
控制字段跨级反写存在合并时注意事项
1. 分配依据的最大值来源反写规则的分配上限和跨级反写携带值
2. 跨级反写携带值:跟直接上下游携带值不同, 此值来源追索到的最后一层反写值,
比如,采购》收料》检验, 检验反写采购,则跨级反写携带值为收料反写采购的值
3. 如果跨级反写携带值不是需要的分配依据,则需要去除此值的影响,去除的方式为删除直接上下游单据的控制字段映射关系,没有此映射关系,就会无法向上追查,具体操作:直接上下游单据的转换规则--》关联主单据体--》控制字段映射关系--》删除里面的映射关系;
4. 控制字段映射关系只影响跨级反写数据的追查,对直接上下游单据的反写没有任何影响。
合并情况下跨级反写和直接上下游反写的区别(控制字段)
1. 跨级反写的最大分配值来源反写规则配置的分配上限 和控制字段找到的最后层反写值中的较小值
2. 直接上下游反写的最大分配值只来源于上游字段的携带量
3. 分配上限值会根据每次反写值变化,等于反写规则中配置的分配上限值+上次反写值
4. 跨级反写控制字段携带值:为控制字段逐层向上追索到的最上层反写值
5. 直接上下游控制字段携带值:转换规则中配置的字段映射关系上游字段在转换时携带下来的值
推荐阅读