Текущее время: Пт, мар 29 2024, 08:19

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Отправка SOAP сообщения к Веб-сервису.
СообщениеДобавлено: Вс, июл 22 2018, 00:18 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 08:40
Сообщения: 226
Здравствуйте!
Есть готовое к отправке SOAP сообщение, можно ли его как-то отправить средствами ABAP, без создания servise consumer на стороне SAP.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отправка SOAP сообщения к Веб-сервису.
СообщениеДобавлено: Пн, июл 23 2018, 15:19 
Специалист
Специалист

Зарегистрирован:
Вт, дек 30 2008, 18:10
Сообщения: 171
Пол: Мужской
skaa написал(а):
Здравствуйте!
Есть готовое к отправке SOAP сообщение, можно ли его как-то отправить средствами ABAP, без создания servise consumer на стороне SAP.


Можно через OLE
Msxml2.XMLHTTP.6.0
Msxml2.XMLHTTP.3.0
Msxml2.XMLHTTP
Microsoft.XMLHTTP


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отправка SOAP сообщения к Веб-сервису.
СообщениеДобавлено: Вт, июл 24 2018, 13:24 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 18 2010, 15:38
Сообщения: 97
ну вроде бы можно сам по себе request создать.
https://help.sap.com/saphelp_nwpi71/hel ... cache=true
но зачем? всякие проблемы с security будут же


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отправка SOAP сообщения к Веб-сервису.
СообщениеДобавлено: Вт, июл 31 2018, 12:41 
Младший специалист
Младший специалист

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

Можно вот так.
xml_req - должен быть Ваш запрос.
xml_resp - ответ
Code:
http_dest = destination.
    cl_http_client=>create_by_destination( EXPORTING
    destination = http_dest IMPORTING client = client ).

    CALL METHOD client->request->set_method(
      if_http_request=>co_request_method_get ).


    CALL METHOD client->request->set_header_field
      EXPORTING
        name  = '~request_method'
        value = 'POST'.

*  call method client->request->set_header_field
*    exporting
*      name  = '~server_protocol'
*      value = 'HTTPS'.
*      value = 'HTTP/1.1'.

    IF method IS NOT INITIAL.
      CALL METHOD client->request->set_header_field
        EXPORTING
          name  = '~request_uri'
          value = method.

      CALL METHOD client->request->set_header_field
        EXPORTING
          name  = 'Content-Type'
          value = 'text/xml;  charset=utf-8;'.

    ENDIF.

*    call method client->request->set_formfield_encoding
*      exporting
*        formfield_encoding = 4110.

    CALL METHOD client->request->set_data
      EXPORTING
        data   = xml_req
        offset = 0.


*  CALL METHOD client->request->set_cdata
*    EXPORTING
*      data   = wf_string
*      offset = 0
*      length = rlength.

* send and receive
    CALL METHOD client->send
      EXCEPTIONS
        http_communication_failure = 1
        http_invalid_state         = 2
        http_processing_failed     = 3
        http_invalid_timeout       = 4
        OTHERS                     = 5.
    IF sy-subrc <> 0.
*      raise connection_error.
    ENDIF.

    CALL METHOD client->receive
      EXCEPTIONS
        http_communication_failure = 1
        http_invalid_state         = 2
        http_processing_failed     = 3
        OTHERS                     = 4.

    rc = sy-subrc. "error receive
    IF rc = 0.
**http status code
      client->response->get_status( IMPORTING code = http_rc ).
      IF http_rc <> 200.
        CLEAR: xml_resp.
        xml_resp = client->response->get_data( ).
*        gxml_resp = client->response->get_cdata( ).
      ELSE. "status 200 ->>OK
        CLEAR: xml_resp.
        xml_resp = client->response->get_data( ).
*        gxml_resp = client->response->get_cdata( ).
      ENDIF.
    ELSEIF rc = 1.
      DATA: lv_subrc TYPE sy-subrc
            , lv_error TYPE string.
      client->get_last_error( IMPORTING code = lv_subrc message = lv_error ).
      MESSAGE e040(ZZZ) WITH http_dest lv_error.
    ENDIF.


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

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


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

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


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

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