Skip to Content

External Interface (XIF) Setup

Your business requirement is to transfer the data created/modified say a product, a BP or an individual object (vehicle, equipment etc) from one CRM system to another CRM (or non-SAP) system, automatically.

Example: Products created in development system should automatically get replicated to test/quality environment.

In case of SAP CRM and SAP ECC integrated scenario, this can be achieved by activating delta download feature provided by CRM Middleware. If this is not the case, then XIF adapters can be used to achieve the same.

There are 2 scenarios involved here:

  • Outbound direction (to push the data from the system, so that other system can consume it)
  • Inbound direction (to pull the data into the system)

This means that using XIF adapters, it is possible to import/replicate the data which is already present in some other system (SAP or non-SAP) into SAP CRM or to push the data from the current SAP CRM system into another system (SAP or non-SAP) automatically.

To check whether XIF feature is supported for a particular application (Inbound/Outbound), you can refer the below customizing path:

SPRO–>IMG–>Customer Relationship Management–>CRM–>Middleware and Related Components–>Exchanging
Data With External Components–>XIF Adapter Setup–>Overview

You can also go to transaction: SXDA and then navigate to,  Goto–>DX Program Library and check for the registered programs to know the function module, documentation or the test report, to test the scenario.

For example, CRMXIF_PRODUCT_MATERIAL_SAVE is the FM for Inbound, for object PRODUCT (BUS1178). And you can use the report: CRMXIF_PRODUCT_MATERIAL_TEST to test Outbound scenario.

Setting up XIF for Inbound/Outbound is very simple and it hardly takes about 30 minutes, if necessary authorizations are in place.

I will take an example of automatically replicating vehicle data (individual object with object family 0601) from one client (558) to another client (800) of same CRM system (Q0C), for demonstration purpose. But please note that the same set up can be used to transfer data from one CRM system to another SAP or non-SAP system.

In below demonstration, System Q0CCLNT558 is a Source System (Outbound direction) and System Q0CCLNT800 is a Destination Sytem (Inbound direction), so that vehicles created in Q0CCLNT558 automatically gets transferred to Q0CCLNT800, without any manual intervention.

Below are the steps involved.

1) Define RFC Connections

This has to be done in both Source and Destination Systems.

In source system, you need to define an RFC connection for target system and vice versa.That is, in Q0CCLNT558 define an RFC connection for  Q0CCLNT800 and vice versa.

This can be done via transaction SM59, ABAP Connections, use Create button. If there exists, already an RFC connection for destination, then no need to create it again.

But make sure that RFC connection works fine using button ‘Connection Test’, before you proceed further.

In Q0CCLNT558:


In Q0CCLNT800:


2) Ports in IDoc processing

This has to done only in the source system, in this case Q0CCLNT558.

Check using transaction WE21, under Transactional RFC, whether a port (example: A000000001) already exists for your RFC destination (Q0CCLNT800)? If not, then you need to create a port using Create button for Transactional RFC.Choose ‘Generate Port Name’ and in the next screen provide description and RFC Destination (Q0CCLNT800).

In Q0CCLNT558:


3) Generate/Maintain Partner Profile

This can be done via transaction WE20, under Partner Type LS (Logical System) and has to be done in both the systems.If there exists already a Partner Profile, no need to create once again.

In source system (Q0CCLNT558), there has to be an entry for destination system (Q0CCLNT800) under Partner Type LS. And for this Partner Number, add an entry under Outbound Parameters using ‘Create outbound parameter’ button as below:


Maintain below values under the tab ‘Outbound Options’:

Receiver Port = Choose a port corresponding to destination (in this case port for Q0CCLNT800), which was created in

                            previous step

Choose ‘Transfer IDoc Immediately’




In destination system (Q0CCLNT800), there has to be an entry for source system (Q0CCLNT558) under Partner Type LS. And for this Partner Number, add an entry under Inbound Parameters using ‘Create inbound parameter’ button as below:


Maintain below values under the tab ‘Inbound Options’:

