Добрый день!
Стоит задача вызвать внешний веб-сервис и обработать ответ от него.
Создал запрос в soapui на основе wsdl сервиса- всё отлично работает. Передаю параметры и получаю сразу же ответ.
Далее решил повторить всё в абапе. Создал сначала service-consumer и уже в коде обращаюсь к сервису такой конструкцией:
Цитата:
TRY.
CALL METHOD lo_proxy->send_request
EXPORTING
input = ls_input
IMPORTING
output = ls_output.
CATCH cx_ai_system_fault .
CONTINUE.
CATCH cx_ai_application_fault .
CONTINUE.
ENDTRY
Обращение прошло успешно но структура
ls_output пустая!
Нашел способ получить ответ(см.ниже), но он какой-то некрасивый и хочется понять почему не получается отделаться вызовом send_request.
Цитата:
DATA:
lo_prot_payload TYPE REF TO if_wsprotocol_payload,
lo_payload TYPE REF TO if_ws_payload,
lv_string type string.
lo_prot_payload ?= lo_proxy->get_protocol( if_wsprotocol=>payload ).
lo_payload = lo_prot_payload->get_sent_response_payload( ).
lv_string = lo_payload->get_xml_text( ).
И дальше парсинг lv_string
Заранее спасибо.