Текущее время: Ср, апр 24 2024, 15:08

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Service-consumer не возвращает ответ при обращении к внешнему веб-сервису
СообщениеДобавлено: Пт, окт 21 2016, 09:47 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 21 2016, 09:09
Сообщения: 3
Добрый день!
Стоит задача вызвать внешний веб-сервис и обработать ответ от него.
Создал запрос в 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

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Service-consumer не возвращает ответ при обращении к внешнему веб-сервису
СообщениеДобавлено: Чт, окт 27 2016, 13:18 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 10 2004, 11:33
Сообщения: 88
Здравствуйте,

А чем именно не нравиться ответ? Ответ насколько я понимаю вернулся в виде XML?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Service-consumer не возвращает ответ при обращении к внешнему веб-сервису
СообщениеДобавлено: Пт, окт 28 2016, 20:12 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 21 2016, 09:09
Сообщения: 3
Ответ по идее должен был вернуться в структуру ls_output, тип этой структуры создался автоматом на основе wsdl сервиса. В моем случае ls_output это простая структура с несколькими полями.
Насколько я понял по отладке проблема заключается в простой трансформации, которая также сгенерировалась автоматом на основе wsdl, и отвечает за формирование ответа. Проверка синтаксиса этой трансформации показывает предупреждения. Но пока непонятно как можно исправить wsdl, чтобы она корректно создавалась.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Service-consumer не возвращает ответ при обращении к внешнему веб-сервису
СообщениеДобавлено: Ср, ноя 02 2016, 07:56 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
В SOAMANAGER все настроено (логический порт, аутентификация и т.п.)?
Попробуйте включить трассировку и посмотреть какое генерируется тело запроса и что приходит в ответ. Совпадает ли это с xml, которые генерирует и получает soapui?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB