메뉴 건너뛰기

SAP 한국 커뮤니티

Ch23 08번 CHANGESET_PROCESS

감자깡 2025.09.23 15:32 조회 수 : 1

  METHOD /iwbep/if_mgw_appl_srv_runtime~changeset_process.

    DATA:
      lt_keys               TYPE /iwbep/t_mgw_tech_pairs,
      lo_delete_context     TYPE REF TO /iwbep/if_mgw_req_entity_d,

      ls_changeset_response TYPE /iwbep/if_mgw_appl_types=>ty_s_changeset_response,
      ls_data               TYPE zcertinfo.


    LOOP AT it_changeset_request INTO DATA(ls_changeset_request)
      WHERE
            operation_type EQ  /iwbep/if_mgw_appl_types=>gcs_operation_type-delete_entity.

      lo_delete_context ?= ls_changeset_request-request_context.


      CASE lo_delete_context->get_entity_type_name( ).
        WHEN 'ZCERTINFO'.

          lo_delete_context->get_keys(
            RECEIVING
              rt_keys = lt_keys ).

 

          READ TABLE lt_keys INTO DATA(ls_key)
             WITH KEY name = 'CERTID'.

 

          IF sy-subrc EQ 0.
            DELETE FROM zcertinfo_deep
              WHERE
                certid EQ ls_key-value.

 

            IF sy-subrc EQ 0.
              DELETE FROM zempcert
                WHERE
                  certid EQ ls_key-value.
            ELSE.
              RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
                EXPORTING
                  textid            = /iwbep/cx_mgw_busi_exception=>business_error_unlimited
                  http_status_code  = /iwbep/cx_mgw_busi_exception=>gcs_http_status_codes-not_found
                  message_unlimited = |삭제하는데 실패하였습니다.|.
            ENDIF.
          ENDIF.

      ENDCASE.

 

      ls_changeset_response-operation_no = ls_changeset_request-operation_no.
      INSERT ls_changeset_response INTO TABLE ct_changeset_response.

 

    ENDLOOP.

  ENDMETHOD.