ZXM61U02

<< Click to Display Table of Contents >>

Navigation:  All About ABAP Technique > Indonesia > ABAP Tutorial > ABAP Workbench Tools  > Enhancement > Customer Exits > Contoh Customer Exits > Project ZPPWS002 > Funtions Exits > EXIT_SAPLM61C_001 >

ZXM61U02

*&---------------------------------------------------------------------*
*&  Include           ZXM61U02                                         *
*&---------------------------------------------------------------------*
DATA: lv_flag.
DATA: lv_char01(04) TYPE c,
     lv_char02(04) TYPE c.
RANGES: ra_dispo   FOR mt61d-dispo.
 
CLEAR: no_planning, stop_planning.
*----------------------------------------------------------------------*
* immediately exclude material with deletion flag
* this will reduce unnecessary MRP list with termination
*----------------------------------------------------------------------*
IF mt61d-lvorm = 'X'.
 no_planning = 'X'.
ENDIF.
 
*----------------------------------------------------------------------*
* select materials for one MRP controller (specified in user_par)
*----------------------------------------------------------------------*
 
CASE user_key.
 
WHEN '001'.
*      UXPAR = USER_PAR.
*      CONDENSE UXPAR.
*      WRITE UXPAR+0(3) TO DISPO.
*      IF DISPO IS INITIAL.
*        EXIT.
*      ENDIF.
*      IF MT61D-DISPO <> DISPO.
*        NO_PLANNING = 'X'.
*      ENDIF.
*->Change reason: want to select multiple MRP controllers
 
   uxpar = user_par.
  CONDENSE uxpar.
  CLEAR lv_flag.
  WHILE lv_flag NE 'X'.
    CLEAR: lv_char01, lv_char02.
    SPLIT uxpar AT ';' INTO lv_char01 lv_char02.
    IF lv_char02 IS INITIAL.
      IF uxpar IS NOT INITIAL.
        MOVE 'I'       TO ra_dispo-sign.
        MOVE 'EQ'     TO ra_dispo-option.
        MOVE lv_char01 TO ra_dispo-low.
        APPEND ra_dispo.
      ENDIF.
      MOVE 'X' TO lv_flag.
      CONTINUE.
    ENDIF.
    REPLACE lv_char01 WITH ' ' INTO uxpar.
    REPLACE ';' WITH ' ' INTO uxpar.
    CONDENSE uxpar.
    MOVE 'I'       TO ra_dispo-sign.
    MOVE 'EQ'     TO ra_dispo-option.
    MOVE lv_char01 TO ra_dispo-low.
    APPEND ra_dispo.
  ENDWHILE.
  IF NOT uxpar NS ';'.
    WRITE uxpar+0(3) TO dispo.
    IF dispo IS INITIAL.
      EXIT.
    ENDIF.
    IF mt61d-dispo <> dispo.
       no_planning = 'X'.
    ENDIF.
 
  ELSE.
    REPLACE space IN uxpar WITH ''.
    FIND mt61d-dispo IN uxpar IGNORING CASE.
 
    IF sy-subrc NE 0.
*not found
       no_planning = 'X'.
    ENDIF.
 
  ENDIF.
*----------------------------------------------------------------------*
* select materials excluding one MRP controller (specified in user_par)
*----------------------------------------------------------------------*
WHEN '002'.
*      UXPAR = USER_PAR.
*      CONDENSE UXPAR.
*      WRITE UXPAR+0(3) TO DISPO.
*      IF DISPO IS INITIAL.
*        EXIT.
*      ENDIF.
*      IF MT61D-DISPO = DISPO.
*        NO_PLANNING = 'X'.
*      ENDIF.
*->Change reason: want to select multiple MRP controllers
 
   uxpar = user_par.
  CONDENSE uxpar.
 
  IF NOT uxpar NS ';'.
    WRITE uxpar+0(3) TO dispo.
    IF dispo IS INITIAL.
      EXIT.
    ENDIF.
    IF mt61d-dispo = dispo.
       no_planning = 'X'.
    ENDIF.
 
  ELSE.
    REPLACE space IN uxpar WITH ''.
    FIND mt61d-dispo IN uxpar IGNORING CASE.
 
    IF sy-subrc EQ 0.
*found
       no_planning = 'X'.
    ENDIF.
 
  ENDIF.
 
ENDCASE.