Skip to Content
avatar image
Former Member

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

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

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Best Answer
    Dec 17, 2015 at 10:11 AM

    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

    Add comment
    10|10000 characters needed characters exceeded

    • 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

      ico.jpg (24.8 kB)
  • Dec 17, 2015 at 07:39 AM

    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.


    operations.png (16.2 kB)
    soapui.png (7.0 kB)
    Add comment
    10|10000 characters needed characters exceeded

  • Jan 07, 2016 at 04:52 PM

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

    Regards

    Anupam

    Add comment
    10|10000 characters needed characters exceeded