点击此处---> 群内免费提供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。)
欢呼
托德
嗨,
如果您要在循环中调用功能模块,请检查每次循环之后是否清除所有变量,然后再传递给WS_DELIVERY_UPDATE。 您可以使用LE_DELIVERY_REFRESH_BUFFER之类的功能模块来清除缓冲区。
KR Jaideep,
我已经找到解决方法。
通过SUBMIT调用在单独的程序中调用WS_DELIVERY_UPDATE。
不是最佳解决方案-但它可以工作。
我遇到了同样的问题。 我通过在WS_DELIVERY_UPDATE之前调用SERIAL_INTTAB_REFRESH来解决它。
我通过查找IDLV处理程序的DELVRY找到了解决方案:功能模块IDOC_INPUT_DELVRY
感谢Kim。
您解决了我的问题!
使用Bapi创建交货时,如果要更新序列号,请使用FM
CALL FUNCTION'SERIAL_INTTAB_REFRESH'
导出objects_status_refresh ='C'。 这样可以解决执行PGI时的问题。
或者使用DESTINATION'NONE'调用fm WS_DELIVERY_UPDATE2
PS:作为参考,我正在更新此线程。
它解决了我的问题。
谢谢Meghasyam。
嗨,托德,
表'OBJK'(正在更新)在表OBJNR(对象列表编号)和OBZAE(对象列表计数器)组合中似乎已存在要添加序列号的条目。
请检查该表中是否已存在要添加的数据。
希望有帮助。
一周热门 更多>