BOM组件物料重复检查详解编程语言

好吧,今天同事让做个BOM组件物料重复检查

网上有很多例子都是在保存的时候检查的,用的是BADI :BOM_UPDATE

自己也试了一下,麻烦。。。。很麻烦。。。尤其是在重复检查的时候:

  METHOD if_ex_bom_update~change_at_save. 
    DATA:z_stpob      TYPE LINE OF cs01_stpob_tab, 
         z_stpob1     TYPE LINE OF cs01_stpob_tab, 
         g_tab_bstpob TYPE TABLE OF stpob, 
         g_tab_astpob TYPE TABLE OF stpob, 
         z_msg        TYPE string, 
         count1       TYPE i, 
         count2       TYPE i. 
    DATA:lv_time TYPE i. 
 
    count1 = lines( delta_stasb ). 
    count2 = lines( delta_stpob ). 
 
*    IF count2 > count1. 
    LOOP AT delta_stpob INTO z_stpob. 
 
      APPEND z_stpob TO g_tab_bstpob. 
      IF sy-tabix <= count1. 
      ELSE. 
        APPEND z_stpob TO g_tab_astpob. 
      ENDIF. 
    ENDLOOP. 
 
    LOOP AT g_tab_astpob INTO z_stpob. 
      CLEAR:lv_time. 
      LOOP AT g_tab_bstpob INTO z_stpob1 WHERE idnrk = z_stpob-idnrk. 
        lv_time = lv_time + 1. 
      ENDLOOP. 
      IF lv_time > 1. 
        CONCATENATE z_msg '项目' z_stpob-posnr '组件重复/' INTO z_msg. 
      ENDIF. 
    ENDLOOP. 
 
 
    MESSAGE z_msg TYPE 'E'. 
    RETURN. 
*    EXIT. 
  ENDMETHOD.

后来DEBUG标准程序,找到了个很适合的地方:

函数:CS_BT_STPOB_UPDATE

在程序最开始加段检查逻辑

BOM组件物料重复检查详解编程语言

好了,检查完成。。。每输入一行组件,都会检查。。。完美

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

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

相关推荐

发表回复

登录后才能评论