on 12-17-2015 7:02 AM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
Thank you Ritu for closing the thread and marking my response as correct.
Regards
Anupam
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.