Code template for redefinition of /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_DEEP_ENTITY

📟 save

placeholder function – replace with the relevant business logic

📟 check_msg_and_raise_exceptions

Take a look at Generic Exception handling (BAPIRET2) in OData

  METHOD /iwbep/if_mgw_appl_srv_runtime~create_deep_entity.
    DATA: lv_entity_set_name TYPE /iwbep/mgw_tech_name.
    DATA: ls_entity TYPE z.... "Deep Structure
    DATA: lo_message_container TYPE REF TO /iwbep/if_message_container.
    DATA: lt_return TYPE bapiret2_t.

    lo_message_container = mo_context->get_message_container( ).
    lv_entity_set_name = io_tech_request_context->get_entity_set_name( ).

    CASE lv_entity_set_name.

      WHEN 'EntitySetXYZ'.

*--- read entry data
        io_data_provider->read_entry_data( IMPORTING es_data = ls_entity ).

*--- save data
        save( IMPORTING et_return = lt_return CHANGING c_data = ls_entity  ).

*--- check for errors
        check_msg_and_raise_exceptions( it_messages = lt_return i_message_container = lo_message_container ).

*--- copy data to ref
        copy_data_to_ref( EXPORTING is_data = ls_entity CHANGING cr_data = er_deep_entity ).

      WHEN OTHERS.
        super->/iwbep/if_mgw_appl_srv_runtime~create_deep_entity(
          EXPORTING
            iv_entity_name          = iv_entity_name
            iv_entity_set_name      = iv_entity_set_name
            iv_source_name          = iv_source_name
            io_data_provider        = io_data_provider
            it_key_tab              = it_key_tab
            it_navigation_path      = it_navigation_path
            io_expand               = io_expand
            io_tech_request_context = io_tech_request_context
          IMPORTING
            er_deep_entity          = er_deep_entity
        ).

    ENDCASE.

  ENDMETHOD.

Leave a Reply

Your email address will not be published. Required fields are marked *