表OBJK上的SAPSQL_ARRAY_INSERT_DUPREC-WS_DELIVERY_UPDATE(FM)之后

2020-08-21 12:03发布

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

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


SAP同志们,

有一个很大的问题。

我正在使用BAPI-BAPI_OUTB_DELIVERY_CHANGE创建批次拆分并将序列号添加到出库交货(类型H)

然后,我呼叫FM-WS_DELIVERY_UPDATE以过帐发货。

问题是我遇到了短暂的失败-参见下文:

有人打过吗? 我很确定这与序列号有关(它们在表OBJK中正在更新)。

任何帮助都是王牌。

欢呼

托德

运行时错误SAPSQL_ARRAY_INSERT_DUPREC

除外。 CX_SY_OPEN_SQL_DB

日期和时间25.08.2009 15:06:20

短文本

ABAP/4 Open SQL数组插入结果导致数据库记录重复。

发生了什么事?

ABAP应用程序错误

当前的ABAP程序" SAPLIPW1"必须终止,因为它具有

遇到不幸的是无法执行的语句。

你能做什么?

记下导致错误的操作和输入。

要进一步处理该问题,请与您的SAP系统联系

管理员。

使用事务ST22进行ABAP转储分析,您可以查看

在并管理终止消息,您也可以

保持很长一段时间。

错误分析

发生异常,下面将对其进行详细说明。

未捕获分配给类'CX_SY_OPEN_SQL_DB'的异常

过程" OBJK_POST_UPDATE_N""(FUNCTION)",也没有被RAISING传播

子句。

由于过程的调用者无法预期到

会发生异常,当前程序终止。

发生异常的原因是:

如果您使用ABAP/4 Open SQL数组插入来在其中插入记录

数据库,并且该记录已经存在,并且具有相同的键

这将导致终止。

(对于具有相同错误的ABAP/4 Open SQL单记录插入

情况,处理不会终止,但是SY-SUBRC设置为4。)

欢呼

托德

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

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


SAP同志们,

有一个很大的问题。

我正在使用BAPI-BAPI_OUTB_DELIVERY_CHANGE创建批次拆分并将序列号添加到出库交货(类型H)

然后,我呼叫FM-WS_DELIVERY_UPDATE以过帐发货。

问题是我遇到了短暂的失败-参见下文:

有人打过吗? 我很确定这与序列号有关(它们在表OBJK中正在更新)。

任何帮助都是王牌。

欢呼

托德

运行时错误SAPSQL_ARRAY_INSERT_DUPREC

除外。 CX_SY_OPEN_SQL_DB

日期和时间25.08.2009 15:06:20

短文本

ABAP/4 Open SQL数组插入结果导致数据库记录重复。

发生了什么事?

ABAP应用程序错误

当前的ABAP程序" SAPLIPW1"必须终止,因为它具有

遇到不幸的是无法执行的语句。

你能做什么?

记下导致错误的操作和输入。

要进一步处理该问题,请与您的SAP系统联系

管理员。

使用事务ST22进行ABAP转储分析,您可以查看

在并管理终止消息,您也可以

保持很长一段时间。

错误分析

发生异常,下面将对其进行详细说明。

未捕获分配给类'CX_SY_OPEN_SQL_DB'的异常

过程" OBJK_POST_UPDATE_N""(FUNCTION)",也没有被RAISING传播

子句。

由于过程的调用者无法预期到

会发生异常,当前程序终止。

发生异常的原因是:

如果您使用ABAP/4 Open SQL数组插入来在其中插入记录

数据库,并且该记录已经存在,并且具有相同的键

这将导致终止。

(对于具有相同错误的ABAP/4 Open SQL单记录插入

情况,处理不会终止,但是SY-SUBRC设置为4。)

欢呼

托德

付费偷看设置
发送
7条回答
风早神人
1楼 · 2020-08-21 13:05.采纳回答

嗨,

如果您要在循环中调用功能模块,请检查每次循环之后是否清除所有变量,然后再传递给WS_DELIVERY_UPDATE。 您可以使用LE_DELIVERY_REFRESH_BUFFER之类的功能模块来清除缓冲区。

KR Jaideep,

樱桃小丸子0093
2楼-- · 2020-08-21 13:00

我已经找到解决方法。

通过SUBMIT调用在单独的程序中调用WS_DELIVERY_UPDATE。

不是最佳解决方案-但它可以工作。

Baoming ROSE
3楼-- · 2020-08-21 13:05

我遇到了同样的问题。 我通过在WS_DELIVERY_UPDATE之前调用SERIAL_INTTAB_REFRESH来解决它。

我通过查找IDLV处理程序的DELVRY找到了解决方案:功能模块IDOC_INPUT_DELVRY

悠然的二货
4楼-- · 2020-08-21 12:46

感谢Kim。

您解决了我的问题!

SAP砖家
5楼-- · 2020-08-21 12:44

使用Bapi创建交货时,如果要更新序列号,请使用FM

CALL FUNCTION'SERIAL_INTTAB_REFRESH'

导出objects_status_refresh ='C'。 这样可以解决执行PGI时的问题。

或者使用DESTINATION'NONE'调用fm WS_DELIVERY_UPDATE2

PS:作为参考,我正在更新此线程。

灬番茄
6楼-- · 2020-08-21 12:59

它解决了我的问题。

谢谢Meghasyam。

昵称总是被占用
7楼-- · 2020-08-21 12:43

嗨,托德,

表'OBJK'(正在更新)在表OBJNR(对象列表编号)和OBZAE(对象列表计数器)组合中似乎已存在要添加序列号的条目。

请检查该表中是否已存在要添加的数据。

希望有帮助。

一周热门 更多>