SPROXY MESSAGE ID

DATA: ls_srm001 TYPE REF TO zco_si_sap_srm001_req,
lc_cx_fault TYPE REF TO cx_ai_system_fault,
lc_ap_fault TYPE REF TO cx_ai_application_fault,
lr_proto_msg_id TYPE REF TO if_wsprotocol_message_id,
ls_output TYPE zmt_srm001_req,
ls_input TYPE zmt_srm001_resp,
lv_msg TYPE string,

"* 取得Msg Guid (Outbound)
TRY.
    lr_proto_msg_id ?=
    ls_srm001->get_protocol( if_wsprotocol=>message_id ).
    lv_msgguid = lr_proto_msg_id->get_message_id( ).
  CATCH cx_ai_system_fault INTO lc_cx_fault.
    MESSAGE  lc_cx_fault->get_text( ) TYPE 'E'.   " Exception handling logic

INBOUND

DATA: lo_protocol TYPE REF TO if_wsprotocol_message_id,
lo_server_context TYPE REF TO if_ws_server_context.

TRY.
lo_server_context = cl_proxy_access=>get_server_context( ).
lo_protocol ?= lo_server_context->get_protocol( if_wsprotocol=>message_id ).
DATA(lv_pi_msgid_out_raw) = lo_protocol->get_message_id( ).
CATCH cx_ai_system_fault.
ENDTRY.

完整实例:
在这里插入图片描述

"“本地接口:
*” IMPORTING
*" REFERENCE(IV_RECORD_ID) TYPE ZE_RECORD_ID OPTIONAL
*" REFERENCE(IV_PROTOCOL) TYPE REF TO IF_WSPROTOCOL_MESSAGE_ID
*" OPTIONAL
*" REFERENCE(IV_SPROXY) TYPE REF TO OBJECT OPTIONAL
*" REFERENCE(IV_MSGTX) TYPE CHAR200 OPTIONAL
*" VALUE(IV_STATUS) TYPE ZE_STATUS_SH OPTIONAL

DATA: lo_protocol TYPE REF TO if_wsprotocol_message_id,
lo_server_context TYPE REF TO if_ws_server_context.

DATA : lc_cx_fault2 TYPE REF TO cx_ai_system_fault,
lc_ap_fault TYPE REF TO cx_ai_application_fault,
lv_msgguid2 TYPE sxmsmguid,
lr_proxy_basis TYPE REF TO if_proxy_basis,
lr_wsprotocol TYPE REF TO if_wsprotocol,
lr_proto_msg_id2 TYPE REF TO if_wsprotocol_message_id,
lr_proto_msg_id TYPE REF TO if_wsprotocol_message_id.

IF iv_sproxy IS NOT BOUND .
TRY.
lo_server_context = cl_proxy_access=>get_server_context( ).
lo_protocol ?= lo_server_context->get_protocol( if_wsprotocol=>message_id ).
DATA(lv_msgguid) = lo_protocol->get_message_id( ).

    IF  iv_record_id IS NOT INITIAL  AND lv_msgguid IS NOT INITIAL  .
      UPDATE   table 
       SET msgguid  =  lv_msgguid
      WHERE record_id = iv_record_id   .
      COMMIT WORK.
    ENDIF.

  CATCH cx_ai_system_fault  INTO DATA(lc_cx_fault) .
    DATA(lv_strs) =  lc_cx_fault->get_text( ) .
ENDTRY.

ELSE .

TRY.
    CLear : lv_msgguid .
    CALL METHOD iv_sproxy->('GET_PROTOCOL')
      EXPORTING
        protocol_name = if_wsprotocol=>message_id
      RECEIVING
        protocol      = lr_wsprotocol.

    lr_proto_msg_id ?= lr_wsprotocol .
    lv_msgguid   = lr_proto_msg_id->get_message_id( ) .

    lr_proxy_basis    ?=  iv_sproxy .
    lr_proto_msg_id2  ?=  lr_proxy_basis->get_protocol( if_wsprotocol=>message_id ).
    lv_msgguid2        =   lr_proto_msg_id2->get_message_id( ).
    IF lv_msgguid IS NOT INITIAL   .
      UPDATE  table  
        SET msgguid  =  lv_msgguid
       WHERE record_id = iv_record_id  .
      COMMIT WORK.
    ENDIF.
  CATCH cx_ai_system_fault INTO lc_cx_fault.
    lv_strs   =  lc_cx_fault->get_text( ) .
ENDTRY .

ENDIF.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值