Skip to Content
Author's profile photo Michal Krawczyk

Michal’s PO/PI tips: Sending custom proxy messages from CRM middleware using a site of type XI

Those who have worked with CRM middleware probably know that it’s possible to send Bdocs with the use of IDOC to PI/PO systems using site type IDOC but there’s also a way to send proxy messages to PI/PO system. The issue is that in order to make it work with just generation the proxy data type needs to be exactly the same as the data type of used internally in the CRM middleware (bdoc). Is there a way then to populate a custom proxy (with a different structure then the CRM internal structure)? The procedure is not very much different than the standard one but as even the standard one is not described anywhere let me show all the steps.

The idea is to distribute BDOC type BUPA_TRANS_MAIN which can contant all information about CRM orders.

Step 1

Create a new site of type XI – in transaction SMOEAC and configure it to subscribe to BUPA_TRANS_MAIN – this step is more or less described in many guides so I will skip this one.

Step 2

Next you need to configure your site for the correct interface in transaction – crmxif_c1.


Step 3

The next step you only need to excute in two cases:

a) either your function CRMXIF_ORDER_MAPSEND does not exits

b) you want to generate a proxy which has the same interface as the internal data type

Excecute program CRMXIF_MAPSEND_GENERATE and run it with interface CRMXIF_ORDER_SAVE


Step 4

Now the function CRMXIF_ORDER_MAPSEND which invokes correct site will in standard contain only a way to work with IDOCs and XML (not proxies).


If we want to call a custom function module in which we will call the custom proxy we need to change this generated program and include those lines:

* or PO/PI/XI

  ELSEIF is_recipient-sitetypeid = c_crmxif_sitetype_xi.

    CALL FUNCTION ‘your function module which calls proxy’


        is_header         = is_header

        is_data_mapped    = ls_data_mapped

        is_recipient      = is_recipient


        ct_error_segments = ct_error_segments.

Now when the transaction will be saved CRM middleware will call your XI site and the function module which can call any type of proxy. Please remember that in this function module you need to do the mapping between the internal structure and proxy structure.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi Michal,

      very interessing, looking for this solution to forward "vcard" (crm contact) "icalendar (task) in a scenario proxy to email scenario.
      "Please remember that in this function module you need to do the mapping between the internal structure and proxy structure"

      I just looking to send the soap envelope (Bdocs?) to send as xml to PI through proxy, how do you convert it ? do you some examples ?

      Thanks in Advance

      Author's profile photo Former Member
      Former Member

      very good link also, with similarities, it is better to create a new function ZCRMXIF_ORDER_MAPSEND  and link it  in the Bdoc from table  CRMXIF_BDOCIF