SQL Practice Blog – SQL Server, BizTalk und .NET Erfahrungen

BizTalk: Datumsformat dynamisch ändern

leave a comment »

Ich stand heute vor dem Problem in einer englischen BizTalk 2006 Umgebung das Datum (yyyy/MM/dd) aus einem Date Functoid in ein deutsches Datumformat (dd.MM.yyyy) umzuwandeln. Ich ging mit der Hoffnung, das es eine Konvertierungsmöglichkeit in dem Functoid gibt, an die Arbeit. Jedoch stellt sich diese Hoffnung schnell als Enttäuschung heraus.

Nun habe ich zwei Lösungswege gefunden welche ich euch näher vorstellen möchte. Der erste Lösungsweg geht über eine Zerlegung des Datumsstrings in mehrere Teile (Tag, Monat, Jahr) und einer neuen Verkettung zum richtigen Format. Hierfür werde ich als Quelle ein Date Functoid, zerlege diesen Datestring mit Hilfe von String Left, String Right und String Extract Functoids und verkette sie danach wieder neu mit einem String Concatenate Functoid welchen ich auf mein Field im Destinationen Schema mappe.

string_extract

Die zweite und in meinen Augen wesentlich elegantere Lösung, ist eine Scripting Komponente zu verwenden. Diese Scripting Komponente kann den Datestring per XSLT, C# oder VB.NET Code formatieren. Wenn ich als Quelle wieder ein Date Functoid verwenden würde, sähe das in der Map aus wie folgt:

date_script

Die Lösung per C# würde ich so implementieren, das ich die Möglichkeit habe mit einem Übergabe Parameter das Ausgabeformat zu bestimmen.

convert_code

Natürlich kann ich anstelle den Codes direkt in dem Scripting Functoid unterzubringen, auch ein Assembly, welches ich als Referenz in mein BizTalk Projekt einbinden und im GAC installieren muss, verwenden. So habe ich die Möglichkeit meinen Code mit Hilfe von Unit Tests zu entwickeln und zu kontrollieren.

Written by Robert Meyer

Januar 13, 2010 um 09:42

Veröffentlicht in BizTalk

Tagged with , , , , ,

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: