天天看点

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

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.