1) Prerequisites VS2005 and BTS2006 Note: If you want to use in VS2003/BTS2004, unzip the file. Create a new VS2003 Class project (Reference Microsoft.BizTalk.Pipeline) and then copy the code from DecodeODBC.cs to your VS2003 Class file. I think the code will work as is. But there might be a little tweaking or a few .Net 2.0 features that will have to be re-written for .Net 1.1 Note: This code was authored with the RTM version of VS2005 and Beta2 of BTS 2006. Other versions of BTS 2006 should work. 1) Unzip the zip file on the root of your c:\ drive. A folder called c:\ODBCCustomPipe will be created. 2) Open up the c:\ODBCCustomPipe\ODBCPipelineComponent.sln in VS2005 Build the project. Note: The output assembly for the project will be placed in: C:\Program Files\Microsoft BizTalk Server 2006\Pipeline Components\ If your Pipeline directory is different from the above, right mouse button on the ODBCPipelineComponent project in VS2005 and then choose Properties. Select the Build Tab and then modify the Output path. Note: Installing Pipeline components in the GAC is optional. 3) In a new BTS or existing BTS project add a Receive Pipeline. With this pipeline opened up in Visual Studio: a) Goto the toolbox b) Right Mouse Button BizTalk Pipeline Components section in the toolbox. c) Select Choose Items.. in the pop-up menu. d) In the Choose ToolBox Items dialog, select the BizTalk Pipeline Components tab. e) Find the ODBC File decoder in the list and select it and hit OK. f) The ODBC File Decoder should be added to your Toolbox 4) Drag the ODBC File decoder from the toolbox to the Decode section of your Receive Pipeline. Click on the ODBC File decoder in your pipeline and go to the Properties window in VS2005. The properties for the Pipeline can now be set, or a Receive Port/Receive Location can be created that uses this pipeline, and the properties can be set/overridden for the pipeline at that point (Per Instance Pipeline Configuration in the BizTalk Server 2006 Administration Console). For instructions on how to set the properties, a description will show up for each property in the VS2005 property window. Also go to : http://objectsharp.com/blogs/matt/archive/2006/01/29/3778.aspx for instructions on how to set the properties to parse a DBF or Excel file in the pipeline. 5) Deploy the BizTalk project that contains the Receive Pipeline 6) Create a Receive Port/Receive Location to receive a DBF or Excel file. Configure the Receive Location to use the receive pipeline. Note: You can configure the properties for the ODBC File decoder custom component in the BizTalk Server 2006 administration console (Per Instance Pipeline Configuration). 7) Create a Send Port that subscribes to the messages. For example, create a filter on the Send Port that subscribes to the messages from the Receive Port/Receive Location created in 6). This send port should be using the PassThrough Pipeline. The filter might look something like the below: BTS.ReceivePortName == MyReceivePortNameHere 8) Test using your own Excel or DBF files, or there are a couple of test files in: C:\ODBCCustomPipe\Files. An XML version of the DBF and Excel files should be dropped to the configured Send Port from Step 7). 9) If you want to create a Schema from the produced XML Files. a) Get a copy of the XML Files that the Send Port generated. b) In a BizTalk Project, add Generated Items, choose the Generate Schemas/Well Formed XML and choose the XML file that was dropped off by the send port. 10) If you need the MessageType property set on your parsed XML messages. a) Build and Deploy the BizTalk project that contains the Schemas from Step 9) b) Go back and modify your Receive Pipeline from step 3) and add a XML disassembler component to your Disassemble stage of your pipeline. Note: (You do not have to set any properties on it) c) Redeploy the BTS project that contains the receive pipeline. Note: (A Host Instance Restart is required) d) You can then go back to your send ports from Step 7) and change the Filter condition to something like below: BTS.MessageType == http://DBF#Root