無名经验总结与分享(SAP)            十年树木,百年树人

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

1、需求背景:PLM-EPE项目中,BOM由PDM系统通过TDMI传到EPE时,当组件具有SW替代组时, 在保存BOM时,清空成本核算标识相关。

image

解决方案:使用BADI增强 BOM_UPDATE

2、实施BADI增强

1).执行事务码SE19,在业务加载项名称里输入BOM_UPDATE,然后点击“创建实施”按钮

image

2).在弹出的对话框中,输入实施名称 ZBOM_UPDATE , 然后点击OK按钮。

image

3).双击方法 CHANGE_AT_SAVE,创建实施方法

image

4).填写相关代码,用于核验数据或修改数据

image

注意点: 因为此方法的输入参数全部为只读,可以做相关校验,但修改数据要通过其它方法。

5)修改数据

    步骤1。 获取全局数据   --详细参照--通过Field-symbols跨程序抽取或修改全局变量值

DATA: FIELD_NAME(30) VALUE '(SAPLCSBT)O1-STPOB[]'.
FIELD-SYMBOLS: <TABLE> TYPE TABLE.
ASSIGN (FIELD_NAME) TO <TABLE>.

步骤2。LOOP <TABLE> 对数据进行修改操作操作

DATA: SWHERE TYPE STRING.

SWHERE = 'ALPGR  = ''SW'' and ( VBKZ =  ''U''  or   VBKZ = ''I'' ) '.

LOOP AT <TABLE> INTO LS_STPOB WHERE (SWHERE) .
CLEAR LS_STPOB-SANKA.
MODIFY <TABLE> FROM LS_STPOB.
ENDLOOP.

注意点:

1. 只能修改VBKZ =  'U' (修改) 或  VBKZ = 'I' (新增)的记录,其它记录不要动,否则系统会报错或者数据修改异常。

2.此处不能有commit ,否则接口中的其它方法会失效或出错

image

posted @ 2021-02-26 15:22  無名  阅读(1652)  评论(0编辑  收藏  举报
Twttafku@163.com
十年树木,百年树人