SAPSQL_ARRAY_INSERT_DUPREC-A017表

2020-09-25 03:20发布

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

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


大家好,

在程序中使用FM'ME_POST_INFORECRD'创建购买信息记录时,我得到了转储SAPSQL_ARRAY_INSERT_DUPREC。 可以提供多种材料作为输入,并且一次执行将创建多个信息记录。 材料将一一循环。 对于第一个材料,信息记录已成功创建。 但是,从第二层开始,它开始引发错误"将重复记录插入A017表"。 在第二种物料的转储详细信息中,我可以看到第一种物料,而不是第二种物料。 似乎有些缓冲区数据问题。

请对此进行纠正。

谢谢

Eldho

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

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


大家好,

在程序中使用FM'ME_POST_INFORECRD'创建购买信息记录时,我得到了转储SAPSQL_ARRAY_INSERT_DUPREC。 可以提供多种材料作为输入,并且一次执行将创建多个信息记录。 材料将一一循环。 对于第一个材料,信息记录已成功创建。 但是,从第二层开始,它开始引发错误"将重复记录插入A017表"。 在第二种物料的转储详细信息中,我可以看到第一种物料,而不是第二种物料。 似乎有些缓冲区数据问题。

请对此进行纠正。

谢谢

Eldho

付费偷看设置
发送
3条回答
SAP浪
1楼 · 2020-09-25 04:09.采纳回答

在使用未发布的(*)FM时,始终执行标准类/程序的地方搜索和复制行为,您的代码看起来像

呼叫功能'ME_INITIALIZE_INFORECORD'。
 通话功能'RV_CONDITION_RESET'
   出口
     free_memory ='X'。
 通话功能'ME_POST_INFORECORD'
   桌子
     t_eina_i = lt_eina
   例外情况
     error_message = 1
     其他= 2。
 通话功能'BAPI_TRANSACTION_COMMIT'
   出口
     等待='X'
   输入
     return = lt_bapiret2。
 刷新lt_eina。

也添加请求的检查/捕获以进行错误处理。

(*)实际上也适用于已发布的版本...

打个大熊猫
2楼-- · 2020-09-25 03:59

是的。 这是正确的方法。 我以前没有使用过FM RV_CONDITION_RESET。 现在工作正常。 谢谢。

hongfeng1314
3楼-- · 2020-09-25 04:05

在致电ME_POST_INFORECORD之前先尝试致电ME_INITIALIZE_INFORECORD

一周热门 更多>