BizTalk Flat File Disassembler creating multiple messages or files while parsing input Flat File

Problem:

BizTalk FlatFile Disassembler creating multiple messages or files while parsing input Flat File

Scenario Details:

You have implemented custom biztalk pipeline (with Flat File Disassembler in it) to receive flat file input and process it inside an orchestration

You want to receive multiple records (that are in flat file) as a collection of xml records inside one single message in your orchestration but you when you process input flat file you see that custom pipeline is creating one xml message for each record (in flat file) instead and if open BizTalk Group Hub have a look at Tracked Service instances then you will realize that actually multiple instances of same orchestrations ran (i.e. one orchestration instance against each flat file input record).

Solution:

You can fix this issue by setting “Group Max Occurs” property value to “unbounded” for the root node in your FlatFileSchema.xsd file

For example:

Suppose you have an input flat file with following structure where each record ends with {CR}{LF}:

And you have defined FF schema as shown below:

And you have defined a mapping between FF schema and destination xml schema as following:

Now you can fix this particular issue by right clicking “Root” node in FF schema and set “Group Max Occurs” property value to “unbounded” (Assuming you have configured “Root” element as Delimited structure and its child record “Record” as positional structure in your FF schema)

By making above suggested change, your FF disassembler will create one xml message with multiple records (from FF file) and final transformation from FF to xml message will be as shown in below sample:

Leave a comment