Process code = APLI

Choose ‘Trigger Immediately’



4) Site Creation and Subscription

This has to be done in Source System alone and can be done via transaction SMOEAC.

In Admin Console, choose Object Type: Site, click on Display Objects.Right click on Sites and choose Create.

Provide Name and Description.

Choose Type as ‘External Interface for IDocs’.

Click on Site Attributes and maintain below details:

EDI Partner Number: <RFC-Destination of target system> (Q0CCLNT800)

EDI Partner Type : LS

Using the same transaction, you can create Subscription for Publication: Product Individual Objects via Object Family (MESG) and give criteria value as below:

PRODUCT_INDOBJ_ROOT            OBJECT_FAMILY         EQ        D     0601

Assign the subscription to the site created above.

Replication Object involved here is PRODUCT_INDOBJ.

In Q0CCLNT558:





5) Assign Site and BDoc Type to Interface Type

This has to be done only in the source system and using transaction CRMXIF_C1.

In Q0CCLNT558:


Please note that, all the above steps can be found under the below customizing path as well :

SPRO–>IMG–>Customer Relationship Management–>CRM Middleware and Related Components–>Exchanging
Data With External Components–>XIF Adapter Setup–>Outbound Direction (and Inbound Direction)

You can monitor the IDocs using transaction WE05 and view the detailed data using transaction WE19.

In Q0CCLNT558:

Transaction WE05,


In Q0CCLNT800:

Transaction WE05,


With above setup in place, vehicles created in Q0CCLNT558 automatically gets replicated to Q0CCLNT800.

What you need to make sure here is that basic settings like product category etc. exists in both the system,

otherwise object creation in target system would not be successful.

Similar set up can be done for automatic replication of order, BP from one system to another or from one client to another.

You can also use this XIF adapter together with LSMW (Legacy System Migration Workbench), in order to

import the data present in a flat file, to generate the IDocs first and then to save them in CRM system.

Hope you find this blog useful 🙂

