В качестве самообразования разбираюсь с доступом к объектам интеграции по SOAP. Вот что пока выяснил:
подготовка:
идем на
http://sap-pi-d:50000/nwa/WSAdmin ищем по Service Definition Name = *.directory.* (компоненты Integration Directory)
находятся строки вида: CommunicationChannelServiceWsd/CommunicationChannelServiceVi
идем на вкладку WSDLs и жмем на "Test in WS Navigator"
видим :
Цитата:
Service Information
WSDL URL:http://sap-pi-d:50000/CommunicationChannelService/HTTPBasicAuth?wsdl&style=document&mode=ws_policy
Operations
change
check
create
createFromTemplate
delete
openForEdit
query
read
revert
в SOAPUI создаем новый SOAP проект. Вносим WSDL URL, который получили ранее. После импорта создаются пустые запросы на каждую операцию. Меняем запрос и указываем имя для авторизации. При выполнении будет показан результат.
Пример:
ЗАПРОС
Code:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:CommunicationChannelServiceVi" xmlns:urn1="urn:com.sap.aii.ibdir.server.api.types">
<soapenv:Header/>
<soapenv:Body>
<urn:read>
<urn:CommunicationChannelReadRequest>
<urn1:CommunicationChannelID>
<urn1:ComponentID>OurSoftware</urn1:ComponentID>
<urn1:ChannelID>SOAP_Axis_Receiver_test_D</urn1:ChannelID>
</urn1:CommunicationChannelID>
</urn:CommunicationChannelReadRequest>
</urn:read>
</soapenv:Body>
</soapenv:Envelope>
ОТВЕТ
Code:
<SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body xmlns:rpl="urn:CommunicationChannelServiceVi">
<rpl:readResponse xmlns:rn1="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rn0="urn:com.sap.aii.ib.server.api.types" xmlns:rn3="urn:com.sap.aii.ibdir.server.api.types" xmlns:rn2="java:sap/standard">
<rpl:Response>
<rn3:CommunicationChannel>
<rn3:MasterLanguage>EN</rn3:MasterLanguage>
<rn3:AdministrativeData>
<rn0:ResponsibleUserAccountID>другой-юзер</rn0:ResponsibleUserAccountID>
<rn0:LastChangeDateTime>2014-07-04T10:53:06.744+04:00</rn0:LastChangeDateTime>
<rn0:LastChangeUserAccountID>юзер</rn0:LastChangeUserAccountID>
</rn3:AdministrativeData>
<rn3:Description>
<rn0:languageCode>EN</rn0:languageCode>
</rn3:Description>
<rn3:CommunicationChannelID>
<rn3:PartyID/>
<rn3:ComponentID>OurSoftware</rn3:ComponentID>
<rn3:ChannelID>SOAP_Axis_Receiver_test_D</rn3:ChannelID>
</rn3:CommunicationChannelID>
<rn3:AdapterMetadata>
<rn3:Name>SOAP</rn3:Name>
<rn3:Namespace>http://sap.com/xi/XI/System</rn3:Namespace>
<rn3:SoftwareComponentVersionID>1879eed0-7b4e-11d9-87c6-c81c0a114c15</rn3:SoftwareComponentVersionID>
</rn3:AdapterMetadata>
<rn3:Direction>Receiver</rn3:Direction>
<rn3:TransportProtocol>AxHTTP</rn3:TransportProtocol>
<rn3:TransportProtocolVersion/>
<rn3:MessageProtocol>AxHTTP</rn3:MessageProtocol>
<rn3:MessageProtocolVersion/>
<rn3:AdapterEngineName/>
<rn3:AdapterSpecificAttribute>
<rn3:Name>transport.url</rn3:Name>
<rn3:Value>http://OurSoftwareHOST:8080/services/ServiceForSAP</rn3:Value>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>authenticationType</rn3:Name>
<rn3:Value>None</rn3:Value>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>user</rn3:Name>
<rn3:Value/>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>password</rn3:Name>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>keystoreView</rn3:Name>
<rn3:Value>DEFAULT</rn3:Value>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>certificateAlias</rn3:Name>
<rn3:Value/>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>defaultSOAPVersion</rn3:Name>
<rn3:Value>1.1</rn3:Value>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>defaultSOAPAction</rn3:Name>
<rn3:Value/>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>encapsulationFormat</rn3:Name>
<rn3:Value>MIME</rn3:Value>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>keepHeaders</rn3:Name>
<rn3:Value>0</rn3:Value>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>keepAttachments</rn3:Name>
<rn3:Value>0</rn3:Value>
</rn3:AdapterSpecificAttribute>
<rn3:AdapterSpecificAttribute>
<rn3:Name>payload</rn3:Name>
<rn3:Value>bodyChild</rn3:Value>
</rn3:AdapterSpecificAttribute>
<rn3:ModuleProcess>
<rn3:ProcessStep>
<rn3:ModuleName>AF_Adapters/axis/AFAdapterBean</rn3:ModuleName>
<rn3:ModuleType>Local Enterprise Bean</rn3:ModuleType>
<rn3:ParameterGroupID>afreq</rn3:ParameterGroupID>
</rn3:ProcessStep>
<rn3:ProcessStep>
<rn3:ModuleName>AF_Adapters/axis/HandlerBean</rn3:ModuleName>
<rn3:ModuleType>Local Enterprise Bean</rn3:ModuleType>
<rn3:ParameterGroupID>xireq</rn3:ParameterGroupID>
</rn3:ProcessStep>
<rn3:ProcessStep>
<rn3:ModuleName>AF_Adapters/axis/HandlerBean</rn3:ModuleName>
<rn3:ModuleType>Local Enterprise Bean</rn3:ModuleType>
<rn3:ParameterGroupID>trp</rn3:ParameterGroupID>
</rn3:ProcessStep>
<rn3:ProcessStep>
<rn3:ModuleName>AF_Adapters/axis/HandlerBean</rn3:ModuleName>
<rn3:ModuleType>Local Enterprise Bean</rn3:ModuleType>
<rn3:ParameterGroupID>xires</rn3:ParameterGroupID>
</rn3:ProcessStep>
<rn3:ProcessStep>
<rn3:ModuleName>AF_Adapters/axis/AFAdapterBean</rn3:ModuleName>
<rn3:ModuleType>Local Enterprise Bean</rn3:ModuleType>
<rn3:ParameterGroupID>afres</rn3:ParameterGroupID>
</rn3:ProcessStep>
<rn3:ParameterGroup>
<rn3:ParameterGroupID>xires</rn3:ParameterGroupID>
<rn3:Parameter>
<rn3:Name>handler.type</rn3:Name>
<rn3:Value>java:com.sap.aii.axis.xi.XI30OutboundHandler</rn3:Value>
</rn3:Parameter>
</rn3:ParameterGroup>
<rn3:ParameterGroup>
<rn3:ParameterGroupID>trp</rn3:ParameterGroupID>
<rn3:Parameter>
<rn3:Name>handler.type</rn3:Name>
<rn3:Value>java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender</rn3:Value>
</rn3:Parameter>
<rn3:Parameter>
<rn3:Name>module.pivot</rn3:Name>
<rn3:Value>true</rn3:Value>
</rn3:Parameter>
</rn3:ParameterGroup>
<rn3:ParameterGroup>
<rn3:ParameterGroupID>xireq</rn3:ParameterGroupID>
<rn3:Parameter>
<rn3:Name>handler.type</rn3:Name>
<rn3:Value>java:com.sap.aii.axis.xi.XI30OutboundHandler</rn3:Value>
</rn3:Parameter>
</rn3:ParameterGroup>
</rn3:ModuleProcess>
<rn3:SenderIdentifier>
<rn3:schemeID/>
<rn3:schemeAgencyID/>
</rn3:SenderIdentifier>
<rn3:ReceiverIdentifier>
<rn3:schemeID/>
<rn3:schemeAgencyID/>
</rn3:ReceiverIdentifier>
</rn3:CommunicationChannel>
<rn3:LogMessageCollection/>
</rpl:Response>
</rpl:readResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Объекты Integration Directory я так могу смотреть, а вот как получить доступ к объектам Enterprise Service Repository, то есть к описанию интерфейсов, типов данных и мапингам?
Общая цель: попробовать сделать что-то типа документатора. Например, задаешь ему названия двух систем и от расписывает, какие агрименты, каналы, интерфейсы
участвуют в сопряжении этих систем. Может быть полезно для выявления беспризорных объектов, которые остались от каких-то экспериментов.
Вот как-то так.