Hi Krishna,
one difference in the handling of the End Button event is the listener called for the handling. In CRM 7.0 it was the class CL_ICWC_SAM_WORKER_LISTENER, in EHP2 it is CL_SAM_CLIENT_QUEUE_RECEIVER.
In order to get the "old" functionality I made two enhancements:
- In the method CL_SAM_SHARED_QUEUE_RECEIVER->ENQUEUE_MESSAGE:
DATA: lr_message TYPE REF TO if_sam_text_message,
lv_action TYPE string.
DATA: lr_listener type ref to CL_MCM_CLIENT_EVENT_LISTENER.
TRY.
lr_message ?= message.
CATCH CX_SY_MOVE_CAST_ERROR.
* standard processing on cast error
m_queue_receiver_instance->enqueue_message( message ).
EXIT.
ENDTRY.
TRY.
lv_action = lr_message->get_text( ).
CATCH CX_SAM_MESSAGING_EXCEPTION.
* standard processing on error
m_queue_receiver_instance->enqueue_message( message ).
EXIT.
ENDTRY.
IF lv_action = 'alert cancel'. " This is the event triggered by the End button
m_queue_receiver_instance->enqueue_message( message ). " Standard EHP2 Processing
* Here is the call of the 'old' listener
lr_listener ?= cl_icwc_sam_worker_listener=>get_mcm_client_event_listener( ).
lr_listener->if_sam_message_listener~on_message( message ).
EXIT.
ENDIF.
ENDIF.
- In the method CL_MCM_CLIENT_EVENT_LISTENER->DISPATCH_MESSAGE:
IF icwc_eventname = 'com.sap.ic.alert.remove'.
RAISE EVENT client_action_message
EXPORTING message = obj_msg.
ENDIF.
Maybe this is also helpful for you.
Regards,
Wladimir