Текущее время: Чт, дек 18 2025, 21:34

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




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

Зарегистрирован:
Ср, фев 02 2011, 07: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, 09:51 
Директор
Директор

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

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


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

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
не очень понятно, кто у вас слушает на /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, 11:22 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 02 2011, 07: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, 13:17 
Директор
Директор

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

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


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

Зарегистрирован:
Ср, фев 02 2011, 07: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, 16:29 
Начинающий
Начинающий

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


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

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


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

Сейчас этот форум просматривают: Ahrefs [Bot]


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

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