打印SAP ABAP web service call完整的payload

测试用的webservice是执行一个简单的将两个整数相加的操作.

下面的report 不仅显示webservice 调用结果4, 并且能显示出完整的web service response payload:

REPORT zdoc_ws_test.
DATA: lo_proxy TYPE REF TO co_zweb_add_21,
ls_input TYPE zweb_add_operation,
ls_output TYPE zweb_add_operationresponse.
TRY.
CREATE OBJECT lo_proxy EXPORTING logical_port_name = 'ZJERRY3'.
ls_input-iv_op1 = 1.
ls_input-iv_op2 = 3.
lo_proxy->zweb_add_operation( EXPORTING input = ls_input IMPORTING output = ls_output ).
CATCH cx_root INTO DATA(cx_root).
WRITE / cx_root->get_text( ).
RETURN.
ENDTRY.
WRITE: / 'result:' , ls_output-ev_result.
DATA: lo_payload_protocol TYPE REF TO if_wsprotocol_payload.
DATA: lo_payload TYPE REF TO if_ws_payload.
DATA: lo_payload_handler TYPE REF TO if_ws_payload_handler,
lt_request_data TYPE prx_t_param,
ls_request_data TYPE prx_s_param.
lo_payload_protocol ?= lo_proxy->get_protocol( if_wsprotocol=>payload ).
lo_payload_handler = lo_payload_protocol->get_payload_handler( ).
ls_request_data-name = 'OUTPUT'.
GET REFERENCE OF ls_output INTO ls_request_data-value.
APPEND ls_request_data TO lt_request_data.
lo_payload = lo_payload_handler->get_payload_from_response_data( lt_request_data ).
DATA(lv_payload) = lo_payload->get_xml_text( ).
WRITE: / 'Payload:' , lv_payload.

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();