SAPфорум.RU
https://sapboard.ru/forum/

HTTP connection. Как правильно в ABAP-программе обработать http_communication_failure?
https://sapboard.ru/forum/viewtopic.php?f=13&t=96204
Страница 1 из 1

Автор:  simka_3375 [ Ср, мар 21 2018, 11:56 ]
Заголовок сообщения:  HTTP connection. Как правильно в ABAP-программе обработать http_communication_failure?

Добрый день!
Подскажите плз. что надо добавить в ABAP-программу (см. далее), чтобы в случае http_communication_failure срабатывал exception raise connection_error и фонового задание завершалось?
В онлайне запускаю программу, mo_client->send отрабатывает sy-subrc = 0, а на mo_client->receive виснет.

mo_client->send(
exceptions
http_communication_failure = 1
http_invalid_state = 2 ).
if sy-subrc <> 0.
raise connection_error.
endif.

mo_client->receive(
exceptions
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ).

Автор:  Besa [ Ср, мар 21 2018, 12:16 ]
Заголовок сообщения:  Re: HTTP connection. Как правильно в ABAP-программе обработать http_communication_failure?

Если Вы о том "как прервать фоновое задание" то, чем не устраивает "как обычно"?
Code:
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.


Что за класс, есть/нет проблема по его работе send/receive , что в целом пытаетесь сделать, это не понятно.

Автор:  simka_3375 [ Ср, мар 21 2018, 13:40 ]
Заголовок сообщения:  Re: HTTP connection. Как правильно в ABAP-программе обработать http_communication_failure?

Согласна, вопрос задан не корректно.
Класс MO_CLIENT Type ref to IF_HTTP_CLIENT. Метод create_by_url читает данные в формате xml.
Чтобы выполнить завершение фонового задания через MESSAGE... надо чтобы sy-subrc <> 0 или какой-то другой признак, что задание висит. Метод mo_client->receive вызывается и зависает. Предыдущие методы отработали с sy-subrc = 0.

method create_by_url.
...
call method cl_http_client=>create_by_url
exporting
url = mv_url
importing
client = mo_client
exceptions
others = 1.
if sy-subrc <> 0.
raise connection_error.
endif.

mo_client->send(
exceptions
http_communication_failure = 1
http_invalid_state = 2 ).
if sy-subrc <> 0.
raise connection_error.
endif.

mo_client->receive(
exceptions
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ).

call method mo_client->response->get_status
importing
...
mo_client->close( ).

Автор:  ghost [ Ср, мар 21 2018, 16:33 ]
Заголовок сообщения:  Re: HTTP connection. Как правильно в ABAP-программе обработать http_communication_failure?

Думаю, что вы не там копаете. Зависание receive не говорит еще, что проблемы с соединением. Причин может быть море, как пример: слишком большой объем данных.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/