CS01、CS02保存时增强的BADI(BOM_UPDATE)

1、需求背景:LC项目中,在保存BOM时,需要给BOM以Y开头的物料组件的展开类型字段赋默认值,查了一些资料,找到一个BADI增强,分享一下,希望对用到的兄弟有帮助。

CS01、CS02保存时增强的BADI(BOM_UPDATE)_第1张图片

2、BADI增强

step1:执行事务码SE19,在BAdI Name里输入BOM_UPDATE,然后点击“Create Impl”按钮

CS01、CS02保存时增强的BADI(BOM_UPDATE)_第2张图片

setp2:在Implementation Name处输入ZBOM_UPDATE,然后点OK按钮。

CS01、CS02保存时增强的BADI(BOM_UPDATE)_第3张图片

step3:返回到se19事务码界面,在Implementation中输入"ZBOM_UPDATE",点击"Change"按钮.

CS01、CS02保存时增强的BADI(BOM_UPDATE)_第4张图片

step4:双击CHANGE_AT_SAVE

CS01、CS02保存时增强的BADI(BOM_UPDATE)_第5张图片

step5:写入代码,保存,激活。当用CS01 CS02创建或修改BOM时,就能看到默认值D2

CS01、CS02保存时增强的BADI(BOM_UPDATE)_第6张图片


代码如下:

METHOD IF_EX_BOM_UPDATE~CHANGE_AT_SAVE.


IF SY-TCODE <> 'ZPP110'.
    DATA: STPOB TYPE STPOB.

    DATA: FIELD_NAME(30VALUE '(SAPLCSBT)O1-STPOB[]'.

    FIELD-SYMBOLS: <TABLE> TYPE TABLE.

    ASSIGN (FIELD_NAME) TO <TABLE>.

    LOOP AT <TABLE> INTO STPOB.
          IF STPOB-IDNRK+0(1) = 'Y' AND STPOB-STPOZ+0(1) = '9'.

              CLEAR STPOB-DSPST.
              STPOB-DSPST = 'D2'.
              MODIFY <TABLE> FROM STPOB.

          ENDIF.
    ENDLOOP.

    COMMIT WORK AND WAIT.
ENDIF.

ENDMETHOD.

你可能感兴趣的:(SAP,SAP,bom,abap,abap,abap,BOM保存增强,BOM增强,BOM保存增强,保存时设置默认值,BOM保存时设)