cancel
Showing results for 
Search instead for 
Did you mean: 

Proxy to multiple files

Former Member
0 Kudos

I am new to PI (7.11) and am attempting this scenario. Via Proxy I am sent data that needs to be broken into multiple files based on the content of two elements. One of the elements will determine which receiver will get the file(s) and one element will determine when to break the data into one or more files. I have the receiver determination working for the routing based on the first element, but I can't get the data to break into multiple files. The proxy may push data for one receiver that needs to be broken into multiple files and sent to only one receiver or the proxy may push data that needs to be broken into multiple files and the receiver for each file determined individually.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Dave,

I would suggest the following approach:

1) First work out on the breaking of data into one or multiple files

2) Determine receiver individually even if all the files need to go to the same receiver.

I am not sure what are you exactly looking for but I thought you wanted to discuss the approach.

Regards,

-- V J

Former Member
0 Kudos

Hi V J,

Thanks for the quick reply. I understand how to send the file individually (I am at least fairly sure I understand this part). What I do not fully understand is how to break the data into multiple files. My data is like this:

<DC>XXX</DC>

     <RECEIVERID>FRED</RECEIVERID>

<DC>YYY</DC>

     <RECEIVERID>FRED</RECEIVERID>

<DC>ZZZ</DC>

     <RECEIVERID>FRED</RECEIVERID>

<DC>AAA</DC>

     <RECEIVERID>BOB</RECEIVERID>

<DC>BBB</DC>

     <RECEIVERID>BOB</RECEIVERID>

<DC>CCC</DC>

     <RECEIVERID>BOB</RECEIVERID>

So I wish to create six (6) files. Three (XXX,YYY,ZZZ) go to FRED and three (AAA,BBB,CCC) go to BOB. I am dynamically creating the file names based on the value in the <DC> element (This part works, but I am only getting one file---however it is named correctly.

Thank you again and I hope I made my question clearer.

Former Member
0 Kudos

Hi Dave,

You can try this mapping:

<RECEIVERID> (Context changed to the parent node of <DC> and <RECEIVERID>) ---> Collapse Context ---> Split by Value (Value Change) --> Target Node

Now you have all the FRED ones together and BOB ones together.

Is this what you were looking for?

If not, please share your Target Structure and I'll help you with the mapping.

Regards,

V J

Ryan-Crosby
Active Contributor
0 Kudos

Hi Dave,

Here is an example where I have done something like this using an interface determination that maps one source message into multiple receiver interfaces.  There would also be an option to use receiver determination with multiple parties for one receiver interface if the file formats on the receiver side could be generated from the same XML structure.  In my case the file formats were different so I have many receiver interfaces for different files that needed to be dropped on the other end.  If you look at the screenshot I've included you'll see that you can use operation mappings to split the source as necessary into multiple receiver interfaces and you can also use conditions to decide how this should happen.  See below:

Regards,

Ryan Crosby

Former Member
0 Kudos

So here is the Source Mapping (with unimportant stuff at the bottom removed.

And here is the target mapping (unimportant stuff removed)

Speaking from the Source mapping, every time there is a new Distributor Code node, I want to create and send a separate file. The file will be routed based on the value in the Receiver ID field (and by design, this value will always be the same under each Distributor Code Node).

Former Member
0 Kudos

This is the approach I am going to use. Thanks to all who have answered.

Answers (2)

Answers (2)

anand_shankar10
Active Participant
0 Kudos

There can be one more approach of using Multi mapping to split the file based on condition in the mapping and then using the conditions in receiver determination to send it to different receivers.

rajasekhar_reddy14
Active Contributor
0 Kudos

If you are using one bussiness syste./Bussines service then use Ryan Crosby replay and implement, it works.

else

Write a condition in receiver determination if you have multiple receiver.