Function
CLASS-METHODS check_msg_and_raise_exceptions
IMPORTING
!it_messages TYPE bapiret2_t
!i_message_container TYPE REF TO /iwbep/if_message_container
RAISING
/iwbep/cx_mgw_busi_exception
/iwbep/cx_mgw_tech_exception .
METHOD check_msg_and_raise_exceptions.
DATA: lt_messages TYPE bapiret2_t.
lt_messages = it_messages.
READ TABLE lt_messages WITH KEY type = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
DELETE lt_messages WHERE type EQ 'I' OR type EQ 'S'.
ELSE.
DELETE lt_messages WHERE type EQ 'I' OR type EQ 'S' OR type EQ 'W'.
ENDIF.
IF lt_messages IS NOT INITIAL.
i_message_container->add_messages_from_bapi(
it_bapi_messages = lt_messages
iv_determine_leading_msg = /iwbep/if_message_container=>gcs_leading_msg_search_option-first ).
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_container = i_message_container.
ENDIF.
ENDMETHOD.
Example
METHOD <ENTITY>set_get_entity.
DATA: lo_message_container TYPE REF TO /iwbep/if_message_container.
DATA: lt_return TYPE bapiret2_t.
DATA: ls_return TYPE bapiret2.
*--- Access message container
lo_message_container = mo_context->get_message_container( ).
*--- do sth.
MESSAGE e001(zxxx) WITH sy-datum INTO DATA(lv_msg).
ls_return = VALUE #( type = sy-msgty id = sy-msgid number = sy-msgno message = lv_msg ).
APPEND ls_return TO lt_return.
*--- check for errors
check_msg_and_raise_exceptions(
EXPORTING
it_messages = lt_return
i_message_container = lo_message_container
).
ENDMETHOD.
Related Information