插入自定义表奇怪的行为

2020-09-20 09:46发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我在自定义表中插入INSERT条目时遇到了一些问题。

FIDCCP02 idoc(入站)通过RDBAPP01报告进行处理。 我已经创建了自定义功能过程代码和功能模块。 我的要求是基于一些计算,它将更新3个自定义表。 当我通过此报告运行更多idoc时,2个表正在更新,而最后一个表未插入。 此行为仅在某些idocs和某些时间发生。 当我再次重新处理同一个idoc时,将插入所有3个表。 插入后,将处理Catch并处理错误消息。 出现错误时我找不到模式。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我在自定义表中插入INSERT条目时遇到了一些问题。

FIDCCP02 idoc(入站)通过RDBAPP01报告进行处理。 我已经创建了自定义功能过程代码和功能模块。 我的要求是基于一些计算,它将更新3个自定义表。 当我通过此报告运行更多idoc时,2个表正在更新,而最后一个表未插入。 此行为仅在某些idocs和某些时间发生。 当我再次重新处理同一个idoc时,将插入所有3个表。 插入后,将处理Catch并处理错误消息。 出现错误时我找不到模式。

付费偷看设置
发送
4条回答
nice_wp
1楼-- · 2020-09-20 10:51

嗨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。

 FORM insert_db_table。

 从表gt_xpto []中插入z_xpto。

 IF sy-subrc NE 0。
 信息 ...
 万一。

 ENDFORM。

3。 调用FM(Z_UPDT_DB_TABLE)后,触发COMMIT WORK。

让我知道结果。

此致

木偶小白
2楼-- · 2020-09-20 10:47

感谢您的详细说明。 通过取消注释功能模块中的COMMIT WORK可以解决此问题。每个IDOC处理CUSTOM TABLE都在获取INSERT记录,而隐式提交则通过sap标准自行处理。 当我在插入语句后删除显式提交时,一切正常。

亦是此间程序员
3楼-- · 2020-09-20 10:26

您好Vinuta,

能否请您检查正在更新自定义表的内部表是否具有唯一的主键值。 还需要编写代码来更新Custom表,如果是,请调试代码以进行检查。 通常,SAP代码不会干扰自定义代码。 可能还有另一个原因,某些idoc缺少更新我的第三张表所需的信息。

希望这会有所帮助。

最好的问候

Navin Fernandes

骆驼绵羊
4楼-- · 2020-09-20 10:28

当我们通过RDBAPP01报告处理批量idocs时,某些idocs面临此问题。 但是将为每个idoc处理运行processcode(与此idoc相关的自定义功能模块)。 定制功能模块中正在发生INSERT。

一周热门 更多>