I’m back to another blog post about BizTalk Server! I know that my latest post has been about Azure Logic Apps, and you may count on seeing many more in the future. And the reason is that I work both on-premise with BizTalk Server and in the cloud with Azure Integration Services… but relax, I will continue to post many things about BizTalk Server. BizTalk Server is not dead. It is well alive, contrary to what many think!

Today I’m returning to one of my pet projects: the BizTalk Pipeline Components Extensions Utility Pack project that is available on GitHub!

For those who aren’t familiar with it, the BizTalk Pipeline Components Extensions Utility Pack project is a set of custom pipeline components (libraries) with several custom pipeline components that can be used in receive and sent pipelines. Those pipeline components provide extensions of BizTalk’s out-of-the-box pipeline capabilities.

CSV Structure Validation Pipeline Component

The CSV Structure Validation Pipeline Component is a pipeline component that can be used to validate the structure of a basic CSV or flat file component before being converted to an XML message. Of course, this same strategy can be used in more complex scenarios.

This is the list of properties that you can set up on the CSV Structure Validation pipeline component:

Property NameDescriptionSample Values
DelimiterCharDefine what is the delimiter char inside a line.;
NumberFieldsPerLineNumber of fields expected per line3

Note that this component takes as granted that the line delimiter is the CRLF (Carriage Return\Line Feed).

If we take this example:

one;two;t
1;2;2

Then we need to configure the port in the following way:

If we receive an invalid file, then the component will raise an error suspending the message in the BizTalk Server Administration Console. For example, with the following error message:

  • Invalid format data in the document. Line number 3 has 2 fields, and it should be expected 3 fields

If you are wondering why create a Pipeline component to validate the structure of the CSV or flat-file document? Can we use instead the Flat-File Schema to do this structure validation?

And the answer is Yes and No! In many cases and with many requirements, we don’t need to create a custom pipeline component. Using a Flat-File schema can be used to address the goals but in other scenarios doing a CSV Validation with the Flat-File schema is not enough. However, I will leave that “discussion” to my next BizTalk Server Best practices, tips and tricks.

How to install it

As always, you just need to add these DLLs on the Pipeline Components folder that in BizTalk Server 2020 is by default:

  • C:\Program Files (x86)\Microsoft BizTalk Server\Pipeline Components

In this particular component, we need to have this  DLL:

  • BizTalk.PipelineComponent.CSVFlatFileStructureValidation.dll

How to use it

Like all previous, to use the pipeline component, I recommend you to create generic or several generic pipelines that can be reused by all your applications and add the Message Archive Pipeline Component in the stage you desire. The component can be used in a stage of the receive and send pipelines.

Download

THIS COMPONENT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND.

You can download CSV Structure Validation Pipeline Component from GitHub here:

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

1 thought on “CSV Structure Validation Pipeline Component”

  1. Hello, i downloaded file BizTalk.PipelineComponent.CSVFlatFileStructureValidation.dll from your site. i followed the instructions and saved the file to $BTSINSTALLPATH\Pipeline Components (P:\Program Files (x86)\Microsoft BizTalk Server\Pipeline Components). i then went to the BT admin console and opened a send port and tried to change the Receive pipeline to CSVStructureValidationReceive as pictured on this page. it doesn’t show up. i even closed the BT Admin Console and re-opened it, still don’t see it. i then googled “how to add a new pipeline component to the GAC for biztalk 2020” and clicked on the search result: https://learn.microsoft.com/en-us/biztalk/core/deploying-pipeline-components
    That page said “You do not need to add a custom pipeline component to be used by the BizTalk Runtime to the Global Assembly Cache (GAC)” It then pointed to https://learn.microsoft.com/en-us/biztalk/core/how-to-use-the-toolbox for How to add the pipeline component to the toolbox. But the image on your page doesn’t reflect the Toolbox, but rather it shows a Receive Location. I’m trying to use this CSVStructureValidationReceive on the Receive Pipeline of a Static Solicit-Response send port. How do i enable it so i can specify it there? thank you!

Leave a Reply

Your email address will not be published. Required fields are marked *

turbo360

Back to Top