SAP Enhancement LM61YF0I

58 篇文章 0 订阅

LM61YF0I

 

FORM planning_segment_close.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form PLANNING_SEGMENT_CLOSE, Start                                                                                                                A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZMD_MOQ.    "active version
  DATA: old_mdkp LIKE mdkp.
  DATA: zz_mdps LIKE TABLE OF mdpsx WITH HEADER LINE.
  DATA: zz_afko LIKE TABLE OF afko WITH HEADER LINE.
  DATA: zz_plaf LIKE TABLE OF plaf WITH HEADER LINE.
  DATA: zz_mvke LIKE TABLE OF mvke WITH HEADER LINE.
  DATA: zz_clear_moq.

  old_mdkp mdkp.

  REFRESH: zz_mdps,zz_afko,zz_plaf.
  LOOP AT mdpsx INTO zz_mdps WHERE plaab af61y-plaab
                               AND planr af61y-planr.
    IF zz_mdps-delkz 'AR' OR zz_mdps-delkz 'SB'.
      APPEND zz_mdps.
    ENDIF.
    IF zz_mdps-delkz 'AR'.
      SELECT SINGLE lead_aufnr INTO zz_afko-aufnr
        FROM afko
        WHERE aufnr zz_mdps-del12.
      COLLECT zz_afko.
    ENDIF.
    IF zz_mdps-delkz 'SB'.
      zz_plaf-plnum zz_mdps-aufvr.
      CALL FUNCTION 'ZGET_LEADING_PL'
        EXPORTING
          p_plnum    zz_plaf-plnum
        IMPORTING
          lead_plnum zz_plaf-plnum.
      COLLECT zz_plaf.
    ENDIF.
  ENDLOOP.

  CLEAR zz_clear_moq.
  REFRESH zz_mvke.
  IF zz_afko[] IS NOT INITIAL.
    SELECT DISTINCT matnr APPENDING CORRESPONDING FIELDS OF TABLE zz_mvke
      FROM afpo
      FOR ALL ENTRIES IN zz_afko
      WHERE aufnr zz_afko-aufnr.
  ENDIF.
  IF zz_plaf[] IS NOT INITIAL.
    SELECT DISTINCT matnr APPENDING CORRESPONDING FIELDS OF TABLE zz_mvke
      FROM plaf
      FOR ALL ENTRIES IN zz_plaf
      WHERE plnum zz_plaf-plnum.
  ENDIF.

  SORT zz_mvke BY matnr.
  DELETE ADJACENT DUPLICATES FROM zz_mvke COMPARING matnr.
  LOOP AT zz_mvke.
    IF zz_mvke-matnr(2NE '80'.
      DELETE zz_mvke.
      CONTINUE.
    ENDIF.

    zz_clear_moq 'Y'.
    SELECT SINGLE matnr INTO zz_mvke-matnr
      FROM mvke
      WHERE matnr zz_mvke-matnr
        AND prat1 ' '.
    IF sy-subrc 0.
      zz_clear_moq 'N'.
      EXIT.
    ENDIF.
  ENDLOOP.

  READ TABLE zz_mdps INDEX 1.
  IF zz_mdps-delkz 'PB'. "Project stock

  ELSE.

  ENDIF.

  IF zz_clear_moq 'Y'.
    CLEAR: mdkp-bstmi,mdkp-bstrf.
  ENDIF.

  IF af61y-verfr EQ dumplan.
    mdkp old_mdkp.
  ENDIF.
ENDENHANCEMENT.

 

 

FUNCTION ZGET_LEADING_PL.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(P_PLNUM) LIKE  PLAF-PLNUM
*"  EXPORTING
*"     REFERENCE(LEAD_PLNUM) LIKE  PLAF-PLNUM
*"----------------------------------------------------------------------

  CLEAR rf61o.
  SELECT SINGLE *
    FROM plaf
    WHERE plnum p_plnum.

  u_arsnr plaf-arsnr.
  u_arsps plaf-arsps.
  u_plscn plaf-plscn.
  MOVE plaf-plnum TO l_pln02.
*--> Direktfertigung pruefen
  PERFORM read_resb_plnum USING u_arsnr
                                u_arsps
                                l_pln02
                                u_plscn                     "TL 46B
                       CHANGING l_plnum
                                l_aufnr
                                l_rcode.
*--> Ergebnis pruefen
  CHECK l_rcode EQ 0.
  IF  NOT l_aufnr IS INITIAL
  AND     l_plnum IS INITIAL.
    EXIT.
  ENDIF.
*--> gefundenen Plaf merken
  MOVE l_plnum TO rf61o-kopln.
  MOVE l_plnum TO rf61o-uepln.
  MOVE u_arsnr TO l_arsnr.
  MOVE u_arsps TO l_arsps.
*--> Suchen nach Kopf des Auftragsnetzes
  DO.
    PERFORM read_plaf_arsnr USING l_plnum
                                  l_pln02
                         CHANGING l_arsnr
                                  l_arsps
                                  l_rcode.
*--> Ergebnis pruefen
    IF l_rcode NE 0.
      EXIT.
    ENDIF.
*--> Suche abbrechen: Kopfplaf gefunden
    IF l_arsnr IS INITIAL.
      EXIT.
    ENDIF.
*--> gefundenen Direktfertigungsplaf merken
    MOVE l_plnum TO l_pln02.
*--> Bedarf des gefundenen Direktfertigungsplafs lesen
    PERFORM read_resb_plnum USING l_arsnr
                                  l_arsps
                                  l_pln02
                                  u_plscn                   "TL 46B
                         CHANGING l_plnum
                                  l_aufnr
                                  l_rcode.
*--> Ergebnis pruefen
    IF l_rcode NE 0.
      EXIT.
    ENDIF.
    IF  NOT l_aufnr IS INITIAL
    AND     l_plnum IS INITIAL.
      EXIT.
    ENDIF.
    MOVE l_plnum TO rf61o-kopln.
  ENDDO.
  IF rf61o-kopln IS NOT INITIAL.
    lead_plnum rf61o-kopln.
  ENDIF.

ENDFUNCTION.

 

ENHANCEMENT 2  ZMD_MOQ.    "active version
  mdkp old_mdkp.
ENDENHANCEMENT.
*$*$-End:   (2)---------------------------------------------------------------------------------$*$*
ENDFORM.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值