cancel
Showing results for 
Search instead for 
Did you mean: 

1 source file to multiple receiver files

Former Member
0 Kudos

Hello Experts .

In my source file I have 10 records.I want 10 target files to be created for those 10 records.

Please suggest as to how this can be achieved.

Both the source and target structures are same.

Regards

Advit

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello Advit,

You can create 10 Business Component and assign one Reciever Communication Channel to each one.

In Reciver Determination in ID give name of all these Business Component and You can do rest of the configuration as usual.

Regards,

Pradeep

Former Member
0 Kudos

Hi Pradeep,

What I would like to emphasize is that my source message has 10 records in one source file .

For each record an individual file must be created at the same receiver folder .

Regards

Advit

Former Member
0 Kudos

Hello Advit,

As per my understanding this source message having 10 records is having same fields with different value.

In that case, in Message Mapping in ESR under Signature Tab you can change the signature from '1..1' to '1..N' for target side.

This will split your data into 10 files and you do your normal configuration in ID.

Note: Once you update the Message mapping again re import the Operation Mapping In Interface Determination of ID so that it will show its occurance as 1..N rather than 1..1.

Also if you can share the screenshot of source Data Type than it would be easier to provide the solution.

Regards,

Pradeep

Answers (4)

Answers (4)

pvishnuvardan_reddy
Active Contributor
0 Kudos

Hi Advit,

You can use multi mapping with out BPM here.

In Message mapping, just changethe occurrence of target message type to 1:Unbounded.

But in interface mapping, just keep the source and target service interface occurrences(1:1) as it is.

And the ID part remains as usual.

By doing this, you would get n number of files depending on how you are handling in message mapping.

Please let me know if you need any more information.

Regards

Vishnu

giridhar_vegi
Participant
0 Kudos

Hi Advit,

what is the scenario you are doing. if it is file content conversion to file content conversion you can use the record sets per message property in sender communication channel and you need use create option in file construction mode in receiver communication channel. if you face any issue let me know .

Thanks

Giridhar

Former Member
0 Kudos

Hi Advit,

You can achieve this with multi mapping with one receiver Business system and one receiver file channel. use 1:n mapping.

In the configuration, in the receiver communication channel, select File construction mode as Add Time Stamp.

I have tried on my system and it worked on my system.

Look at my source and target xmls.

test.xml contains 3 records,  and 3 files created on target side.

Let me know if you have any question to do this.

Regards,

Santhi

Former Member
0 Kudos

Hi,

Look at source xml and message mapping screenshot for 1:n mapping.

Regards,

Santhi

former_member183816
Active Participant
0 Kudos

You can use Mapping based message split: 1 message mapping (Source to Messages)

You need to define,

ESR:

10 inbound service interface, each having Record1, Record2..., Record10 (one in each interface or disable fields during mapping in each message)

1 message mapping.

Your mapping Traget structure will look like this,

<Messages>

    <Message1>

         Record1

         FileName1

         (Disable rest of the records)

    </Message1>

    <Message2>

         Record2

         FileName2

         (Disable rest of the records)

    </Message2>

..

..

    <Message10>

         Record10

         FileName10

         (Disable rest of the records)

    </Message10>

<Messages>

1 operation mapping, use above message mapping.


ID:

1 sender, 1 receiver

10 different communication channels, for each interface or see alternate solution below using single cc.

But I won't say it elegant solution, using 10 different cc.

So I would suggest you to define one single channel and get your file name from payload (add file name corresponding to each record) at runtime using variable substitution for each interface.

Ref:

http://help.sap.com/saphelp_nw73ehp1/helpdata/en/18/fa87311cea41e49dc9d931a3b67703/content.htm