Subversion und Biztalk 2006 Projekte

Ein nützliches Tool um Biztalk Server 2006 Projekte mit Subversion zu verwalten ist Visual SVN. Zusätzlich zu den Software-Paketen Subversion und Tortoise lassen sich so sämtliche Projekte unter Visual Studio einfach verwalten – inklusive checkout und commits.

Übrigens können mit Visual SVN auch SSIS (Business Intelligence) Projekte ohne weiteres in die Versionsverwaltung eingeklinkt werden.

Empfangen von EMails mit Attachment und Speichern der angefügten Dateien unter ihrem ursprünglichen Namen

Das Empfangen von EMails ist mit dem POP3 Adapter des Microsoft Biztalk Server 2006 möglich. Zur Speicherung der beigefügten Dateien unter ihrem Originaldateinamen ist ein kleiner Umweg via einer Orchestration notwendig.

Folgende Prozessbestandteile sind zu definieren:

  1. Erstellung eines neuen Biztalk Projektes mit Hilfe von Visual Studio – Einfügen einer Orchestration
  2. Definition eines unidirektionalen Empfangports mit der Kommunikationsrichtung “Ich empfange Nachrichten immer auf diesem Port” und der Portbindung “Später angeben”
  3. Definition eines unidirektionalen Sendeports mit der Kommunikationsrichtung “Ich sende Nachrichten immer auf diesem Port” und der Portbindung “Später angeben”
  4. Definition des Prozessablaufes und der Variable nCount vom Typ Int32 (Startewert 1)
  5. Kompilieren und Bereitstellen der Orchestration
  6. Erstellen eines Empfangports vom Typ POP3 mit Hilfe des Biztalk Verwaltungsmanagement Tools – Konfiguration des Ports mit den Angaben Ihres POP3 Servers. Wichtig ist hier die Einstellung “MIME Decodierung anwenden” mit Wahr
  7. Erstellen eines Sendeports vom Typ File (z.B) mit Hilfe des Biztalk Verwaltungsmanagement Tools – Konfiguration des Ports. Wichtig ist hier die Verwendung des Makros %SourceFileName%
  8. Aktivieren der Ports, Bindung der Ports an die Orchestration
  9. Starten der Orchestration

cc cc receive pop3 messages

Der Prozessabschnitt GetCount ermittelt die Anzahl der angefügten Attachments und speichert diese in der Variable nCount

//Set the input message to a var of XLang Message type
oXMessage = In;
// Get count
nCount = oXMessage.Count;

Der Prozessabschnitt MessageAssignment wird in der Schleife aufgerufen und übergibt ein Attachment nach dem anderen an den Sende Port. Dabei ist es wichtig, dass der Original Dateiname via MIME.FileName an die File.ReceivedFileName Eigenschaft des SendePort übergeben wird, so dass mit dem Makro %SourceFileName% der Original Dateiname auch wieder verwendet werden kann.

//Get the n'th part and set to a new message
Out = oXMessage[n];
Out(FILE.ReceivedFileName) = Out(MIME.FileName);
// Add to count
n = n + 1

Download der Orchestration

%SourceFileName%

Makro %SourceFileName%

Der Original-Dateiname einer Datei, welche mit Hilfe eines File-Emfpangspeicherort aufgenommen wurde, kann mit dem Makro %SourceFileName% in einem Sende-Port wiederverwendet werden. Auf diese Weise kann z.B. eine Datei aus einem Verzeichnis mit demselben Namen in ein anderes Verzeichnis verschoben werden. Oder mit einem FTP Sendeport auf einen FTP Server hochgeladen werden. Dies kann sehr praktisch sein, wenn das Quellsystem (z.B. ein Warenwirtschaftssystem) eine Reportdatei mit einer strikten vom Besitzer des Ziel-FTP-Servers vorgebenen Namenskonvention ins Dateisystem schreibt.