FavoriteLoading
0

如何使用BAPI_PO_CREATE1创建暂存订单(Park PO)

[隐藏]

1, PARK_UNCOMPLETE参数

BAPI BAPI_PO_CREATE1中有个参数PARK_UNCOMPLETE,看帮助文档,当等于‘X'时,PO创建发生错误时会生成暂存订单。

点击右边绿色按钮可以看到参数文档,里面描述了PARK_UNCOMPLETE和MEMORY_UNCOMPLETE配合使用的逻辑

但是很遗憾,此时BAPI还是不能创建的暂存的PO。。。

2, 激活switch MM_SFWS_PH_CORE

经过调查还需要激活一个switch LOG_MM_CI_3,其中的MM_SFWS_PH_CORE  就是影响暂存订单的。

激活过程:

tcode SFW5,查找到 LOG_MM_CI_3

钩上checkbox,然后点击activate changes激活

注意此激活是不可逆的。

转入后台激活

激活后,灯泡图标点亮,右边也有文本提示,will remain activated

在switch Framework Brower中可以查看到 LOG_MM_CI_3下的所有功能被激活,其中包括了影响预制和暂存的MM_SFWS_PH_CORE

3, BADI ME_HOLD_PO

最后还要SE19创建一个BADI实施,badi ME_HOLD_PO中就一个方法is_allowed,用来允许hold和park订单的生成,

代码:

4, 其他

  • 生成暂存订单时,也要调用 BAPI_TRANSACTION_COMMIT
  • 这个激活没有TR传输,需要在测试系统,生产系统分别激活,激活时需要联系Basis打开激活。
  • 生成暂存订单时,bapi BAPI_PO_CREATE1 返回的消息,消息ID MEPO 消息号 013,详细如下:

相关notes :2781794 - BAPI_PO_CREATE1: Unable to park a PO with Budget exceeded error

 

以上。