Running BizTalk 2013r2, I have a send port for a custom pipeline. The first component in the pipeline is the standard "Flat file assembler" component. All properties for this are as default except for "DocumentSpecName" which I have given as http://BTS.GO.Store6.Schemas.BT.TransactionHeader_FF#TransactionHeader
I have checked that this schema is deployed only once by checking the admin console running the following SQL Query:
Select msgtype, assemblyid, clr_namespace, clr_assemblyname
from bt_documentspec
where msgtype = 'http://BTS.GO.Store6.Schemas.BT.TransactionHeader_FF#TransactionHeader'
This select returns the following single row:
http://BTS.GO.Store6.Schemas.BT.TransactionHeader_FF#TransactionHeader 7517 BTS.GO.Store6.Schemas.BT BTS.GO.Store6.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0a9764041befeb8b
I have checked in the .Net4 GAC and can confirm that the PublicKeyToken of the assembly BTS.GO.Store6.Schemas v1 is 0a9674041befeb8b
I have tried:
- Undeploying the application and ensuring all relevant assemblies are removed from .Net4 GAC
- Checked the assembly doesn't exist in the old GAC
- Rebooting dev laptop on which I running BizTalk
- Deploying to a separate test server - I get the same problem here!
It may be worth adding that the same assembly contains a different flat file schema for "Customer". I have a different send port which sends out through the same custom pipeline component - this one works just fine!
Can anyone suggest what else I can do to try to resolve?
Problem was my confused state!
We need to use the DocumentSpecName when disassembling, otherwise BizTalk wouldn't know which flat file schema to use. However, there's no need to use it on a send to assemble the FF message because BizTalk can determine the schema to use from the message it's provided with - the XML representation of the FF produced by the map