W Pub: ABAPPIPOMSGID

Para poder conocer el MSGID de una llamada de PI/PO y poder guardarlo en el LOG para encontrarlo a posteriori con mayor facilidad, bastará con preguntarselo al proxy.

Para los OutBound ->

  1. DATA: lo_protocol TYPE REF TO if_wsprotocol_message_id.
  2.    TRY.
  3.         lo_protocol              ?= {MI_PROXY}->get_protocol( if_wsprotocol=>message_id ).
  4.         DATA(lv_pi_msgid_out_raw) = lo_protocol->get_message_id( ). "<-- Ahí está el ID
  5.    CATCH cx_ai_system_fault.
  6.         clear sy-subrc.
  7.    ENDTRY.

Para los InBound <-

  1. DATA: gr_proto_msg_id TYPE REF TO if_wsprotocol_message_id,
  2.       gr_srv_context  TYPE REF TO if_ws_server_context,
  3.       gs_msg_id       TYPE        sxmsmguid.
  4. try.
  5.    gr_srv_context   = cl_proxy_access=>get_server_context( ).
  6.    gr_proto_msg_id ?= gr_srv_context->get_protocol( if_wsprotocol=>message_id ).
  7.    gs_msg_id        = gr_proto_msg_id->get_message_id( ). "<-- Ahí está el ID
  8.    catch cx_ai_system_fault .
  9.       clear sy-subrc.
  10. endtry.