点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
使用BAPI_RESERVATION_CHANGE在方法line_modify中编写MIGO检查功能的代码,在SM12中创建锁定条目
由上述代码创建的SM12条目
POST函数代码写入方法POST_Document中,显示保留已锁定用户USXXXX。
在提交程序中还调用了相同的BAPI_RESERVATION_CHANGE,以在更改后更新预订。
为了避免在BADI中提交BAPI_Commit,我创建了此Submit程序。
但是当我在后台运行相同的BAPI时,显示预订项已锁定,但在前台运行正常。
请帮助,在此先谢谢您!
此致
Saquib
line-modify.jpg (180.2 kB)
嗨
由于您要在两个单独的流程中更新同一文档(预订),因此第一个流程(货物移动)中的锁定条目将阻止第二个流程(后台)中对预订的更改
如果将代码移至作业的唯一原因是防止显式提交,我建议尝试将代码从后台作业移至BADI,而不要这样做。 不做承诺。 主交易(货物移动)肯定会进行一次提交以保存其自己的数据,从而隐式地将您使用BAPI所做的更改保存在数据库中。 (BAPI所做的更改与货物移动的数据位于同一LUW中)。
发布货物移动之后进行更改的另一种解决方案可能是围绕BAPI创建更新功能模块包装,并且 使用CALL FUNCTION Z ...在更新任务中从BADI调用包装函数模块。 (这只会在主程序执行提交工作时触发功能模块)
除了这些可能的解决方案之外,为什么不将您在LINE_MODIFY中所做的所有更改都捆绑到BADI实现类的全局属性中 并使用全局属性中的数据在POST_DOCUMENT方法中进行单个更新?
最诚挚的问候
Geert-Jan Klaps
您好,Saquib ,
我个人将为您的类的全局属性创建一个结构和表类型。 结构如下:
将该全局属性添加到您的BADI实现类(ZCL_IM_MMSG_MIGO_MR_GI_CON)。
在LINE_MODIFY中:
在POST_DOCUMENT
基本上,这就是我要尝试执行的操作。
最诚挚的问候,
Geert-Jan Klaps
来自SAP文档SUBMIT:
语句SUBMIT with 加法A ND RETURN使用新的LUW打开新的SAP-LUW
,您将不会共享调用程序的锁定对象。 因此,选择"提交"不是一个好选择。
您好Fredric,
您的意思是提交程序正在由新的SAP-LUW造成问题。 因此,建议替代方案是否可以在后台作业中创建FM而不是Submit程序。 或其他任何建议。
谢谢
Saquib
Hi Geert-Jan,
这是在line_modify中两次连续BAPI调用:
通过全局属性,我们可以一次发送带有最终值的任何东西吗?
谢谢
Saquib
一周热门 更多>