cancel
Showing results for 
Search instead for 
Did you mean: 

Soap to IDoc Async Scenario

manoj_khavatkopp
Active Contributor
0 Kudos

Hi Experts,

As i am new to SAP PI, i have a async soap to idoc sceanrio.

Client has given me xml file ,based on this file i am creating Data type and using this in message mapping with IDoc. now they are asking WSDL file and target URL i have no idea what are these and how to get them. and i am curios to know what actually this WSDL file content is..

can you please explain me step by step for this complete scenario.

Regards,

Manoj

Accepted Solutions (1)

Accepted Solutions (1)

Harish
Active Contributor
0 Kudos

Hi Manoj,

WSDL is web service description language. every web service is has WSDL.

As you need to expose your interface as webservice and sender will consume the service. you can retrieve the wsdl from sender agreement/ICO (display wsdl option). Then provide the wsdl and webservice url to sender.

refer the below wiki

Generating Web Service From PI - Contributor Corner - SCN Wiki

regards,

Harish

manoj_khavatkopp
Active Contributor
0 Kudos

Hi Harish,

Thanks for your valuable answer.

Just one more query what actually is the content of WSDL file ?? does it contain anything of IR part?

Harish
Active Contributor
0 Kudos

Hi Manoj,

WSDL contain the structure of webservice with its operation and other details. So your wsdl will contain the sender interface structure, operation, port and other details.

The wsdl structure is like below

definitions>

<types>

  data type definitions........

</types>

<message>

  definition of the data being communicated....

</message>

<portType>

  set of operations......

</portType>

<binding>

  protocol and data format specification....

</binding>

</definitions>


refer - WSDL Documents


regards,

Harish

Answers (2)

Answers (2)

manoj_khavatkopp
Active Contributor
0 Kudos

Hi ,

Now i have 2 interterfaces of Soap to IDoc ...and i am using the same COMM channel for both ...

now client is asking me to give 2 WSDL file with their respective URL so that they can connect to my PI system.

I have created 2 sender agreement seperate for each interfaces and have taken 2 seperate WSDL file . now the question is about URL !

As both interfaces are using same BS and Comm channel how to differ in these 2 URL's

Now how do client connect to PI 2 diff interfaces using same URL and also i have seen in some blog  that we need to provide username and password also if i need to do that then what changes i need to make from PI side.

This is the URL which i have prepared is this the correct one ?

http://PIURL:port/XISOAPAdapter/MessageServlet?channel=:BS:CC_Soap_SND

Regards,

Manoj

azharshaikh
Active Contributor
0 Kudos

Hi Manoj,

Since it a new Interface, you can create the WSDL in similar way as you did for your 1st Interface.

The Endpoint would look something as follows:

http://server:port/XISOAPAdapter/MessageServlet?

senderParty=&senderService=BC_Sender&receiverParty=&receiverService=&interface=SI_SenderInterface&in...

What type of authentication is being used in your scenario. If they need User/ID based authetication, you need to provide them with a valid Pi UserID / Password inorder to connect to PI system.

Regards,

Azhar

Former Member
0 Kudos

Hi,

If you have two different sender agreements, then two different WSDLs will be created.

The two WSDLs will have different URLs(endpoints). Based on interface name etc.

Just send them the two WSDLs, they will be able to extract URL(endpoint) from the WSDL.

Kind Regards

Ravi

manoj_khavatkopp
Active Contributor
0 Kudos

Hi Azhar,

I have seen many blogs where Comm channel is mentioned in URL but i dont see any comm chanel in ur URL.why is it so ?

Br,

Manoj

azharshaikh
Active Contributor
0 Kudos

Hi Manoj,

This is the sample URL that we get when we generate WSDL from an ICO. The same URL is mentioned in the WSDL file in the tag <wsdl:port>

Reference:

"Note 856597 - FAQ: XI 3.0 / PI 7.0 / PI 7.1 SOAP Adapter" says:

-

Q: To which URL can I send my SOAP message?

           A: The URL for your SOAP sender channel is

           http://host:port /XISOAPAdapter/MessageServlet?channel=p:s:c

           where host is the host name, port is the port number, p is the optional party name, s the service name, and c is the channel name, respectively.The URL given above is valid for 3.0/7.0/7.1.

           7. 10 onwards a new URL syntax is also valid and is recommended to be used. The URL for the SOAP sender channel is

           http://host:port /XISOAPAdapter/MessageServlet?senderParty=FP& senderService=FS& interface=IF&receiverParty=TP&receiverService=TS&interfaceNamespace=IFNamespace

           where host is the host name, port is the port number, FP is the optional sender party, FS is the sender communication component, interface is the interface configured as per the sender agreement, TP is the receiver party, TS is the receiver communication component, IFNamespace is the interface namespace as configured in the sender agreement, and IF is the interface as configured in the sender agreement

Regards,

Azhar

vicky20691
Active Contributor
0 Kudos

Hi Manoj,

WSDL- Web Services definition language. From testing the scenario point of view I will answer here.

(rest all about WSDL you can find in google)

A soap message which contains the data to enter PI ( the concern about target URL, the URL is also present in content of WSDL).

1. If you are using 7.1, you can open sender agreement, click the sender agreement at left top, and in the drop down list choose "display wsdl" /// In ICO , open it and click on Integrated Configuraion and choose display wsdl.

2. Once it opens- you will get WSDL URL and you can save WSDL as wsdl file.

3. after that using wsdl file or URL , you can open the same in soap tool (eg- SOAP UI).

4. Once you open it in the tool, you will get the wsdl content as a SOAP message and target URL at top, ( You can find the url by opening wsdl in soap:address tag one for http and one for https).

5. You can edit the target url by appendin it with Business component name and channel name.

6. Choose authentication  and provide the credential of PI system and send the message. If you get HTTP 200 OK status message will be transferred..

PS- you can even use the same XML file with the data to test, keep soap envelope intact, in the soap body you paste the xml content from ns tag (namespace tag) .

Hope it will be helpful.

Regards,

Vikas Kumar Singh