特殊场景下预计可发量查询异常问题分析

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

特殊场景下预计可发量查询异常问题分析

    在预计可发量查询中,后台有一个逻辑处理,就是会先查询出所有符合条件的单据,然后根据是否同一流程删除重复数据(通过临时表#TM_SAL_EXPQTY中的FISDUPLICATE字段标识,后台去重逻辑会给此字段赋值,最终会排除值为1的记录,技术支持可根据这个字段先分析问题,另外还有一个FISINVALID字段,与锁库有关的,最终也会排除为1的记录,即同一预计出不能重复统计,比如销售订单推了发货通知单,它们两个单据只统一次预计出,不能统计了销售订单的预计出又算上发货通知单上预计出。举个例子,如果销售订单S1下推了发货通知单D1,且这两个单据在预计可发量中都查询到(只需要在预计可发量参数配置中的适用单据类型配置正确就能把S1和D1都查询到),后台逻辑先会把S1和D1添加进Session级别的临时表#TM_SAL_EXPQTY,然后去重逻辑会在预计可发量明细中只保留销售订单S1的数据,而删除下游发货通知单D1的数据,这样明细就只显示订单数据,不显示发货通知单数据。一般情况下这都不会有问题,但是如果有特殊场景,比如发货通知单适用单据类型有应急发货通知单(二开单据类型)和标准发货通知单,销售订单上的适用单据类型只有发货申请单(单据类型为二开的),如下图1-1所示的配置


图1-1


    如上的配置后,一般也不会有问题,但如果做的单据流程有点特殊就会有问题,如果两张不同的单据类型的销售订单由同一销售报价单下推,这个时候可发量查询就会有问题,如图1-2所示:

图1-2


    上图中销售订单XSDD032324,XSDD032325 (单据类型分别是发货申请和应急发货申请)是由同一销售报价单XSBJD0980 下推的,然后两个订单分别下推发货通知单FHTZD029426FHTZD029658(单据类型分别是标准发货通知单和应急发货通知单),如下图1-3所示:

image.webp

图1-3


    这个时候去重逻辑就会有问题,比如按照图1-1所示的配置,发货通知单适用单据类型包含标准发货通知单和应急发货通知单,这个时候去重前临时表#TM_SAL_EXPQTY都会查询到发货通知单FHTZD029426,FHTZD029658,销售订单适用单据类型只有发货申请,此时去重前临时表#TM_SAL_EXPQTY只会查询到XSDD032324而忽XSDD032325 (XSDD032325是应急发货申请 ),也就是去重前的临时表结果包FHTZD029426,FHTZD029658,XSDD032324,这时去重逻辑根据流程表可以发XSDD032324->FHTZD029426(->代表下推,下同),所以标记临时表#TM_SAL_EXPQTY中的记录行FHTZD029426对应的字段FISDUPLICATE为1,最终的查询语句排除了下游发货通知FHTZD029426,保留销售订单XSDD032324。但是问题也出现了,在这个特殊的做单流程中(即订单来源同一报价单),流程表记录的XSDD032324->FHTZD029426XSDD032325 ->FHTZD029658是同一流程(他们在表T_BF_INSTANCEENTRY 中的字段FINSTANCEID是同一值)。这个时候临时表#TM_SAL_EXPQTY也会连同下游发货通知单FHTZD029658对应的记录行一起被标记为重复,最终预计可发量报表只得到销售订单XSDD032324一条记录,而不是我们要的结果XSDD032324FHTZD029658,显然这是有问题的。

    解决办法:1,预计可发量配置中的销售订单适用类型也添加发急发货申请;2,做单据时,同一报价单下推不同销售订单时要保持销售订单的单据类型一致,到下游发货通知单的单据类型也尽量保持一致;3,下一通版补丁(预计2021.04.22发布)兼容处理此问题。


特殊场景下预计可发量查询异常问题分析

在预计可发量查询中,后台有一个逻辑处理,就是会先查询出所有符合条件的单据,然后根据是否同一流程删除重复数据(通过临时表#TM_SAL_...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息