on 08-10-2006 4:47 PM
I'm using IDOCS Collection and Dispatch from R/3 to XI. However when I run Idoc Dispatch Program It sends to XI as Individual Idocs.
My requirement is to Collect all these Idocs and should send in one File in CSV Format. How do I get these Idocs bundled beforeit Hits XI?. Or Do I have to use BPM process to collect these idocs and send in one file?
Thanks for sharing any thoughts..
Hi Ram,
You can send IDoc packets from R/3 to XI, but a requirement of any (certified) IDoc adapter is to split IDoc packets into individual messages. So this is expected behavior.
If you want to collect them, you'll need to write a BPM to do this as a number of people have mentioned.
One word of caution though... XI is very inefficient at doing IDoc collection compared with other integration tools like webMethods or BizTalk. This is because BPM is very resource intensive and logs everything and there's almost no control over BPM logging, memory usage, and data persistance.
I also wouldn't recommend collecting over 100 - 200 IDocs. If you collect more than that, you may have trouble viewing the BPM logs.
The IDoc collection patterns that SAP delivers and in the blogs are good but I usually find that what's required is collection based on both a number of IDocs and a time value. For example, collect IDocs into packets of 100. If a full packet hasn't been receive in over 1 minute, output the remaining IDocs in a packet. So if 350 IDocs are sent, 3 packets of 100 will be sent, and then a packet of 50 will be sent.
If you're interested in this type of IDoc collection BPM send me an email and I'll send you a document describing it. It's in production at a few large XI clients so it should be pretty complete.
Thanks,
Jesse
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Wolff. Thanks a lot for detailed explanation. Our process is Legacy system sends data to R3 via batch process.Iam generating puchasing cost conditions ( COND_A ) as a result of this batch process Updates to R3. That means there will be around 20 to 30,000 Idocs will be generated from change pointers withing this batch cycle. All these 20,000 Idocs will be sent to 3rd party application within a short period of time by using XI. The structure Of this Idoc is
COND_A03
...EDI_DC40
...e1komg occurs 1
...e1konh
......e1konm 1..unbounded
If I bundle say 100 idocs with BPM I should be able to send all these Idocs in a file format to 3rd party application.( 1 Flat file record per Idoc ).
What do you suggest of our requirement considering the BPM bottlenecks and performance issues for high volume of data?
Thanks a lot for any insights into this.
Will you please send IDOC collection BPM to ramkrishi12@yahoo.com
Thanks again
Message was edited by: Ram Krish
Hi Ram Krish,
it is impossible to collect 20.000 IDOC's with a BPM in a serios time frame. You have to check, if you could redesign your entire process.
As workaround you could send the IDOC's not directly to XI, you could use the file port and send them in XML format to th file system. This gives you the posibility to create bundles. When you want to bundle 100 IDOC's you receive 200 files with 100 IDOC's each. This files can be uploaded with the file adapter and mapped to the target structure without BPM.
Regards
Stefan
Hi Ram Krish,
If you want to Bundle the idocs from R/3 itself, you can find the Collect Idocs option in the Outbound Partner Profiles (WE20) ..
But it is required to collect these Idocs in the XI with the help of BPMCollect Patterns. Because if you send 100 idocs at a time from the R/3 it will reach XI as one message for each idoc.
Also have a look into this blog-
/people/sravya.talanki2/blog/2005/12/09/xiidoc-message-packages
Regards,
Moorthy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Moorthy,
I looked at into the Link you provided by Shravya. We have to USe Exsting Message Id into IDXPW transaction and run it. I got error ""Persist error: Message without final Status ""
Also If we use Message ID , for each upcoming Idocs Message Id will be changed right?. Iam just confused with this Idoc. Will you please mind explaining this. Thnx
Hi,
Inside R/3 the notion "<i>Collect 200 idocs</i>" is just: "<i>wait to have 200 idocs before to send the whole group... each by each</i>". This is due to SAP Idoc definition: only ONE idoc by message type.
I don't remind me exactly how to do that, but here's the idea to be followed:
1. R/3: copy your standard Idoc and change the occurence from "1" to "9999999".
2. R/3: copy the transaction which send your IDoc normally one by one, to a specific one (e.g BD10 -> ZBD10). Inside this last one, find the function which build the IDoc and put it between a "Loop.. Endloop". And only after, that use the function module which send your super Idoc.
<i>This part is not easy to do but it's the only way that I see in order to send several same IDoc inside only ONE message type.</i>
3. I don't remind me, but I think you need also to copy and change the function module.
4. XI: Import and use the structure of your copied IDoc into your mapping. No BPM is needed!
Avantage: inside the monitoring of XI, you have only ONE inbound message. And treatment is quick.
Inconvenient: with this method, you will have potentially some problems with a SAP upgrade. Thus be careful!
Mickael
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
83 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.