PDM和SAP集成BOM插入重复项。

本文探讨了在PDM集成过程中遇到的插入重复项目的问题,详细介绍了已有的解决办法,包括BOM更新增强功能及异常处理策略。通过在Java程序中加入失败代码,确保正确识别并处理重复项目,防止数据冗余。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PDM集成时目前偶尔出现插入重复项目(项目号+物料号)。
在调用BOM函数前已经检查是否有重复项目,可是仍然有重复数据插入。而且BOM日志显示是同一时间插入的。同时程序已经检查,同一ECO不允许做两次。
目前解决办法:BOM BADI增强。
BADI:BOM_UPDATE
同时在JAVA程序中异常部分加入失败代码,因为调用RFC后会异常(LEAVE TO CURRENT TRANSACTION AND SKIP FIRST SCREEN. 导致)。
得不到正确的返回值,只有自己在异常部分人为认定为“重复项目错误”。
 
METHOD if_ex_bom_update~change_before_update.
  DATA: li_stpob TYPE  TABLE OF cs01_stpob .
  DATA:wa_delta_stasb TYPE cs01_stasb.
 
 
  li_stpob[] = delta_stpob[].
  LOOP AT delta_stasb INTO wa_delta_stasb WHERE lkenz EQ 'X'.
    DELETE li_stpob WHERE stlkn = wa_delta_stasb-stlkn.
  ENDLOOP.
  DATA: li1 TYPE i , li2 TYPE i.
  li1 = LINES( li_stpob[] ).
  SORT li_stpob BY posnr idnrk.
  DELETE  ADJACENT DUPLICATES FROM li_stpob COMPARING posnr idnrk.
  li2 = LINES( li_stpob[] ).
  IF li1 NE li2.
    MESSAGE '存在项目号和物料号重复,不允许保存BOM!' TYPE 'I'.
    LEAVE TO CURRENT TRANSACTION AND SKIP FIRST SCREEN.
  ENDIF.

ENDMETHOD.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值