You must be Logged on to comment or reply to a post.
  • Hi Shanthala,

    Thank you very much for your blog! it is really helpful and I have learnt a lot.

    One question: if the object I needs to exchange between SAP and non SAP system does not appear in the list "

    SPRO-->IMG-->Customer Relationship Management-->CRM-->Middleware and Related Components-->Exchanging

    Data With External Components-->XIF Adapter Setup-->Overview

    ", does it mean in this case it is IMPOSSIBLE to achieve data transfer via XIF any more?

    Is there any possibility for customer to develop their own XIF adapter, or enhance existing one?

    Thank you very much!

    Best regards,


    • Hello Jerry,

      It should be possible, though I have not tried it out.

      But I have seen many customers extending an existing IDoc using transaction WE30.

      Also, I am aware of report: CRMXIF_MAPSEND_GENERATE to generate customer specific interface types.

      You can check out WE* in transaction SE93, just to explore things.

      I will update you if I manage to get a documentation regarding this.

      Best Regards,


  • Hi Shanthala,

    I am a regular follower of your blog and learned so much by reading your postings.

    Thank you very much, Well Explained.

    Here I have one small query relevant to this.

    Here I've to pass data from SAP CRM to SAP XI system, from XI, they pass data to Seibel CRM.

    Also I've to add some custom fields at Iobject level(10 fields) and from them only 2 fields data(remaining fields they will use in SAP CRM for thier own purpose) should go to XI system.

    For this I have created 10 attributes and 2 set types.In one set type added 4 attributes and remaining 6 attributes in other set type. Attached these 2 set types to relevant categories.After that, attached these 2 set types to a TR.While doing so I have checked on "Create API Append" check box.With this all the relevant APIs and BDOC ( PRODUCT_INDOBJ )get extended automatically.

    And all the above explained set up is already there in the system. That is ......

    1) Define RFC Connections, 2) Ports in IDoc processing ,3) Generate/Maintain Partner Profile, 4) Site Creation and Subscription ,5) Assign Site and BDoc Type to Interface Type

    Now My problem is how to extend the IDOC to accomidate required 2 new fields and how to do mapping if required...?

    I am new to this IDOC extension and has no knowledge on this part. I tried extending IDOC CRMXIF_PRODUCT_INDOBJ_SAVE by going to WE30 Tcode. But it's showing error message "Action is not possible for generated idoc types".

    Could you please guide me in this IDOC extension part and mapping fields if required.

    Your help is very much required.

    Thanks & Best regards,


    • Hello Nagarjuna,

      Have you tried to create a new product/object with data for newly created settype/attributes?

      If I understand it correctly, generated IDoc should already contain the data for custom settype/attribute as well, without the need to any IDoc enhancement, provided 'Create API Append' had been ticked during settype generation.

      Please try this out and check WE19 or WE05.

      Best Regards,


        • Hello Shanthala, Nagarjuna,

          We have defined custom set types and attributes for the individual objects. When we save and generate these custom set types, we don't see these available in the IDoc "CRMXIF_PRODUCT_INDOBJ_SAVE01".

          Will these custom attributes be available as fields in the IDoc or should we supply data to "E101COMXIF_PR_S_PRODUCT_SET" and "E101XIF_PR_PRODUCT_SET_CUST" ?

          In addition, we even need to input data to the standard set types and attributes belonging to the object family - Vehicles. Will the above approach also apply for this ?

          We will appreciate your help and response.

          • Hello,

            As far I know, everything should happen automatically if configuration is done correctly.

            - make sure check box 'Create API append' is ticked during settype generation.

            - In transaction COMM_HIERARCHY, I assume while assigning the settype to category you have also assigned the object family.

            - You can also check the generated BDoc upon product save/update before checking the IDoc.

            If data is present in BDoc, then definitely data should be present in Idoc.

            Best Regards,


      • Hi-

        when business partner create/change there is only Bdoc number genarates or each specific site there?

        what I am looking here is I have 2 sites, one is for ECC and one for external system. If one target system is down I want to re-process that Bdoc. How can I achive this?

  • Hi Shanthala,

    One question.

    I'm implementing the BDoc conversión to IDoc for the bDoc PRODUCT_FS, but it can't be suscribed to my configured site. (The site doesn't appear in the list) on SMOEAC tcode.

    I've already configured the BUS_TRANS_MSG with "All business transacions" publication without problem, but not with PRODUCT_FS.

    As far as I could investigate, this BDoc (PRODUCT_FS) has not XIF interface or maybe there is a missing configuration

    At this point I don't know what else to do, so could you recommend me some thing or the answer is "Not for this PRODUCT_FS BDoc?


    • Hello,

      You can check:

      transaction: SXDA and then navigate to,  Goto-->DX Program Library and check for the registered programs to know the function module, documentation or the test report, to test the scenario.

      What you need to check is whether for PRODUCT_FS O/B scenario is supported.

      You can refer the customizing path mentioned earlier in the blog as well.

      Alternatively, you can contact SAP AGS to confirm XIF is not currently supported for PRODUCT_FS.

      Unfortunately, I do not have access to any system at the moment and hence cant confirm this for you.

      Best Regards,


      • Hi Shandala

        Thanks a lot for your reply.

        One more question:

        In another scenario, we are extending the BUS_TRANS_MSG BDoc, adding a new custom structure with fields.

        Do we need to créate a new "z" XIF interface and populate the "z" fields manually, based on a new FM? I mean, the outbound IDoc will not be the standard CRMXIF_ORDER_SAVE_U05 ?


      • hi Shanthala kudva,

           i have a scenario, in sap crm 5.0 have data related to marketing attributes in bp,

           i want to transfer the data from crm 5.0 to crm 7 using xif adepters.

           can u pls explain step by step process how to do it...............



  • Hi team,

    I want to transfer the data from crm 5.0 to crm 7.0 .i have 40 fields available in CRM 5.0 system.So i want to transfer from crm 5.0 to crm 7.0.Could you please help.