IDOC:XK05之后,BAPI_PO_CHANGE中的错误"供应商被阻止"

2020-08-31 04:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我在使用BAPI_...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我在使用BAPI_PO_CHANGE进行IDOC处理时遇到问题。

让我提供一些背景信息。 我们有一个ECC6入站接口,正在接收ORDERS05类型的Idocs。 这些包含采购订单的数据。 业务需求是检查那些PO中现有项目的"最终发票"标志。

但是,如果阻止了PO中的供应商(LFA1-SPERM或LFM1-SPERM),则标准SAP行为将不允许任何更改。 为了避免此问题,我们采用了以下解决方案(如OSS注释2512364中所建议):

1。 删除所有供应商阻止标志==>通过呼叫交易" XK05"

2。 等待3秒

3。 致电BAPI_PO_CHANGE

4。 通过调用事务" XK05"还原供应商阻止标志==>

出现2个问题:

-BAPI_PO_CHANGE(第3步)将抛出一个错误,指出供应商已被阻止,尽管事实上该供应商的更改文档(第1步)表明该供应商已成功解除封锁

-上述错误不是系统性的,它似乎是在同时接收多个Idocs时随机触发的(在我们上次运行的600个中,有150个idocs失败)。 Idocs与多个供应商有关。 此外,稍后通过BD87手动运行时,失败的Idocs将被成功处理。

关于BAPI_PO_CHANGE为什么仍然认为供应商被阻止的任何想法?

我们甚至尝试了一种解决方案,以逻辑上锁定当前由活动Idoc处理的供应商,以避免多个Idocs同时在同一供应商上工作。

现在,我们正在跟踪XK05程序缓冲区干扰BAPI_PO_CHANGE的可能性...

预先感谢您的帮助。

此致

丹尼尔

3条回答
Cikesha
2020-08-31 05:34

我曾经在一家使用这种方法的公司工作过,请相信我,当idocs数量增长时,我们必须删除所有这些。

WAIT是最糟糕的语句,您可以在编码中使用

只是为了概述一下,如果您每500万运行一次工作,并且有人修改供应商,您的 作业将等待..所以1个进程很忙。 之后的500万,第二个作业,第二个批处理忙碌中……现在计算您系统中可用的批处理数目,并想象如果用户离开屏幕一小时,将会得到什么结果。 您的所有批次均已锁定。 这不是一个有趣的故事,我看过几次;)

一周热门 更多>