cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple IDocs-XI-Single File Scenario

Former Member
0 Kudos

Hi All,

We need to send multiple IDocs from R/3 to XI and then to a single file using File Adapter. Please help us with your suggestions on how to proceed using a simple solution.

Regards,

Peter

Accepted Solutions (1)

Accepted Solutions (1)

MichalKrawczyk
Active Contributor
0 Kudos

Hi Peter,

you need to use BPM in order to collect

your idocs and then map them to one file

there's a standard pattern (collect pattern) for doing this:

http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm

as far as I know there's no other way in standard

to do it (for example without BPM)

Regards,

michal

Answers (6)

Answers (6)

former_member398373
Participant
0 Kudos
Former Member
0 Kudos

we had similar scenario; we could collect the IDOCS in R/3 itself; there is option in partner profile (WE20) for outbound parameters select the radio button Collect IDOCS; use XML_HTTP port.

kkram
Contributor
0 Kudos

You can collect all the IDOCs in to a single XML file using XML File port in WE21. Once the XML file is written, you can use file adapter in XI to parse and transform to your target file

Another option is to use the ABAP PI port. In XI, create a message with a node and its child as IDOC. Generate ABAP proxy class in ECC and ABAP PI port in WE21 which will collect all IDOCs and call a ABAP function module. Within this function module you can call a ABAP proxy in XI.

Check this link for more info: http://help.sap.com/saphelp_nw70ehp1/helpdata/en/d5/edf163dcdc11d1890c0000e8216438/frameset.htm

Former Member
0 Kudos

I made a program that solved the issue of collecting the IDOC in to one file.

1. The partent profile should be setup for collect idocs

2. Make a report that will select and dispatch the idocs

seudo code:

select tables with select criteria:

edidc (idoc control)

edid4 (idoc data)

one yo have made you selection into internal tables

it_final_edidc

it_final_edid4

*you can apply rules and data tranformations, eg. PEXR2002 batch per payment type.

CALL FUNCTION 'EDI_OUTPUT_NEW'

EXPORTING

onl_option = 'B'

  • ERROR_FLAG = ' '

  • NAST_RECORD =

TABLES

i_edidc = it_final_edidc

i_edidd = it_final_edid4

EXCEPTIONS

OTHERS = 1.

" EDI mesages dispatched

IF sy-subrc EQ 0.

COMMIT WORK.

CALL FUNCTION 'DEQUEUE_ALL'

  • EXPORTING

  • _SYNCHRON = ' '

EXCEPTIONS

OTHERS = 1.

That work like a charm when writting the IDOC to a single file.

But when I send the IDOCS to XI like XML-IDOC I still receive one transaction per IDOC.

if anyone know how to solve that, let me know.

juan

Former Member
0 Kudos

Hi Peter,

This following weblog explains the collection of Idoc.

/people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm - Collection of IDoc to Single File

Thanks,

Prateek

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Peter,

Either you have to use a BPM or you use the workaround from SAP: see OSS NOTE 814393.

You cn use the concept of packaging to coolect mukltiple IDOCs in XI and then use them to send to a file.

For an IDOC to file, check this blog,

/people/prateek.shah/blog/2005/06/08/introduction-to-idoc-xi-file-scenario-and-complete-walk-through-for-starters

Regards,

Bhavesh

MichalKrawczyk
Active Contributor
0 Kudos

hi Bhavesh,

>>><b>or</b> you use the workaround from SAP: see OSS NOTE 814393.

how can this help in collecting idocs?

(except it's a container for multiple idocs)

are you sure this is a workaround or just one one of the steps?

if there any other way to do it then with the collect pattern?

>>>You cn use the concept of packaging to coolect mukltiple IDOCs in XI and then use them to send to a file

this is only for performance reasons but not for message collection (if you want to use in mapping)

unless I'm missing something ?

thanks in advance for clarification

Regards,

michal

-


<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions">XI FAQ - Frequently Asked Questions</a>

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Michal,

Normally , even if we send multiple IDOCs from R3 into XI, they are processed one by one by XI ( if you do not have a BPM / collect pattern ).

But, if we want to collect IDOCs in XI and when many IDOCs are sent from R3 at the same time, wouldnt PACKAGING help us in avoid BPM??

<i>how can this help in collecting idocs?

(except it's a container for multiple idocs)

are you sure this is a workaround or just one one of the steps?</i>

Packaging allows us to collect all IDOCs sent from R3 as a single IDOC, so are we not collecting IDOCs over here??

Do clarfiy, if I have made some mistake in my udnerstanding here,

Regards,

Bhavesh

MichalKrawczyk
Active Contributor
0 Kudos

hi,

>>>But, if we want to collect IDOCs in XI and when many IDOCs are sent from R3 at the same time, wouldnt PACKAGING help us in avoid BPM??

with packaging you can only say:

hey XI stop untill I get 100 IDOCs and then process them

in one call

but there's no option to put all of them in one mapping

for example - unless I'm missing something:)

so packaging can only help us with performance

but not avoid BPM in this case

- of course we wish it would be possible without the BPM:)

BTW

have a look at this weblog to understand when it can be used:

/people/sravya.talanki2/blog/2005/12/09/xiidoc-message-packages

Regarss,

michal

Former Member
0 Kudos

Thanks all for the information.

I am new to BPM, how hard is this and please provide any step by step guidelines to develop this.

Regards,

Peter

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

not very difficult just have a look

at the collect pattern from my link

and you'll find a ready example

in the basis 6.40 componentnt

so just do the same

Regards,

michal

Former Member
0 Kudos

Hi,

I have a similar scenario in which DEBMAS idocs are coming in batches from SAP To XI. I need to collect them and process them one by one. I tried using the collect pattern based on time but I am observing that the system is starting a new bpm process for every IDOC entering the XI system from SAP. How do I get to collect them?

Also IDOC packaging is not going to work for us as we are on sp11.

thanks

Ashish