首页 > 移动平台 > 详细

货物移动BAPI:BAPI_GOODSMVT_CREATE报错提示“不能执行功能模块 MB_CREATE_GOODS_MOVEMENT”的原因

时间:2019-11-08 01:22:11      阅读:300      评论:0      收藏:0      [点我收藏+]
在开发过程中,我们调用BAPI:BAPI_GOODSMVT_CREATE进行货物移动生成物料凭证时,出现了报错提示:“不能执行功能模块 MB_CREATE_GOODS_MOVEMENT”,如下图所示:
技术分享图片
  但也许我们通过调试,将传入BAPI的参数放到SE37中,直接使用该BAPI进行测试的时候,却能正常产生凭证,并不会出现上面的提示。于是我们又花了很多时间,逐个去核对传入的参数什么的有没有问题,去SAP官网查找对应的报错NOTE甚至怀疑是不是业务配置的问题。。。
  其实这个问题的原因并不复杂,我们点开上面报错图中的“帮助”按钮,就可以看到问题的原因了,如下2图所示:
技术分享图片
 
 技术分享图片
  从上图大概可以看出,是因为程序在调用函数 MB_CREATE_GOODS_MOVEMENT时,重复调用了该函数,且上一次调用的时候,没有进行提交(COMMIT WORK),才导致的。
  那么新的问题似乎来了,我们并没有直接调用 MB_CREATE_GOODS_MOVEMENT这个函数,为什么出现这个提示呢?其实这个问题不能理解,因为我们调用的货物移动BAPI:BAPI_GOODSMVT_CREATE的代码中调用了函数MB_CREATE_GOODS_MOVEMENT,如下图所示:
技术分享图片
 
技术分享图片
  再联想到本次开发的需求,用户要求同时执行多个货物移动,当所有的货物移动都没有报错的时候,再统一提交或者回滚。正好就验证了本次报错的原因,多次间接调用函数MB_CREATE_GOODS_MOVEMENT,而没有在每次调用后进行提交导致。
  至于要如何实现同时实现多个货物移动的统一提交和回滚,则不在本文讨论之中。

货物移动BAPI:BAPI_GOODSMVT_CREATE报错提示“不能执行功能模块 MB_CREATE_GOODS_MOVEMENT”的原因

原文:https://www.cnblogs.com/zohoo/p/11816959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!