Skip to Content

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.

/wp-content/uploads/2013/03/crm_c1_195153.png

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

/wp-content/uploads/2013/03/crm_generate_195154.png

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).

/wp-content/uploads/2013/03/crm_code_1_195152.png

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’

      EXPORTING

        is_header         = is_header

        is_data_mapped    = ls_data_mapped

        is_recipient      = is_recipient

      CHANGING

        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.

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