|
<< 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.