What I did to cause the error

Dropped an XML file that went through a Map, and was picked up by a Send Port with a CSV Pipeline.
Worked okay if I used PassThru Pipeline.

Suspend Erorr

There was a failure executing the send pipeline: “DL.MGLocationData.Pipelines.MyAppNameLocationDataCSV_Send, DL.MGLocationData.Pipelines, Version=, Culture=neutral, PublicKeyToken=59a32f7375d7234a”
Source: “Flat file assembler” Send Port: “sp_MyAppNameLocationData_CSV” URI: “e:\Integration\Outbound\MyAppNameLocationData\MyAppName_%datetime%.csv” Reason: Object reference not set to an instance of an object


Turn on output map validation for your map.

Check the following:
1) Your are mapping something to every single CSV column
2) You don’t have same column names misspelled (one way in map, and another way in the schema)

The first issue is that you typically need secure SFTP. Biztalk 2010 finally comes with a secure FTP, but it’s FTPS (FTP over SSL) instead of SFTP (MSDN Community Link).

There is an open-source adapter available here: http://sftpadapter.codeplex.com.

On the other hand, you can use normal FTP, but use some type of encryption that can be managed by your pipeline.

However, even with SFTP or encryption, that means that the security is maintained in BizTalk, and some companies are not happy about that. You also have to consider how you test, and whether for example in your test environment, you use different passwords and encryption keys, making the deploy slightly more complicated.


the bigger story is this. Large companies often have the security and FTP managed by another team outside of the BizTalk team. And quite often, they have already purchased a complete solution. I worked at a bank, which used GlobalScapes EFT (Enhanced File Transfer). My most recent client used Axway Managed File Transfer (MFT), and then was switching to Axway WebTrader (Interchange).

These enterprise level FTP tools also handle details like backup. Many companies, for legal reasons, want to keep a snapshot (archive) of every file that was sent or received.

With companies that use this software, all the FTP and firewalls are handled by another group, and BizTalk simply uses the file adapter. You just need the directory paths from the group that manages all the FTP software.

I’m receiving a csv flat-file. It’s debatching in the pipeline, causing one orchestration to start for each row.

Sometimes I desire such behavior, but in this case I don’t.

I can’t figure out what is making it debatch. The pipeline refers to two schemas, the header and document schema.

Neither one has “Envelope=true” and thus neither had the “Body XPath” parameter set.

Any ideas what else makes it debatch?

The Flat-file disassembler does not use the Envelope semantic to debatch a message.
It uses the structure of the schemas.

If a schema has this structure


Then the Flatfile disassembler will debatch by row.

To receive the entire message change the schema to

<message><row maxOccurs=”unbounded”><field/><field/><field/></row></message>

Thanks to Greg Forsythe in the BizTalkGurus.com forum.