IntroductionIt’s very common in integration project where we have to deal with debatching the batch of files and batching multiple files into single file. Depending upon requirements we can do xml debatching, EDI debatching, Flat file debatching and xml batching, flat file batching, EDI batching with the help of respective assembler and disassembler.
This post demonstrates how to batch multiple xml files into single flat file using flat file assembler and file adapter.
ScenarioThe best example for this would be “Collection of errors for a particular day in a single file”. But to keep this simple and easy to understand following scenario is used for this post – Solution is to be designed to collect all the Employee messages(xml) coming in on that particular day and to be batched into single flat file and saved as “todaysdate.txt”
Say, 10 employee messages came in between 12:00 AM – 12:00 PM on 10th November 2014 then all the employee message should be batched into single flat file and saved as 10-11-2014.txt
How To Do
Custom Flat File send pipelineThere is no default flat file pipeline provided out of the box, so we need to create custom flat file pipeline. As we need to create flat file at send side, we create flat file send pipeline with the help of Flat file Assembler
Have used Orchestration for the sake of assigning Current date as filename to the outgoing message, but yes this solution can be implemented as pure messaging solution by creating a custom pipeline component for assigning the filename.
1. Transform Shape
Simple one to one mapping from xml to flat file.
2. Message assignment
In message assignment shape, System’s current date is assigned to a string variable SystemDate and later it is assigned to context property FILE.ReceivedFileName, so we are actually overwriting the values of FILE.ReceivedFileName. We did this so that we can use %SourceFileName% macro at send port, which reads this context property and uses it to name the message saved at destination location.
Possible error: The Filename, directory name, or volume label syntax is incorrect
Build and deploy
After done with the development, sign the project and assign it a Name and deploy.
Configuring and testing the application
It is covered in next post : http://tech-findings.blogspot.in/2014/11/biztalk-server-multiple-xml-files-to.html