Thursday, December 20, 2007

XI/PI: sender IDOC adapter packaging ?

This blog does not show any standard feature of XI - it's just for some of you to think how some things could be done a little bit faster with our favourite middleware product :)

As some of you know (it was also mentioned in my book: Mastering IDoc Business Scenarios with SAP XI) that in SAP standard it's possible to specify IDOC's package size in Partner Profile configuration (transaction WE20). Just like shown on the picture below.

IDOC

But what does it mean in terms of XI/PI ? If any of you ever tried creating IDOC RFC server using SAP JCO libraries (available under service.sap.com/connectors) you know that if you specify the package size and collect mode all IDOCs (in this case 500) will be send in one RFC call. On the other hand XI/PI internally splits them and creates one XI message from one IDOC (even if they come from in one RFC). With some modifications you can revert this process and see all IDOCs in one XI message just like shown on the screen below.

IDOC

What does it mean in terms of performance (as this is the only criterium for which that test was made). I did only a small test but it shows a dramatic improvement in terms of XI processing. Have a look at the table below.

IDOC

Some info about the test:

1. I only checked a few test cases

2. My test landscape if far from perfect (tests values show avarage time of message processing based on a few same samples)

3. Time taken into account is only processing time on Integration Engine (AWF not included)

4. Messages didn't have any mapping (so there might be even more improvement with that)

Conclusions:

If we could only use packaging with IDOC sender adapter:

1. Message processing on IE would be much, much faster

2. Think how many less resources would we need if we had a mapping (with packaging we'd just need to call the mapping one - without that we need to call it once per IDOC...). I'm sure if I had any mapping involved that differences in processing time would be even greater.

3. Another great thing - if we need to collect IDOCs in standard we need to use a BPM (with collect pattern) which is very memory consuming (apart from time consuming) process. If we could use IDOC packaging on the sender IDOC adapter there is no need for any BPM as the messages are already collected.

Remarks:

I'm sorry I'm not posting a code for this enhancement but it involves a repair (it's not any user exit etc.) and it's not that easy as it might sound (you also need to think about IDX5 etc.). Furthermore I'd rather SAP would add the same to XI/PI standard so we woundn't have to do any enhancements like that.

What can we do?

We can always post a Development request and hope that one day we will see this feature in XI/PI :)

No comments:

Blog Archive