Skip to Content

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.

To report this post you need to login first.

2 Comments

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

  1. Thomas BAILLEUL

    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

    (0) 

Leave a Reply