HIS 2010 – Data Conversion Pipeline Component – Pipeline Name Dependency

This post was originally published here.

Host Integration Server 2010 comes with a BizTalk data conversion pipeline component. This enables the copybook parsing functionality, without the usage of the HostApps adapters. Great stuff when you need to parse copybook files while using a custom WCF binding for the mainframe connectivity. We discovered a bug during the proof of concept.

Host Integration Server 2010 comes with a BizTalk data conversion pipeline component.  This enables the copybook parsing functionality, withou the usage of the HostApps adapters. Great stuff when you need to parse copybook files while using a custom WCF binding for the mainframe connectivity.

During a POC, we were glad to discover that the import of a copybook definition goes a lot smoother than in the previous HIS versions.  The copybook definition import results in a HIS data conversion assembly.  This assembly contains the logic to parse the copybook file to XML and vice versa.  We configured the by default installed HIS send pipeline, “DataConversionSendPipeline”, with the generated HIS data conversion assembly and everything went fine. 

Afterwards, we’ve changed the POC scenario and needed to add some extra functionality to the send pipeline.  Therefore we’ve created a custom send pipeline and configured it with the HIS data conversion pipeline component.  This custom pipeline had actually the same setup and configuration of the by default installed HIS send pipeline, “DataConversionSendPipeline”.  However we’ve encountered suddenly a bunch of conversion errors. 

After many hours of troubleshooting, Sam discovered the following pipeline name dependency in the data conversion pipeline component via Reflector:

if (pc.PipelineName.IndexOf("DataConversionSendPipeline") != -1)
this._toHost = true; }
else
this._toHost = false; }

The _toHost property is actually used to determine if the component needs to execute receive pipeline conversion functionality (FF to XML) or send pipeline conversion logic (XML to FF).  The value of this property is set, depending on the name of the send pipeline it belongs to.  A dependency between a pipeline component and a pipeline name is NOT a good practice.  So if you want the component to work correctly in a custom send pipeline, the pipeline name should contain “DataConversionSendPipeline”.  It would be more straightforward to set the _toHost property in the component, depending on the determined pipeline stage at runtime. 

 We’ve raised this bug via Microsoft Support and we hope to see a fix in the next cumulative update pack.

ABOUT

MEET THE YOUR AZURE COACH TEAM

Your Azure Coach is specialized in organizing Azure trainings that are infused with real-life experience. All our coaches are active consultants, who are very passionate and who love to share their Azure expertise with you.