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):
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跨程序抽取或修改全局变量值
以上。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19236.html