Connect SAP Application System to multiple SAP PI Integration Server – Variant n°1
Sometime the need of connect more than one Integration Server to SAP Application system may arise, but not in all scenario and SAP releases can be implemented the optimal solution “Consumer and Provider ABAP ProxyService to Multiple SAP NW PI Systems Using Process Integration 7.1.”
Of course you can use other communication methods like IDoc, tRFC or qRFC and in this case you will have no problems connecting more than one IS to a SAP Application System, but in case you really must use ABAP Proxy you have still some chance to have a SAP Application System get connected to more than one XPI system (SAP XI 3.0, SAP PI 7.0 or SAP PI 7.1).
This can be done also without modify line of standard SAP code, using an already available (but not documented) feature.
With transaction SXMB_ADM you can set the “standard” integration server:
But you can also specify one or more runtime user that, when used to create ABAP proxy messages, will route the message to a specific HTTP RFC destination related to an Integration Server different from the standard one.
Any RUNTIME-IS_URL parameter has its own value that corresponds to a specific RFC destination:
In this way executing (in Dialog mode or Background mode) outbound processing of ABAP proxy, the HTTP Destination picked will route the message to the standard integration server unless the runtime user executing the outbound processing is one of that inserted as sup-parameter of parameter RUN_TIME-IS_URL transaction report SXMB_ADM:
Message sent to Integration Server A (the default integration server):
Message sent to Integration Server B:
This approach has some point of attention:
- The business system name of SAP Application System must be identical in the different Integration Servers
- The ESR (Design part) connected to SAP Application System will be always and only the standard one. You need to export – import the design part from the standard to the other(s)
- The runtime user may be different in case of restart of a message in error during outbound phase
Effectively similar point of attention arise from the approach proposed in “Consumer and Provider ABAP Proxy Service to Multiple SAP NW PI Systems Using Process Integration 7.1.” also.
The point where the selection of IS happens is the class CL_XMS_PLSRV_IE_ADAPTER, local class LCL_UTIL method get_url_of_is:
This solution can be a starting point for a more robust and flexible architecture that may select the Integration Server dynamically on the base of:
- Inteface namespace
- Interace name
- Virtual receiver name
- Payload content
- Integration Server availability
- …as you need!