У меня есть пункт назначения, автоматически созданный какой-то программой.
Теперь я хочу программно изменить префикс пути назначения во время выполнения. Это возможно?
Я просматривал эту документацию
https://help.sap.com/saphelp_nw70/helpdata/en/1f/93163f9959a808e10000000a114084/content.htm?no_cache=true
Здесь упоминается, что если префикс пути не указан, то uri можно изменить. Таким образом, у меня был пункт назначения без префикса пути, а затем я попытался использовать метод if_http_utility ~ set_request_uri, но это также не сработало.
Пример кода прилагается
*&---------------------------------------------------------------------*
*& Report http_destination_program
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT http_destination_program.
DATA client type ref to if_http_client.
DATA cl_http_util type ref to cl_http_utility.
DATA dest type rfcdest.
DATA gv_subrc TYPE sysubrc.
DATA uri type string.
DATA timeout type I.
DATA errortext type string.
uri = '/do/b/json'.
DEST = 'SAP'.
errortext = ' Cannot connect to server'.
timeout = 0.
CALL METHOD cl_http_client=>create_by_destination
exporting destination = dest
importing client = client
exceptions
destination_not_found = 1
internal_error = 2
argument_not_found = 3
destination_no_authority = 4
plugin_not_active = 5
others = 6.
cl_http_utility=>set_request_uri( request = client->request
uri = uri ).
gv_subrc = sy-subrc.
gv_subrc = cl_http_utility=>get_last_error( ).
IF gv_subrc <> 0.
WRITE: / 'Wrong URI format'.
EXIT.
ENDIF.
write 'Hello Saurav'.
call method client->send
exporting timeout = timeout
exceptions http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
others = 4.
if sy-subrc <> 0.
call method client->get_last_error
importing code = gv_subrc
message = errortext.
write: / 'communication_error( send )',
/ 'code: ', gv_subrc, 'message: ', 'test'.
endif.
call method client->receive
exceptions http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
others = 4.
if sy-subrc <> 0.
call method client->get_last_error
importing code = gv_subrc
message = errortext.
write: / 'communication_error( receive )',
/ 'code: ', gv_subrc, 'message: ', 'test'.
endif.
Я не специалист по ABAP и ABAP HTTP. Не могли бы вы дать несколько советов о том, как я могу достичь своего сценария?
С наилучшими пожеланиями,
Saurav