Skip to Content

I came across with  a situation where client was looking out for one WSDL with multiple operations in it. Lets say, If one cleint program depending upon incoming values from legacy, want to route messages to a particular endpoint which will do some operation in R/3 side. For example – If data is sepecific for insert/Update/Delete in legacy.

We often receive requirements to create separate interfaces for Insert/Modify/Delete and normally we follow below approaches:

  1. If Source structure are almost same then create a generic structure with indicator field in it which will specify if incoming data is Insert/Modify/Delete.
  2. If structures are different then import three structure in source mapping and do n:1 multi mapping using BPM, which hits the performance and it complicates the solutioning.

and so on..

Like wise we think about different solutions with respect to our requirement. We came across to a situation where client required one WSDL with multiple operations in rather having separate WSDL’s for all end to end scenarios. In actual scenario, we have  created a SOAP to Proxy synchronous call and achived this solution successfully.

In this weblog, I am creating one Asynchronous SOAP to File scenario mainly focussing on how to handle multiple operations in ESR and ID.

We are working on SAP PI 7.31 – SP- 05.

Below is the development done for this scenario. I am just showing the important steps done for this development.

ESR –

I assume we are done with creation below Data Types and Message Types.

/wp-content/uploads/2013/04/pic1_201100.jpg

Service Interface

Create one service interface with Multiple operations in it. Have a look into below screenshot.

/wp-content/uploads/2013/04/pic2_201125.jpg

Above picture depicts three operations Add/Modify/Delete, with Message Type for Add operation selected. Similarly we have to provide Message Type for each operation created above in last step.

Next step is to create three different Message and Operation Mappings for each operation we created in service interface.

/wp-content/uploads/2013/04/pic3_201126.jpg

ID-

In Integration Directory, Create 1 SOAP Sender Communication Channel and 1 File Receiver Channel. Once done, create an ICO like this.

Inbound Processing – Provide Sender Communication Channel and other values.

Receiver – Receiver tab contains the trick for Operation Specific  receiver determination. Have a look into below screenshot.

/wp-content/uploads/2013/04/pic4_201127.jpg

As we can see in above screenshot, we have to use Operation specific option to use multiple operations and depending upon these operations, we can send these data to multiple receivers (As per our requirements.). In our scenario, we are sending all files to same receiver.

Receiver Interfaces –  Next step is to provide Receiver Interfaces (Operations Mapping) for each operations. In ESR, we have created multiple Operation mapping for each operation. We will use that in this step. Have a look.

/wp-content/uploads/2013/04/pic5_201131.jpg

This receiver interface contains data for Add operation, similarly we can assign operation mapping for each operation.

In outbound processing provide, receiver file channel and activate these developments.  Next step is to download WSDL and publish this to service registry.

Once you open downloaded WSDL in SOAP UI, it will look like below screenshot.

/wp-content/uploads/2013/04/pic6_201132.jpg

Similarly, you can check these operations in WSNAVIGATOR too if you have published this on SR.

/wp-content/uploads/2013/04/pic7_201133.jpg

This is just an example scenario and we can use this feature to provide different solutions and it reduces complexitiy. In ID part using operation Specific option, provides various gates for enhance receiver determination and integrating various things into one.

Keep us posted with the requirements, you are using similar kind of approach.

To report this post you need to login first.

5 Comments

You must be Logged on to comment or reply to a post.

    1. Eng Swee Yeoh

      Elizabeth, multiple operations in a single service interface is available since before 7.3 – can’t remember which version exactly but I know 7.11 supports it.

      (0) 
      1. Elizabeth Trejo

        Yes Eng, you are right, 🙂 i fixed my problem .  I just had to add my service interface with operation in interface determination,  SI_Name.Operation and works.

        Regards

        (0) 
  1. Alex Wiebe

    Is it possible to reuse the same data type, message type and message mapping for different operations? For example:

    • Service Interface called: ValidateCostCenter

    With 2 operations:

    1. IsCCPrimary
    2. IsCCSecondary

    Where the Request message is identical – namely a set of Controlling Area, Cost CenterID and a Date.

    When I try this, I get an activation error: “Service interface contains multiple operations whose request messages have the root tag <…>”

    (0) 

Leave a Reply