Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
kkram
Contributor

We had a scenario where two interfaces (say interface A and B) from a legacy system to ECC (Enterprise Central Component) were inter-dependent. That is, mapping for interface B cannot start unless interface A has been successfully completed. Both interfaces use outbound JDBC adapter and inbound IDOC adapter.  Mapping for interface B uses RFC lookup and transformation shouldn’t start unless the IDOCs for interface A have been successfully posted in ECC.

 

To achieve this we need to trigger an event in ECC after posting the IDOCs for interface A successfully and this event should in turn act as a trigger for starting the transformation process for interface B in XI. However, we all know, sender adapters in XI can only poll data at regular intervals. From SP19 (NW2004s SP10), adapter engine can support scheduled polling but cannot handle event based triggers. Integration engine supports event based scheduling of messages (link) and we used this with a slight twist for implementing our scenario, as explained below :-

Step 1: Configure Sender ID for Interface B in SXMB_ADM (in XI)

To stage the messages of interface B sent by the adapter engine in the integration engine, we need to create a sender ID first.

Step 2: Configure Event-Controlled Message Processing for Interface B in SXMB_ADM (in XI)

Here, we configure the event based message processing for interface B and assign a job ID for the filter (in this case Z_TRIGGER_INTERFACE_B).

After saving and activating the filter, job with status “to-be scheduled” is created.

Note: Don’t schedule or activate the job from here. We will do the same as in step 3.

Step 3: Create a job in SM36 with the same ID provided in step 2 (in XI)

In this step, for better control on the job, we use SM36 to create the same.

a. Job ID should exactly be the same as in step 2 (in this case Z_TRIGGER_INTERFACE_B).

b. Job should execute program SXMS_START_JOBS as the first step.

c. Start condition for the job should be “After Event” for custom event ‘Z_INT_B_TRIGGER’ and should be 'periodic'.

Note: Use transaction code SM64 to create a custom event.

Step 4: Create a wrapper function module for BP_EVENT_RAISE to enable RFC (in XI)

The standard function module BP_EVENT_RAISE can be used for triggering events. However, the idea is to call this function module from ECC through RFC. Hence, create a wrapper function module namely Z_ BP_EVENT_RAISE which will in turn call standard function module BP_EVENT_RAISE.

Step 5: Create a job in SM36 for posting the IDOCs and triggering the event in XI (in ECC)

This job will have two steps.

   1. First step will call program RBDAPP01 which will post IDOCs for Interface A.

   2. Second step will call a Z program which in turn will call function module Z_BP_EVENT_RAISE in XI using RFC, with EVENT_ID parameter as 'Z_INT_B_TRIGGER' in this case.

 

Now, we have established a event based message processing where mapping for interface B will start in XI only after IDOCs for interface A have been posted completely in ECC. The whole process is summarized in the below picture.

6 Comments
Labels in this area