You are on page 1of 3

Web Ui Specific Message Handling

We often come across the requirement when we need to suppress the specific
messages on web ui which we not find in the message container CL_CRM_GENIL_MESS_CONT_MANAGER
This Messages we will get from the reference of class cl_bsp_wd_message_service.
1. The messages which are added to the global message container can
be deleted by resetting the class :
DATA: lr_core TYPE REF TO cl_crm_bol_core,
lr_msg TYPE REF TO cl_crm_genil_mess_cont_manager.
lr_core = cl_crm_bol_core=>get_instance( ).
*Create a instance of message container
lr_msg = lr_core->get_message_cont_manager( ).
*Reset the container to delete the messages
lr_msg->reset( ).
2. But when we want to delete any specific messages type from web ui using the
reference of class cl_bsp_wd_message_service.
Read all the messages that are
added by reference of class cl_bsp_wd_message_service by below code snippet:
DATA: lr_msg_srv TYPE REF TO cl_bsp_wd_message_service ,
lv_ref_kind TYPE crmt_object_kind,
lv_msgidno TYPE symsgno,
lt_idno TYPE bal_r_idno,
ls_idno TYPE bal_s_idno,
lv_activity_guid TYPE crmt_object_guid,
lr_messages TYPE REF TO bsp_wd_message_tab,
lr_entity TYPE REF TO if_bol_bo_property_access,
lv_guid TYPE REF TO data.
lt_message TYPE crmt_orgman_symsgno_tab,
lr_mess_obj TYPE REF TO cl_crm_message_obj_bt.
FIELD-SYMBOLS :
<lt_message> TYPE bsp_wd_message_tab,
<ls_message> TYPE bsp_wd_message.

Web Ui Specific Message Handling

FIELD-SYMBOLS:
<l_guid> TYPE crmt_object_guid.
CONSTANTS:
lc_msgid TYPE symsgid VALUE 'R11'.
lr_msg_srv = me->view_manager->get_message_service( ).
CALL METHOD lr_msg_srv->get_messages
EXPORTING
iv_msg_type = 'W'
RECEIVING
rv_result = lr_messages.
*We
got all the required messages in lr_messages
ASSIGN lr_messages->* TO <lt_message>.
*Then call the below function module to
delete the specific messages
lv_msgidno = '185'.
INSERT lv_msgidno INTO TABLE lt_message.
LOOP AT lt_message INTO lv_msgidno.
CLEAR ls_idno.
ls_idno-sign= 'I'.
ls_idno-option = 'EQ'.
ls_idno-low-msgid = lc_msgid.
ls_idno-low-msgno = lv_msgidno.
APPEND ls_idno TO lt_idno.
ENDLOOP.
* The below FM 'CRM_MESSAGES_DELETE' is used the delete the specific messages from the web ui
CALL FUNCTION 'CRM_MESSAGES_DELETE'
EXPORTING
* it_r_msgid = 'R11'
it_r_msgidno = lt_idno

Web Ui Specific Message Handling


iv_ref_object = lv_activity_guid
iv_ref_kind = lv_ref_kind
EXCEPTIONS
appl_log_error = 1
OTHERS = 2.
IF sy-subrc
<> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
In the above function module we have to pass the specific
message id number in the required passing parametr also order_guid and ref_kind
in order to delete the specif messages.
Hope it will be going to help for those who gets confuse while handling the messages on webUi .