Skip to Content

            Recently I come across a situation where in I need to post a message coming from an ERP system to SAP ABAP proxy using SAP XI/PI. Well then we all say we can use XI adapter for the same. However, the business requirement is something different here. Purchase Orders are coming from ERP as a single message and on the SAP ABAP Proxy side, the business needs each purchase order (pertaining to purchase order number) as a separate message for better monitoring/tracking purposes.

            Earlier there was a BPM setup (with multimapping concept) for this scenario and its working fine with a performance penalty. And more over these days the transaction numbers have increased in a huge number causing BPM timeouts, performance. So we need an alternate way to avoid this.         

            The messages (purchase orders) can be split using Multi mapping concept (with BPM or without BPM). But with BPM, it is causing performance. If we go ahead without BPM the fundamental obstacle is XI adapter doesn’t support multimapping as it doesn’t belong to AE.  

          How about SOAP adapter? Can’t we send a SOAP message to local Integration Engine (IE) of Application System? I searched forum… (As I remember there was already a blog by Stephan for this) Using the SOAP inbound channel of the Integration Engine.

                         So, I did a trial by sending a message to local IE of Application System using a SOAP client (such as XML Spy). Surprisingly, the message reached local IE. I tried the same from SAP XI/PI using SOAP adapter. With SAP PI Soap Adapter as well, the message reached local IE. But the message is in general SOAP format (i.e., SOAP Header and SOAP Body). Hence this message is failing in Application System. I raised a thread on SDN, and realized that the SAP XI/PI SOAP adapter doesn’t have XI3.0 message protocol capabilities for communicating with ABAP proxies until the release of PI7.11 (Enhancement Package 1 with PI 7.1, “How To Set Up the Communication between ABAP Backend and SOAP Adapter using XI Protocol”

How To Set Up the Communication between ABAP Backend and SOAP Adapter using XI Protocol

).

                             How about HTTP Adapter? Even we can not use HTTP adapter as it doesn’t belong to AE. But using HTTP adapter, at least we can post a message to the ABAP Proxy (Can we? Yes we can). But since HTTP is ABAP based adapter, it doesn’t support multimapping.

                       So finally, I came up with SOAP adapter with plain HTTP request (Conversion Paramets in SOAP CC, check “Do Not Use SOAP Envelope”). With this, I am able to send messages to HTTP plain adapter of Application system and obviously the SOAP adapter supports multimapping.


Receiver SOAP Communication Channel Parameters


Target URL:-

http://<ApplicationSystemHostName>:80<InstanceNumber>/sap/xi/adapter_plain?namespace=<ProxyInterfaceNameSpace>&interface=<ProxyInterfaceName>&service=<ProxyBusinessSystemORAnyOtherBusinessSystem>&party=&agency=&scheme=&QOS=EO&sap-client=<XXX>&sap-language=EN

e.g.,     http://ECCHOST:8020/sap/xi/adapter_plain?namespace=http://ABAPProxy.com&interface=ABAPProxy_IB&service=BS_ABAPProxy&party=&agency=&scheme=&QOS=EO&sap-client=150&sap-language=EN


Provide User Authentication information (username and password)

Conversion Parameters:-

Check “Do Not Use SOAP Envelope”

Check “Keep Headers”


For ABAP Proxy Call with HTTP Adapter , use the same above URL

Limitations:-

1. Since we are sending the message to inbound HTTP adapter  on local IE of Application system, we can’t send attachements.

2. Message size might be limited for the inbound HTTP adatper (say max. 20 MB per message, this is what as per my test results)

3. Since it is a plain HTTP request (with textual data) to the inbound HTTP adapter on the application system, the SOAP header/body from XI will not be passed to application system. So, the application system can not make use of custom headers such as dynamic configuration etc …including standard SOAP header from XI/PI

To report this post you need to login first.

11 Comments

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

  1. jay saithala
    Hi,
    thanks for the nice blog.
    im currently working on pi 7.0
    i got same kind of scenario where i need to send the
    Purchase order files to inbound proxies in SAP ECC 6.0 system.i can’t use xi adapter here so im using soap adapter.
    im currently using SAP ECC logon user password to login to sap ecc system.

    can u please clarify whether i have to use sap ecc user or PIAPPLUSER while specifying the authentication.

    Thanks,

    Jay.

    (0) 
    1. Praveen Gujjeti Post author
      Hello Jay,

      obviously, you have to use SAP ECC user ID and password which has proper authorizations to post the message from XI to ECC.

      (0) 
      1. jay saithala
        Hi Praveen,

        Im currently testing my interface using the SOAP adapter to send the multiple messages to SAP ECC via inbound proxy …pls check my URL below

        http://hneccdci01s.glasgow.gov.uk:8000/sap/xi/adapter_plain?namespace=http://access/prototypes/PECOSCXML&interface=mi_test_cxml&service=GRD&party=&agency=&schema=&client=100&sap-language=EN

        hneccdci01s.glasgow.gov.uk is the SAP ECC host
        where 00 is the instance number

        namespace is the service interface namespace, interface name is service interface name.service is the receiver service,the client is the ecc client..

        I checked the do not use SOAP envelope and keep headers…
        .when i gave all these details im gettig error message stating that Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION – HTTP 403 Forbidden

        Can you please tell me if Im missing any details in the SOAP adapter configuration and pls check if my URL is correct..
        Appreciate your help.

        Thanks,
        Jay.

        (0) 
        1. Praveen Gujjeti Post author
          Plz use the Service user ID which will be used in proxy communications. There will be an RFC destination of type (H) if XI already has some ABAP proxy interfaces to the ECC system. Get in touch with BASIS to get the credentials of that user.
          (0) 
      2. jay saithala
        Hi Praveen,

        Do I need to assign any specific roles to the user ID and password …I used PIAPPLUSER which has the role SAP_XI_APPL_SERV_USER.still I am getting 403 Forbidden error..

        I tried using my user id pwd ..i could not solve the problem…can u please provide any solution.

        Thanks,
        Jay

        (0) 
  2. jay saithala
    Hi,

    Im currently testing my interface using the URL u have given…
    pls check my URL below

    http://hneccdci01s.glasgow.gov.uk:8000/sap/xi/adapter_plain?namespace=http://access/prototypes/PECOSCXML&interface=mi_test_cxml&service=GRD&party=&agency=&schema=&client=100&sap-language=EN

    where 00 is the instance number.

    namespace is the service interface namespace, interface name is service interface name.service is the receiver service the client is the dev client…when i gave all these details im gettig error message stating that Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION – HTTP 403 Forbidden

    (0) 

Leave a Reply