点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我在自定义表中插入INSERT条目时遇到了一些问题。
FIDCCP02 idoc(入站)通过RDBAPP01报告进行处理。 我已经创建了自定义功能过程代码和功能模块。 我的要求是基于一些计算,它将更新3个自定义表。 当我通过此报告运行更多idoc时,2个表正在更新,而最后一个表未插入。 此行为仅在某些idocs和某些时间发生。 当我再次重新处理同一个idoc时,将插入所有3个表。 插入后,将处理Catch并处理错误消息。 出现错误时我找不到模式。
嗨Vinuta Hegde,
关于您的问题-"自定义功能模块正在更新3个自定义表"。
SAP拥有处理此业务情景的最佳实践,如下所示。
1。 创建一个新的特定自定义(Z_INSERT_DB_TABLE)功能模块( abap-fm-update-module.png )(已标记为"更新功能模块")。
2。 在新的一个FM(Z_UPDT_DB_TABLE)内部,实现ABAP代码"在COMMIT上执行PERFORM insert_db_table"。 并为自定义表封装了INSERT数据库语句,而无需执行COMMIT WORK,但是您可以在每个INSERT之后检查sy-subrc。
3。 调用FM(Z_UPDT_DB_TABLE)后,触发COMMIT WORK。
让我知道结果。
此致
感谢您的详细说明。 通过取消注释功能模块中的COMMIT WORK可以解决此问题。每个IDOC处理CUSTOM TABLE都在获取INSERT记录,而隐式提交则通过sap标准自行处理。 当我在插入语句后删除显式提交时,一切正常。
您好Vinuta,
能否请您检查正在更新自定义表的内部表是否具有唯一的主键值。 还需要编写代码来更新Custom表,如果是,请调试代码以进行检查。 通常,SAP代码不会干扰自定义代码。 可能还有另一个原因,某些idoc缺少更新我的第三张表所需的信息。
希望这会有所帮助。
最好的问候
Navin Fernandes
当我们通过RDBAPP01报告处理批量idocs时,某些idocs面临此问题。 但是将为每个idoc处理运行processcode(与此idoc相关的自定义功能模块)。 定制功能模块中正在发生INSERT。
一周热门 更多>