跳转到内容
技术文章
作者头像张继刚张吉万博新体育手机客户端刚

关于VL014“由于合作伙伴不同,错误传递分裂”的调试提示

在使用TCODE VL10B根据一个特定的STO订单创建发货订单时,用户得到了VL014的错误消息“Item &: delivery split because the partner are different”。所有的项目共享同一个客户,相关的拆分配置检查没有问题,这些项目应该被分组到一个发货订单中,而不是按项目拆分,这会增加大量不必要的进一步操作。

在本文中,我试图从技术的角度来解决这些问题,并列出调试过程中的关键点。

首先,在调试屏幕上将消息编号为014的消息类型VL设置断点无疑是最好的起点。但不幸的是,它不会被触发,因为这条消息没有像弹出窗口一样被处理,而是被收集来仅用于错误列表显示。而且VL10B不会在SM37上以你的名字创建后台作业,所以也忘了JDBG吧。

通过跟踪错误日志表FVBFS在函数模块:RV_DELIVERY_CC_ERRORLOG_ADD中的变化,将在名为'的例程中找到此错误消息的触发点。message_handling_variabelsapmv50a的包含程序LV50SF08。(插入点是常规’message_vbfs_aufbauen ' at FV50XF0M.)

顺便说一句,使用RV_DELIVERY_CC_ERRORLOG_ADD作为流程终止点,以防止物理创建交付,因为这种情况可能很少,并且很难找到一个新的交付,否则需要相应地恢复发票并删除生成的交付。

在同一例程中,检查合作伙伴是否需要分送的关键字段是字段lf_partners_identical”。

这个旗帜将由FM更新:“SHP_COMPARE_DELIVERY_PARTNERS”FM内部:' SHP_CHECK_PARTNER_COMBINATION '。

这里有两个表:一个是LT_VBPA_CHECK,它已经包含了报头的合作伙伴信息现有的,LT_VBPA的合作伙伴的新交付报头ZLIKP。标志ef_partners_same在乞求处被标记为X,这意味着默认情况下所有交付都不应该被分割,除非该标志被清除。

为字段创建观察点ef_partners_same ',我们找到根~!你可以在这里搜索清晰的ef_partners_same ',以获得可能导致合作伙伴造成交付分裂的所有不同原因!在我的情况下,这是由不同的ADRNR造成的!

OMG,怎么会是这么简单的原因~~~我要晕了。查看PO项表,不同PO项的ADRNR不同,编号是顺序的!不要忘记adda = ' e '意味着什么。

检查ADRC表和那些ADRNR,所有这些行都是完全相同的,除了数字。

检查PO更改日志,用户对物品做了什么?什么都没有改变,只是留下了更改日志!!

这些无意义的操作会让系统认为送货地址的细节已经更新,这就是为什么ADRDA是“E”而不是默认的“D”!

通过用户ID和更改日志时间,我们可以在更改日志项表CDPOS!空白的value_new和value_old!但它是“I”类型而不是“U”类型,所以仍然不是根。

为什么除了ADRC之外还插入了ADRU之类的表?检查项目变更日志,您将发现:P交付创建过程中的一些关键功能或例程:

  • “GN_DELIVERY_CREATE”“SHP_VL10_DELIVERY_CREATE”
  • ' SHP_VL10_DELIVERY_CREATE '在LV50R_CREAF07
  • ' DELIVERY_CREATE '在LV50R_VIEWF43
  • ' PACKAGES_DELIVER '在LV50R_VIEWF44
  • FCODE_SAMD / FCODE_EXECUTE在VL10B的PAI

对我来说,调试就像追逐游戏,完整的当然有陷阱和刺激~最大的缺点就是我会掉头发~

-2021年9月16日更新

仅仅不到三个月,我几乎忘记了整个过程~感谢这篇博客和我自己把我带回到以前的战场:D这就是为什么我需要继续写博客…

具有“I”类型的CDPOS将为空,用于新值和旧值!这没有问题!

例:如果BAPIMERQADDRDELIVERY-TEL1_NUMBR已经维护,那么ADR2将显示在变更日志中,有3个“ADRU”条目。这就是为什么这3个更改记录在项目级别的旧/新值为空的原因。

所以这是PR创造的正确变更日志。

将尝试的方法从联系。

注释546668(常见问题:创建交付时拆分交付)

问题:为什么会因为伴侣出轨而导致离婚?
答:位于交付的伙伴模式中的所有伙伴、从前面的文档复制的所有伙伴或从货物接收者的客户主记录中确定的所有伙伴都是分割标准。出站发货的唯一强制合作伙伴是货物接收方。例如,如果没有统计数据受到影响,您可以从合作伙伴模式中删除带有订单引用的交付的销售方,然后它就不再是拆分标准了。以下情况可能会导致交货分裂:

  • 相同的伙伴功能有不同的伙伴编号。
  • 即使合伙人编号相同,合伙人地址也有偏差。在这里,只有地址号码对分割至关重要;不检查地址列表部分。
  • 在涉及的一个销售订单中,货运代理作为额外的合作伙伴。相反,拥有其他角色的额外合作伙伴不会导致标准的分裂。为此,您可以在SAP Note 448919中找到更多信息。

————-updated at 2021/10/20—————-

我的最终解决方案是:

  1. 在LV50SF08的例程gn_lieferkopf_finden开始时的隐式增强。使用get from过滤器设置标志来触发此逻辑LIKP
  2. FM结尾的隐式增强:SHP_CHECK_PARTNER_COMBINATION。使标志为活动比较新的逻辑:
    • 为合作伙伴WE取2个ADRNRlt_vbpa_check和lt_vbpa相应;
    • 删除addrnumber的值adrc_UUID;
    • 如果这两个ADRC条目相等,则设置ef_partners_same back as ' X '

指定的标签

      第一个留下评论
      你一定是登录评论:评论或回复一篇文章