Eigene Functoide für den BizTalk zu entwickeln ist ziemlich easy. Die Dokumentation mit den Beispielen ist OK und ausreichend.
Trotzdem gibt es ein paar Dinge die man im Eifer des Gefechtes schnell mal übersieht.
- Das Assembly mit den Functoiden braucht eine GUID. Diese einfach per Attribut [assembly: Guid("...")] in die AssemblyInfo.cs einbinden.
- Das Assembly in den GAC kopieren.
- Das Assembly ins Verzeichnis "Microsoft BizTalk Server 2004/Developer Tools/Mapper Extensions" kopieren.
Typische Fehlermeldung
Vergisst man letzteres kommt es beim Testen einer Map zu einer Fehlermeldung:
Exception Caught:
Mapper Compiler: Functoid not found: guid ({..})
with functoid id (..).
Automatisierungen mittels Post-Build-Events
Punkte 2.) und 3.) lassen sich gut über Post-Build-Events realisieren
copy $(TargetPath) "C:/Program Files/Microsoft BizTalk Server 2006/Developer Tools/Mapper Extensions"
"C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin/gacutil" -i $(TargetPath)