Binding Multiple Interfaces with PI 7.1 Operations.
This document explains how to integrate multiple interfaces with same Interface configuration by using Operations in Message Interface.
SAP PI7.1 has enabled us to reuse the same Service Interface for “n” different structures. Each service could be independent of the others in terms of Operation Patterns, mode of execution (Asynchronous, Synchronous), and the included messages. However the services are bounded together by the same Category (Abstract, Inbound, Outbound) and Interface Pattern. When ever the interface is executed it dynamically executes the respective interface through the incoming Message structure defined in Operations.
This example scenario is connecting SAP system through a HTTP protocol.
It sends multiple messages; each message should be configured as unique interfaces in PI.
I Repository Objects
Sender Service Interface
- Create only one Sender Interface.
- Select as many operations according to how many interfaces we need.
- Include the Message types/Idoc types in each operations.
Receiver Service Interface
- Connected to SAP systems as IDOC’s. Hence no explicit Receiver Interfaces defined.
- We can create Receiver Service Interfaces according to requirements.
Message Mapping
- Create Message mappings as necessary.
Operation Mapping
- Create the Operational Mapping as below specifying the different Operation and Message formats.
- XML Stock Level Reporting
2. OBDLV Confirm
- II. Configuration Objects.
Sender Agreement
- Create one Sender Agreement with the Interface as below
Receiver Determination
- Specify all the outbound interfaces and associate respective objects in single Receiver Determination which varies for each operations. As each operation is a single interface it is routed to all respective outbound interfaces and associated objects.
Interface Determination
- Associate the respective mapping and outbound interfaces for respective Operations.
Testing
- When we post multiple messages on the same Sender interface – it is associated with its respective message structure and sent to corresponding outbound interfaces.
Example Input XML
Example Output XML
Hi,
Thanks for your intention to share the info, but the images are of mediocre,unable to follow..would be better if you can replace them with better ones..
Rgds
Rajesh
Hi Rajesh,
Sure I will edit and post it once again. Thanks for info.
Regards,
Hari Suseelan
Hi Rajesh,
I have uploaded new images.If in case, you are not able to view the image. I request you to double click the images. Please check and let me know. Thanks.
Regards,
Hari Suseelan
looks better now thanks..
Hi Ragesh,
You are Welcome. Thank for informing me.
Regards,
Hari Suseelan
Hi Rajesh !
Thanks for the information π
BUT one thing I can't figure out, is how PI at runtime determines the outbound interface.
In e.g. SOAP the operation is part of the protocol, but this doesn't apply to all protocols.
Lets say we have a file sender channel, with multiple operations configured . PI basically picks up an unknown XML document, and has to determine which outbound interface the document belongs to. How is that done ? By trying to match against the XSD of the all the possible messagetypes, or ???
/ Claus
Good Post! Its very useful to integrate interfaces.
Hi !
... sorry for the double-post. I accidentally replied to Rajesh, instead of the original author.
Thanks for the information π
BUT one thing I can't figure out, is how PI at runtime determines the outbound interface.
In e.g. SOAP the operation is part of the protocol, but this doesn't apply to all protocols.
Lets say we have a file sender channel, with multiple operations configured . PI basically picks up an unknown XML document, and has to determine which outbound interface the document belongs to. How is that done ? By trying to match against the XSD of the all the possible messagetypes, or ???
/ Claus
Hi Claus.
It dynamically matches the header/root tag of the xml/xsd incoming message and route it to the respective operations.
Also all the source messages defined in the operations should be unique.
Regards,
Hari Suseelan
Hi,
Thanks for the blog, I am facing the same issue which can resolve by above post. But Operation specific receiver determination is not working in my server version 7.1 only.
Regards,
Manigandan
HI,
I passed these values as HTTP header through dynamic configurations.
Regards,
Manigandan