*&---------------------------------------------------------------------*
*& Report Z_MAT_CONF
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_mat_conf.
PARAMETERS : p_werks TYPE werks_d DEFAULT '1211',
p_matnr TYPE matnr DEFAULT 'TMECP-U5016889P'.
PARAMETERS : p_basic AS CHECKBOX DEFAULT ' ',
p_mrp AS CHECKBOX DEFAULT 'X',
p_backup AS CHECKBOX DEFAULT ' '.
TYPES: gty_t_cucfg TYPE TABLE OF e1cucfg,
gty_t_cuins TYPE TABLE OF e1cuins,
gty_t_cuval TYPE TABLE OF e1cuval,
gty_t_cucom TYPE TABLE OF e1cucom.
DATA :
e1cucfg TYPE TABLE OF e1cucfg WITH HEADER LINE,
e1cuins TYPE TABLE OF e1cuins WITH HEADER LINE,
e1cuval TYPE TABLE OF e1cuval WITH HEADER LINE,
e1cucom TYPE TABLE OF e1cucom WITH HEADER LINE.
DATA : lv_cuobj TYPE marc-cuobj,
lv_stdpd TYPE marc-stdpd,
lv_pstat TYPE marc-pstat.
DATA : ls_return TYPE bapiret2,
lt_matret TYPE TABLE OF bapi_matreturn2 WITH HEADER LINE.
DATA : lt_return TYPE bapiret2_t.
DATA : lo_except TYPE REF TO cx_root.
SELECT SINGLE cuobj stdpd pstat
INTO (lv_cuobj,lv_stdpd,lv_pstat)
FROM marc
WHERE werks = p_werks
AND matnr = p_matnr.
CHECK sy-subrc IS INITIAL.
IF lv_pstat NP '*D*'.
MESSAGE s001(00) WITH 'MRP View not exists'.
EXIT.
ENDIF.
IF p_mrp IS INITIAL AND p_basic IS INITIAL.
MESSAGE s001(00) WITH '둘중 하나는 찍어!!(MRP/BASIC)'.
EXIT.
ENDIF.
CALL FUNCTION 'CUXM_GET_CONFIGURATION'
EXPORTING
instance = lv_cuobj
* WERKS =
* IMPORTING
* ET_RETURN =
TABLES
t_e1cucfg = e1cucfg
t_e1cuins = e1cuins
t_e1cuval = e1cuval
t_e1cucom = e1cucom
EXCEPTIONS
instance_not_found = 1
internal_error = 2
instance_is_a_classification = 3
OTHERS = 4.
CHECK sy-subrc IS INITIAL.
LOOP AT e1cuval.
IF p_backup EQ 'X'.
CASE e1cuval-charc.
WHEN 'MODEL_CDE'. e1cuval-value = 'TM'.
WHEN 'KEY_COLOR'. e1cuval-value = '9P'.
WHEN 'BODY_TPY'. e1cuval-value = 'W5'.
WHEN 'ENG_CAP'. e1cuval-value = '2G'.
WHEN 'ENG_TPY'. e1cuval-value = '6'.
WHEN 'FUEL_TPY'. e1cuval-value = '1'.
WHEN 'OPTN_4371'. e1cuval-value = '-'.
ENDCASE.
ELSE.
CASE e1cuval-charc.
WHEN 'MODEL_CDE'. e1cuval-value = 'A6'.
WHEN 'KEY_COLOR'. e1cuval-value = 'BGG'.
WHEN 'BODY_TPY'. e1cuval-value = 'W7'.
WHEN 'ENG_CAP'. e1cuval-value = '2E'.
WHEN 'ENG_TPY'. e1cuval-value = 'A'.
WHEN 'FUEL_TPY'. e1cuval-value = '2'.
WHEN 'OPTN_4371'. e1cuval-value = 'Z6'.
ENDCASE.
ENDIF.
MODIFY e1cuval.
ENDLOOP.
PERFORM save_conf USING p_matnr
lv_stdpd
p_werks
e1cucfg[]
e1cuins[]
e1cuval[]
e1cucom[].
*&---------------------------------------------------------------------*
*& Form SAVE_CONF
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GTY_T_CUCFG text
* -->P_GTY_T_CUINS text
* -->P_GTY_T_CUVAL text
* -->P_GTY_T_CUCOM text
*----------------------------------------------------------------------*
FORM save_conf USING pv_matnr
pv_stdpd
pv_werks
pt_cucfg TYPE gty_t_cucfg
pt_cuins TYPE gty_t_cuins
pt_cuval TYPE gty_t_cuval
pt_cucom TYPE gty_t_cucom.
DATA : ls_return TYPE bapiret2.
DATA : lt_matret TYPE TABLE OF bapi_matreturn2 WITH HEADER LINE.
DATA : lt_cucfg TYPE gty_t_cucfg,
lt_cuins TYPE gty_t_cuins,
lt_cuval TYPE gty_t_cuval,
lt_cucom TYPE gty_t_cucom,
lt_cucfg_w TYPE gty_t_cucfg,
lt_cuins_w TYPE gty_t_cuins,
lt_cuval_w TYPE gty_t_cuval,
lt_cucom_w TYPE gty_t_cucom.
IF p_basic IS NOT INITIAL.
lt_cucfg[] = pt_cucfg[].
lt_cuins[] = pt_cuins[].
lt_cuval[] = pt_cuval[].
lt_cucom[] = pt_cucom[].
ENDIF.
IF p_mrp IS NOT INITIAL.
lt_cucfg_w[] = pt_cucfg[].
lt_cuins_w[] = pt_cuins[].
lt_cuval_w[] = pt_cuval[].
lt_cucom_w[] = pt_cucom[].
ENDIF.
CALL FUNCTION 'MATERIAL_SAVE_CONFIGURATION'
EXPORTING
material = pv_matnr
conf_matl = pv_stdpd
plant = pv_werks
conf_matl_plant = pv_stdpd
IMPORTING
return = ls_return
TABLES
e1cucfg = lt_cucfg
e1cuins = lt_cuins
e1cuval = lt_cuval
e1cucom = lt_cucom
e1cucfg_w = lt_cucfg_w
e1cuins_w = lt_cuins_w
e1cuval_w = lt_cuval_w
e1cucom_w = lt_cucom_w
returnmessages = lt_matret.
COMMIT WORK AND WAIT.
IF ls_return-id IS NOT INITIAL.
MESSAGE ID ls_return-id
TYPE 'S'
NUMBER ls_return-number
WITH ls_return-message_v1
ls_return-message_v2
ls_return-message_v3
ls_return-message_v4
DISPLAY LIKE ls_return-type.
ENDIF.
ENDFORM.