BOM创建修改(CS01,CS02)保存时增强BADI[BOM_UPDATE]详解编程语言

1, BADI ‘BOM_UPDATE’介绍

SE18,查看BADi BOM_UPDATE,Chage_AT_SAVE就是BOM创建和修改保存时触发的方法,也就是CS01,CS02保存时触发

BOM创建修改(CS01,CS02)保存时增强BADI[BOM_UPDATE]详解编程语言

输入参数:

BOM创建修改(CS01,CS02)保存时增强BADI[BOM_UPDATE]详解编程语言

2, 实例业务场景

公司实际业务过程中,设计变更比较频繁,导致BOM的组件也要经常修改更新,在用CS02进行更新时,组件太多无法人工检查是否重复很费时费力。因此,考虑在更新BOM(增加组件情况)时做个检查,看新维护进去的组件是否已存在。

对应代码:

BOM创建修改(CS01,CS02)保存时增强BADI[BOM_UPDATE]详解编程语言

测试:

CS02维护BOM组件时,保存后触发方法CHANGE_AT_SAVE,如果检查有重复,抛出错误消息。

BOM创建修改(CS01,CS02)保存时增强BADI[BOM_UPDATE]详解编程语言

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跨程序抽取或修改全局变量值

BOM创建修改(CS01,CS02)保存时增强BADI[BOM_UPDATE]详解编程语言

以上。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19236.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论