SAP/ABAP

Material Characteristics Basic 2 / MRP 3

Denise 2016. 3. 9. 13:13
*&---------------------------------------------------------------------*
*& 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.

'SAP > ABAP' 카테고리의 다른 글

SQL Editor for Hana ( Native )  (0) 2022.06.09
마스터 데이터 BAPI  (0) 2022.05.25
CTS Table length check Function.  (0) 2015.11.25
sending SAP Office Mail ( SO01 )  (0) 2015.09.01
Long Text 처리  (0) 2015.08.11