1, BADI ‘BOM_UPDATE’介绍
SE18,查看BADi BOM_UPDATE,Chage_AT_SAVE就是BOM创建和修改保存时触发的方法,也就是CS01,CS02保存时触发
输入参数:
2, 实例业务场景
公司实际业务过程中,设计变更比较频繁,导致BOM的组件也要经常修改更新,在用CS02进行更新时,组件太多无法人工检查是否重复很费时费力。因此,考虑在更新BOM(增加组件情况)时做个检查,看新维护进去的组件是否已存在。
对应代码:
测试:
CS02维护BOM组件时,保存后触发方法CHANGE_AT_SAVE,如果检查有重复,抛出错误消息。
3, 其他
可以看到方法CHANGE_AT_SAVE只有输入参数,没有输出参数,所以在这个方法中不能直接修改BOM中的相关信息。但是可以通过修改内存来变通的修改,
比如下面代码:修改BOM的展开类型(Explosion type):
1 2 3 4 5 6 7 8 9 10 |
DATA: STPOB TYPE STPOB. DATA: FIELD_NAME(30) VALUE '(SAPLCSBT)O1-STPOB[]'. FIELD-SYMBOLS: <TABLE> TYPE TABLE. ASSIGN (FIELD_NAME) TO <TABLE>. LOOP AT <TABLE> INTO STPOB. STPOB-DSPST = <span class="L1S33">'Z2'</span>. "Explosion type <span class="L1S52">MODIFY</span> <TABLE> <span class="L1S52">FROM</span> STPOB. ENDLOOP. |
跨程序修改全局变量详细参照--通过Field-symbols跨程序抽取或修改全局变量值
以上。
发表评论