热度 1|||
这次我想和朋友们一起看一下,在后台批量创建交货单时遇到的一个比较隐蔽的问题。在筛选允许创建交货单时指定的一些条件,比如指定具体的工厂或者Storage location不允许为空,但在测试过程中发现,如果某张SO中,部分行项目满足条件,部分行项目不满足条件的时候,这张SO却能成功创建出交货单,并且所有的Item都会被创建在此DN上;
为了方便朋友们理解此问题,并可以复现并测试,我们利用系统里的抓图来说明,现就选一个条件Storage location不允许为空来测试,如下图所示:
设定好筛选条件后,创建一张SO,包含两个Item,一个Storage location不为空,另外一个Storage location为空,两个Item分别如图:
保存了SO后,执行VL10BATCH创建DN,发现DN被成功创建出来,而且SO的Status是Completed,Document flow如图:
DN中两个Item的情况如下图所示,(当然,有个别情况当该物料在这个Plant中默认Storage location,新建的DN中会带出此默认的Storage location。并且这里我们暂时不考虑允许拆分Item分别创建DN。)
但上述情况并不满足我们在VL10BATCH中设定Storage location不为空的要求。我们测试也发现,只有当SO中所有Item的Storage location都为空,也就是全都不满足条件,才不会被创建出DN;
通过多次测试及Debug程序,深入核查后发现,后台job在处理时,筛选到符合条件的SO后的创建DN过程中,不会带着筛选出符合条件的SO中某几个Item行创建后续的DN,只有SO level的信息,导致筛选到的item level信息,在创建DN时,被忽略了。
查到问题点,也就好办了,根据程序里的逻辑处理,需要调整相应的配置,创建DN时不仅有SO还得有符合条件的item信息,这样的话分别有两处配置要改;
第一处,是通过T-code:VL10CUA,修改ListType,将参数1改为2, 如下图:
第二处,执行T-code:VL10CUC,修改配置,将Selected items这里勾选上,如下图:
这两处配置改好后,再刷新一下VL10BATCH中的Profile。完成后,我们再重新下SO:
再次执行后台job,我们可以看到,不满足条件的item就不会再被建出DN;如图所示:
这样,筛选条件不满足却创建出DN的问题成功解决。朋友们可以自己动手测试验证。并希望朋友们在通过VL10BATCH批量创建DN时能成功地避开此类困惑和问题。