点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好!
我有一个问题,在以更新任务模式调用的功能模块内部,我需要向Z表添加一条记录并进行提交,以便在同一过程的后续步骤中可以使用它。
如果我进行提交,则会得到转储,因为您不能这样做。 我尝试了另一件事,将另一个功能模块称为新任务,并在此FM中添加了插入和提交。 它什么也没做。
代码之所以有效,是因为如果我将SE37中的第一个FM作为普通FM执行,则记录将添加到表中。
那么,有没有一种方法可以向表中添加记录,并在更新任务模式下调用FM内进行相应的提交? 请记住,我正在做一个选择以在后面的步骤中检索此记录,这就是为什么我需要它,我正在向现有程序中添加功能,并尝试尽可能少地修改。
感谢您的帮助!
嗨,
用于更新z表,将其放置在启用RFC的功能模块中并在此启用RFC的FM内编写commit语句的代码。
在主程序中将此RFC启用的FM称为DESTIANTION'NONE'。
EG:呼叫功能''目的地'无'。
通过这种方式,您可以避免转储,并且可以更新z表。
请参阅注释1895298,896173
那么,为什么要完全执行显式COMMIT?
如果更改数据库表,则该更改在"相同的过程,相同的功能模块,相同的(DB-)LUW"中可见。 还是我错过了什么?
后面的步骤究竟如何执行? 读取一致性意味着,如果选择的数据位于同一LUW中,则您的选择应该已经"看到"了新数据,所以我想知道是否存在某些缓存或某些内容,或者是否会将其放入另一个LUW中?
或者,是否可以将更新的信息传输到后续步骤? 也许使用静态类属性或类似的属性。
如果您读了我的原始文章,则需要在FM内而不是之后进行一次提交。
但是为什么要显式提交? 默认情况下,在更新FM内以及所谓的所有内容都在DB LUW内。
嗨,
您可以在更新任务模式下调用FM之后执行"提交",因此将执行FM并添加记录,但实际上它与正常调用FM相同。
最好的问候。
尝试:
CALL FUNCTION'BAPI_TRANSACTION_COMMIT'
导出
wait ='X'。
一周热门 更多>