本文描述了单据关联配置中的控制字段、最大分配值、业务流程数值携带表、分配上限值、分配方式及原理。控制字段影响分配方式,直接上下游按最大携带值分配,跨级按模式分配。非控制字段直接上下游无分配,跨级按上限分配。还探讨了关联复制行的分配原则和示例。
概念
控制字段: 单据关联配置中设置的控制字段,在关联表(LK表)中记录上游携带值和自身反写值,在流程节点反写值表记录每层的反写值(需要在转换规则关联主实体配置控制字段映射关系)。
最大分配值:直接上下游反写最大分配值为控制字段上游携带值,跨级反写最大分配值为控制字段逐层反写值中的最小值和分配上限值中较小的。
业务流程数值携带表:记录控制字段的分配值,字段为控制字段并且在转换规则的关联主实体中配置了映射关系和字段映射有携带来源才会记录,主要作用作为跨级反写分配上限依据。
分配上限值: 反写规则配置的分配上限公式计算得到的值。
自上而下分配:按转换过程中得到的上游关联行顺序进行从上到下分配,分配值不超过最大分配值,剩余值分配给最后一行。
按权重分配:只适应跨级合并,每行分配比例为最大分配值除以所有行最大分配值的和,并且分配值不超过最大分配值,由于除法存在精度和最大值限制,故存在剩余则在按自上而下分配。
合并类型:直接合并,A1&A2-》B1;跨级合并,A1&A2-》B1-》C1(C相对A就是跨级合并)
控制字段反写:是指反写规则反写值计算公式中包含了控制字段。
非控制字段反写:是指反写规则反写值计算公式中不包含控制字段,直接上下游之间的反写不存在分配,每行反写值相同,跨级反写如果存在分配的情况,则只按上限值进行分配。
分配原理
一、控制字段
直接上下游分配,依据最大携带值,进行至上而下分配,(反写插件可以取消分配,如果总反写值跟行值相同并且不存在关联复制行,则也不会分配)
跨级分配, 依据最大分配值(携带值和分配上限较小值),进行按分配模式进行分配
二、非控制字段
直接上下游,不存在分配,对上游每行反写相同的值
跨级分配,依据最大分配上限进行按分配模式进行分配
关联复制行的分配
一、关联复制行
单据A,行A1和行A2合并下推生成单据B的行B1,
通过插件或关联复制行又创建了关系为:行A1和行A2-》行B2 的行,
此时的对应关系变为:行A1和行A2-》行B1,行A1和行A2-》行B2,
既变成了多对多的关系。
二、分配
B1和B2分配依据的最大值都是B1对应的携带来源值,B2的携带来源值没有意义
先分配B1,再分配B2 ,都遵守至上而下分配
分配完B1后剩余的值作为B2的最大可分配值
三、示例
A1和A2携带值分别为10和20,
B1对应的携带来源值分别为10和20,而B2对应的携带来源值无论为多少,
假设B1和B2的分录值分别为15和15
则此时B1分配反写A1的值为10,分配反写A2的值为5
B2分配反写A1的值为为0,分配反写A2的值为15
分配示例:
下面示例中A1和A2是指单据A第一行和第二行,携带值分别为10和20;B1是指单据B第一行,值是指反写值; C1是指单据C第一行,值是指反写值;不考虑反写超额;不考虑拆行的情况。
推荐阅读