cancel
Showing results for 
Search instead for 
Did you mean: 

Web-service with multiple operations - How to Create one single WSDL

Former Member
0 Kudos

Hi Gurus

How do we create a web-service with multiple operations.

We have a requirement to have 4 different services to be called from vendor - create, change, update & delete.

Each of these service have are synchronous have  and have their own structure - request & response.

I would like to explore the option of creating ONE master WSDL for all 4 synchronous web-service instead of  creating 4 individual WSDL.

Can you please help me understand the below:

1. How would I create a service interface with all the above 4 operations.

2. How would the Vendor call these services - will there any value in the end-point URL which would specify that its a create, change, update or delete service ?!

3. Is there are field in XSD which needs be created or mentioned as "operation".

4. How is the WSDL "operation" specified in runtime ?!

5. Do we create & share a webserice user with vendor - wat would be the roles for this PI webserice user?!

Pros & Cons:

1. Wat are the Pros & Cons of having 1 WSDL for all 4 services - by creating a single service interface.

2. Wat are the Pros & Cons of having 4 WSDL for each of the 4 services - by creating a single service interface.


Please, provide your valuable experiences on best practices for the above scenario. Your help is greatly appreciated!!

Thank you,

Ritu

Accepted Solutions (1)

Accepted Solutions (1)

anupam_ghosh2
Active Contributor
0 Kudos

Hi Ritu,

              Please can you explain the scenario

is this

vendor <---->soap request/response <---> PI

or

vendor  <---> soap request/response<---->PI<----->soap request/response<---->Third party web service


Regards

Anupam

Former Member
0 Kudos

Hi Anupam

Thank you for your response!!

The scenario is:

vendor  <---> soap request/response<---->PI<----->soap request/response<---->Third party web service

Vendor is providing a single master WSDL. PI needs to provide WSDL with endpoint to Third party.

However, I am inclined to creating individual WSDL with their respective end points for each of the 4 services.Third party will call PI's end points which will be routed to the  corresponding section of the master WSDL (Third party also prefers individual web-service for each of the 4 mentioned above).

I am thinking of going with the solution suggested by Praveen created Operations for each of the 4 & having 4 Operation mappings.

Please, let me know your thoughts.

Query on Synchronous Web-services:

When they are multiple requests initiated by third party - how does the response tie back to the corresponding request initiated. My question is with regard to the above scenario and in general as well - if there are 100 requests initiated - how do the responses coming back in synchronous service tie back to the requests. Thank you for your patience in helping develop understanding on synchronous subservience.

Thanks again,

Ritu

former_member186851
Active Contributor
0 Kudos


Hello Ritu,

Once you send one request one reponse will be mapped automatically,no need to worry for that

If you have multiple operations you should map a request and reposne for each one.

anupam_ghosh2
Active Contributor
0 Kudos

Hi Ritu,

          

you wrote

"I am thinking of going with the solution suggested by Praveen created Operations for each of the 4 & having 4 Operation mappings"

That is fine you can create 4 SI under one outbound SI. You need to create 4 different inbound SI and four different operation mapping. I am not sure which version of PI you are working on. You need only 1 ICO in the ID. The sender component of ICO should have enlisted the single outbound SI from IR.

Now in interface determination the OM name for each of the different.

As you can see in above image in interface determination we have separate OM's for each of sender interfaces. Thus you will have two receiver channels each with different target URLs depending on operation. In this way only 1 ICO is required for multiple operations.

Again you wrote

"When they are multiple requests initiated by third party - how does the response tie back to the corresponding request initiated. My question is with regard to the above scenario and in general as well - if there are 100 requests initiated - how do the responses coming back in synchronous service tie back to the requests. Thank you for your patience in helping develop understanding on synchronous subservience."

Explanation: All the SI you develop will have a request and response structure they will sync in type. The request from sender can be of four types. Thus once within PI a particular request comes in  separate service interfaces are called. PI needs to provide an wsdl to sender having all details of the request and response. the wsdl url actually finds out the scenario in PI which neeeds to be invoked. The flow is like this

sender ---> soap request---> create----> PI--->invokes specific request SI ---->receives specific response from web service-----> sends back response to sender . 

you need to provide the wsdl to sender in following manner. open the ico in id in the top there is a menu bar showing the name integrated configuration ----->click---->display wsdl.

Hope this clarifies your query.

Regards

Anupam

Answers (2)

Answers (2)

anupam_ghosh2
Active Contributor
0 Kudos

Thank you Ritu for closing the thread and marking my response as correct.

Regards

Anupam

former_member182412
Active Contributor
0 Kudos

Hi Ritu,

1) You can create the service interface with different operations like below:

2) & 3) Vendor can call the particular operation when they call from their program.

3) At run time based on the operation they called PI will identify the corresponding operation in the service interface.

4) Yes you need to create user and provide them, role will be SAP_XI_APPL_SERV_USER

Always better to have single WSDL rather than multiple WSDL's.

Regards,

Praveen.

Former Member
0 Kudos

Thanks!! Praveen

Can you please explain further -- if the requesting initiating party will ADD the operation value on the request message -- as in the above case I am assuming there will be only 1 end point URL.

former_member182412
Active Contributor
0 Kudos

Hi Ritu,

Check below blogs for more understanding.

Regards,

Praveen.