SAP/ABAP

마스터 데이터 BAPI

Denise 2022. 5. 25. 10:42

생산버전 MKAL

FORM call_bapi    CHANGING ps_header TYPE gty_s_alv.

  DATAlt_version   TYPE TABLE OF mpes_plan_pv_mkal
                          WITH HEADER LINE.
  DATAlt_message   TYPE gty_t_bapiret2 WITH HEADER LINE.

  MOVE-CORRESPONDING ps_header TO lt_version.
  APPEND lt_version.

  CLEARps_header-icon.

  CASE ps_header-mode.
    WHEN gc_mode_update.
      PERFORM call_bapi_del  CHANGING ps_header.

      IF ps_header-icon gc_icon_red.
        EXIT.
      ENDIF.
  ENDCASE.

  CALL FUNCTION 'MPE_PLAN_CREATE_PRODN_VERSION'
    TABLES
      t_production_version_det_in lt_version[]
      t_message                   lt_message[].

  READ TABLE lt_message WITH KEY type   'S'
                                 id     'MPE_PLAN_PV'
                                 number '088'.
  IF sy-subrc IS INITIAL.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait 'X'.
  ELSE.
    ps_header-icon gc_icon_red.
    PERFORM get_error_log   USING    lt_message[]
                            CHANGING ps_header.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ENDIF.

  IF ps_header-icon <> gc_icon_red.
    ps_header-icon gc_icon_gre.
  ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form call_bapi_del
*&---------------------------------------------------------------------*
FORM call_bapi_del   CHANGING ps_header   LIKE gt_alv.

  DATAlt_version   TYPE TABLE OF mpes_plan_pv_key
                          WITH HEADER LINE.
  DATAlt_message   TYPE gty_t_bapiret2 WITH HEADER LINE.

  MOVE-CORRESPONDING ps_header TO lt_version.
  APPEND lt_version.

  CALL FUNCTION 'MPE_PLAN_DELETE_PRODN_VERSION'
    TABLES
      t_production_version_key_in lt_version[]
      t_message                   lt_message[].

  READ TABLE lt_message WITH KEY type   'S'
                                 id     'MPE_PLAN_PV'
                                 number '092'.
  IF sy-subrc IS INITIAL.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait 'X'.
  ELSE.
    ps_header-icon gc_icon_red.
    PERFORM get_error_log   USING    lt_message[]
                            CHANGING ps_header.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ENDIF.

  IF ps_header-icon <> gc_icon_red.
    ps_header-icon gc_icon_gre.
  ENDIF.

ENDFORM.

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

ENQUEUE_READ  (0) 2022.06.24
SQL Editor for Hana ( Native )  (0) 2022.06.09
Material Characteristics Basic 2 / MRP 3  (0) 2016.03.09
CTS Table length check Function.  (0) 2015.11.25
sending SAP Office Mail ( SO01 )  (0) 2015.09.01