This scenario is extension of my old scenario that is defined in my old blog in which I define the Receiver Determination based on the file name Condition, use of Context object, Use of CP(contain pattern )in receiver determination, use of Dynamic Configuration, Use of ASMA etc..
In this I come to situation in which after defining the condition in receiver determination I have to split the source message to multiple files, earlier I just post the single file without splitting.
So for splitting the files I use Multimapping. Here structure is same for receiver side but I need to create multiple files based on some condition. But the problem is that earlier we are using dynamic configuration and using same it is creating the common file name for all file so I come to following solution. This solution is specific to my scenario and customize according to your need.
In this for dynamic name of the file I use variable substitution functionality in tricky way I pass the name of the file in the first occurrence of row field in payload itself and then retrieve that value in communication channel using variable substitution that give the name to a file as require and the I create another flow which read that file again and use FCC feature to remove the first row using Document offset…….
Caution: In this blog I am not define how to split the file using udf in Multimapping
Let’s start with receiver determination Condition from where that scenario comes into picture:
In this I need to send the files to two systems based on the file name one is SAP and another is Oracle system. In Oracle system I need to filter the record so there I am using Multimapping.
My massages mapping is look like below:
In mapping I use dynamic configuration code to get the source file name and pass that name to the first occurrence of the row field.
Here I am passing constant for testing in mapping like below
And the first record is come like that:
Now come to interface determination: in this occurrence or target message is 0 to unbounded
In receiver CC I am using variable substitution and define the file name as below:
FCC as below:
Variable substitution as below:
Using this I place the file with dynamic name that is defined in the first occurrence of the row. Now our task is to remove that value in the file. So for that I create another floe (file to file scenario without mapping). Using FCC option “document offset” I just remove the first row. As below:
Here also I set the ASMA parameters for the same file name at receiver side:
In receiver also I set the ASMA property and use same FCC parameter
All other configuration for that flow is simple without mapping just transferring file one folder to another and use of FCC is same define in my old blog.
- Hope You enjoyed this………………………J