Текущее время: Сб, сен 22 2018, 09:20

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Доступ к XI Web Service через сокеты (PHP)
СообщениеДобавлено: Ср, фев 02 2011, 08:37 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 02 2011, 08:19
Сообщения: 3
Доброе время суток!

Есть XI Web Service, пробую обратиться к нему из PHP, дамп запроса примерно такой:
Code:
POST /sap/bc/srt/xip/sap/zbusinesspartnerupdate_inb1 HTTP/1.1
Host: xxx.xxxx.ru
Content-Type: multipart/related;boundary=SAP_C900634E84BFF74D2727F0C1FB3FF552_END;type="text/xml";start="<soap-C900634E84BFF74D2727F0C1FB3FF552@sap.com>"
Content-Length: 7951
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxx
SOAPAction: "http://sap.com/xi/WebService/soap1.1"

--SAP_C900634E84BFF74D2727F0C1FB3FF552_END
Content-Type: text/xml
Content-Length: 3162
Content-Id: <soap-C900634E84BFF74D2727F0C1FB3FF552@sap.com>

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP:Header>
      <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
         <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
         <SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
         <SAP:MessageId>E258ADA1-2524-6204-A070-8BC38F359B5A</SAP:MessageId>
         <SAP:TimeSent>2011-02-02T09:48:58Z</SAP:TimeSent>
         <SAP:Sender>
            <SAP:Service>BusinessPartnerReplicate</SAP:Service>
         </SAP:Sender>
         <SAP:Receiver>
            <SAP:Party agency="" scheme=""/>
            <SAP:Service>XXXX_N01CLNT100</SAP:Service>
         </SAP:Receiver>
         <SAP:Interface namespace="urn:xxxx.ru:MasterData:BusinessPartners">BusinessPartnerUpdate_Inb</SAP:Interface>
      </SAP:Main>
      <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SystemAckRequested="true" SystemErrorAckRequested="true" ApplicationAckRequested="false" ApplicationErrorAckRequested="false" SOAP:mustUnderstand="1">
         <SAP:QualityOfService>ExactlyOnce</SAP:QualityOfService>
      </SAP:ReliableMessaging>
      <SAP:Diagnostic xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
         <SAP:TraceLevel>Information</SAP:TraceLevel>
         <SAP:Logging>Off</SAP:Logging>
      </SAP:Diagnostic>
      <SAP:HopList xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
         <SAP:Hop timeStamp="2011-02-02T09:48:58Z" wasRead="false">
            <SAP:Engine type="PE"/>
            <SAP:Adapter namespace="http://sap.com/xi/XI/System">PE</SAP:Adapter>
            <SAP:MessageId>E258ADA1-2524-6204-A070-8BC38F359B5A</SAP:MessageId>
            <SAP:Info/>
         </SAP:Hop>
         <SAP:Hop timeStamp="2011-02-02T09:48:58Z" wasRead="false">
            <SAP:Engine type="IS">xx.xx.xxxx</SAP:Engine>
            <SAP:Adapter namespace="http://sap.com/xi/XI/System">XI</SAP:Adapter>
            <SAP:MessageId>E258ADA1-2524-6204-A070-8BC38F359B5A</SAP:MessageId>
            <SAP:Info>3.0</SAP:Info>
         </SAP:Hop>
         <SAP:Hop timeStamp="2011-02-02T09:48:58Z" wasRead="false">
            <SAP:Engine type="BS">XXXX_N01CLNT100</SAP:Engine>
            <SAP:Adapter namespace="http://sap.com/xi/XI/System">XI</SAP:Adapter>
            <SAP:MessageId>E258ADA1-2524-6204-A070-8BC38F359B5A</SAP:MessageId>
            <SAP:Info>3.0</SAP:Info>
         </SAP:Hop>
      </SAP:HopList>
   </SOAP:Header>
   <SOAP:Body>
      <SAP:Manifest xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7">
         <SAP:Payload xlink:href="cid:payload-E258ADA125246204A0708BC38F359B5A@sap.com">
            <SAP:Name>MainDocument</SAP:Name>
            <SAP:Description/>
            <SAP:Type>Application</SAP:Type>
         </SAP:Payload>
      </SAP:Manifest>
   </SOAP:Body>
</SOAP:Envelope>

--SAP_C900634E84BFF74D2727F0C1FB3FF552_END
Content-Type: application/xml
Content-Length: 4425
Content-Id: payload-E258ADA125246204A0708BC38F359B5A@sap.com

<?xml version="1.0" encoding="UTF-8"?>
<ns1:BusinessPartnerUpdateRequest xmlns:ns1="urn:xxxx.ru:MasterData:BusinessPartners">
<!-- ВЫРЕЗАНО -->
</ns1:BusinessPartnerUpdateRequest>

--SAP_C900634E84BFF74D2727F0C1FB3FF552_END--


Возвращает:
Code:
HTTP/1.1 500 SRT: Unexpected failure in SOAP processing occurred: ("No Web service configuration for this access path: """)


Где может быть ошибка?
PS: Сам сервис через XI работает, проверено...
PPS: Гугль не помог.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Доступ к XI Web Service через сокеты (PHP)
СообщениеДобавлено: Ср, фев 02 2011, 10:51 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 18:44
Сообщения: 993
Откуда: что и все
Пол: Мужской
попробуйте вызвать этот урл через какой-нибудь Rest-client с тем же содержимым http-сессии -- повторится ошибка или нет? Если есть wsdl то можно вызвать в SoapUI, посмотреть нет ли каких заголовков, отсутствующих у вас.

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к XI Web Service через сокеты (PHP)
СообщениеДобавлено: Ср, фев 02 2011, 10:56 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 18:44
Сообщения: 993
Откуда: что и все
Пол: Мужской
не очень понятно, кто у вас слушает на /sap/bc/srt/xip/sap/zbusinesspartnerupdate_inb1 . Это копия /sap/xi/engine?sap-client=nnn ?

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к XI Web Service через сокеты (PHP)
СообщениеДобавлено: Ср, фев 02 2011, 12:22 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 02 2011, 08:19
Сообщения: 3
chumpa написал:
не очень понятно, кто у вас слушает на /sap/bc/srt/xip/sap/zbusinesspartnerupdate_inb1 . Это копия /sap/xi/engine?sap-client=nnn ?


Вообще, до этого писал клиента для не XI сервисов (путь а-ля /sap/bc/srt/RFC/sap/xxx/100/xxx/xxx - работал).
Для XI создавал визардом с ESR (sproxy), после, в SICF'е появился сервис по пути к которому обращался по аналогии.
Вообще да, вот тут http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/4502 есть про /sap/xi/engine, но не очень понял что подставлять в параметры, т.ч. эксперимент не удался. Если всё же делать запрос к /sap/xi/engine, то
1. как Integration Server узнает целевой сервис ?
2. тут уже, наверное, GET запрос...

Из-за дохлого инета soapUI пока в процессе закачки...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Доступ к XI Web Service через сокеты (PHP)
СообщениеДобавлено: Ср, фев 02 2011, 14:17 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 18:44
Сообщения: 993
Откуда: что и все
Пол: Мужской
фм zbusinesspartnerupdate_inb1 обёрнут в сервис на стороне XI или в ERP и пытаетесь Local Integration Engine запользовать?

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к XI Web Service через сокеты (PHP)
СообщениеДобавлено: Ср, фев 02 2011, 14:54 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 02 2011, 08:19
Сообщения: 3
chumpa написал:
фм zbusinesspartnerupdate_inb1 обёрнут в сервис на стороне XI или в ERP и пытаетесь Local Integration Engine запользовать?


Используя визард над Service Interface в ESR создался Server Proxy интерфейс ZII* и к нему класс ZCL* в котором переопределили необходимый метод.

Попробовал такой запрос HTTP:
Code:
POST /sap/xi/engine?sap-client=100&type=entry&version=3.0&Sender.Service=zbusinesspartnerupdate_inb1&Interface=urn:xxx.ru:MasterData:BusinessPartners^BusinessPartnerUpdate_Inb HTTP/1.1
Host: xxx.xxx.ru:8000
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: close
Content-Type: multipart/related; charset=UTF-8; boundary=SAP_7430CC53742341F574566263D9882C52_END; type="text/xml"; start="<soap-7430CC53742341F574566263D9882C52@sap.com>"
Content-Length: 7951
Authorization: Basic xxxxxxxxxxxxxxxxxxxxx
SOAPAction: "http://sap.com/xi/WebService/soap1.1"


Стал выдавать:
Code:
HTTP/1.1 400 Bad request: Mime type invalid
set-cookie: sap-usercontext=sap-client=100; path=/
set-cookie:MYSAPSSO2=xxxxxxx; path=/; domain=.xxxxx.ru
content-type: text/html
content-length: 0
sap-xi-messageid: 00000000000000000000000000000000
server: SAP NetWeaver Application Server / ABAP 701

Подставлял MIME-Version: 1.0, менял text/xml на application/xml и наоборот - та же ошибка.
Ещё поставил RESTClient под FireFox, у него ошибка:
"XML tag Main/@versionMajor has incorrect value 000; expected value is 003",
хотя versionMajor стоит именно 003, а изменения на ошибку не влияют...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Доступ к XI Web Service через сокеты (PHP)
СообщениеДобавлено: Сб, фев 19 2011, 17:29 
Начинающий
Начинающий

Зарегистрирован:
Чт, апр 30 2009, 13:08
Сообщения: 6
Откуда: Moscow
Пол: Мужской
При необходимости вызывать XI пользовался классом SoapClient (на лету создает экземпляр по WSDL файлу) - возможно, это и ваше решение


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

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


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

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


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

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