Freigeben über


FlatFileReceive (BizTalk Server-Beispiel)

Das FlatFileReceive-Beispiel veranschaulicht, wie Sie BizTalk Server verwenden können, um eine Flatfile in die entsprechende .xml-Datei zu verarbeiten.

Ziel des Beispiels

In diesem Beispiel wird der Ordner FFInput als Empfangsspeicherort konfiguriert. Wenn Sie eine Datei, z. B. die Beispieldatei FlatFileReceive_in.txt, in diesem Ordner ablegen, verarbeitet BizTalk Server die Nachricht in dieser Datei mithilfe der folgenden Schritte:

  1. Lesen der Nachricht aus der Eingabedatei im Ordner FFInput des Empfangsspeicherorts.

  2. In der Empfangspipeline, konvertiert die Flatfile-Disassemblerkomponente die Nachricht aus dem Flatfile-Format in die entsprechende XML-Nachricht.

  3. In der MessageBox-Datenbank wird die Nachricht an einen FILE-Sendeport weitergeleitet, der die XML-Nachricht in eine Datei im Ordner FFOutput des Sendeadapters schreibt.

Wie dieses Beispiel entworfen wird und warum

Das grundlegende Design in diesem Beispiel hängt weitgehend von der Beispielnachricht ab. Flatfile-Nachrichten müssen mithilfe des Flatfile-Disassemblers und eines Flatfile-Schemas in einer benutzerdefinierten Empfangspipeline disassembliert werden. Diese und weitere Entwurfselemente sind in der folgenden Tabelle zusammengefasst.

Entwurfselement Gründe für die Auswahl
Benutzerdefinierte Empfangspipeline – Die benutzerdefinierte Pipeline verwendet den Flatfile-Disassembler und ein Flatfileschema, um eingehende Bestellnachrichten zu übersetzen. Der Flatfile-Disassembler ist selbst keine Pipeline und kann nicht verwendet werden, wenn eine Empfangspipeline in der BizTalk Server-Verwaltungskonsole konfiguriert wird.
Flatfile-Schema – Definieren Sie alle Datensatz- und Feldmerkmale (einschließlich struktur) als XML-Schema und stellen Sie einen Mechanismus zum Definieren aller Flatfilemerkmale bereit, die erforderlich sind, um eine Flatfile-instance Nachricht in eine entsprechende XML-instance-Nachricht zu übersetzen (oder umgekehrt).
Abonnementfilter – Der Abonnementfilter führt das tatsächliche Routing durch, indem Nachrichten erfasst werden, die ein oder mehrere Kriterien basierend auf Eigenschaftenfeldern erfüllen.
XMLTransmit – Führt bei Bedarf eine einfache Assembly ausgehender XML-Nachrichten aus. Die PassThruTransmit-Pipeline stellt keine weitere Unterstützung zur Verfügung.

Diese Elemente werden kombiniert, um eine Lösung bereitzustellen, die Bestellungsnachrichten im Flatfile-Format vom Empfangsspeicherort annimmt und die sich ergebende XML-Darstellung in den Sendespeicherort schreibt.

Folgendes gilt für den Entwurf dieses Beispiels:

  • Das Flatfile-Schema (PO.xsd) enthält erweiterte Anmerkungen, die die Struktur der Flatfile-Bestellungsdatei beschreiben. Diese Dateien können manuell erstellt werden, einige von ihnen können jedoch auch mit dem Flatfile Schema-Assistenten generiert werden.

  • Das Flatfile-Schema verwendet für elementFormDefault den Wert Unqualified. Dies führt zu korrekten Ergebnissen, aber mit zusätzlichen und unerwarteten XML-Namespace-Qualifikationen (xmlns). Verwenden Sie für elementFormDefault den Wert Qualified, um dieses Problem zu umgehen.

  • XmlTransmit wird als Sendepipeline verwendet. Verwenden Sie die PassThruTransmit-Pipeline wenn Eigenschaftenherabstufung und andere Messagingverarbeitung im Sendeport nicht erforderlich ist.

Speicherort dieses Beispiels

<Samples Path>\Pipelines\AssemblerDisassembler\FlatFileReceive\

In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.

Datei(en) BESCHREIBUNG
Cleanup.bat Wird verwendet, um die Bereitstellung von Assemblys aufzuheben und die Assemblys aus dem globalen Assemblycache zu entfernen. Entfernt Sende- und Empfangsports. Entfernt nach Bedarf virtuelle Verzeichnisse von Microsoft Internetinformationsdienste (IIS).
FFReceivePipeline.btp BizTalk Server die Pipelinedatei mit der Komponente FlatFile Disassembler empfangen.
FlatFileReceive.btproj, FlatFileReceive.sln Projekt- und Projektmappendateien für dieses Beispiel.
FlatFileReceive_in.txt Beispieleingabedatei
FlatFileReceiveBinding.xml Wird für das automatisierte Setup verwendet, z. B. Portbindung.
PO.xsd Das Schema für die eingehende Flatfile-Datei.
Setup.bat Dient zum Erstellen und Initialisieren dieses Beispiels.

Verwenden dieses Beispiels

Verwenden Sie dieses Beispiel als Grundlage für eigene Flatfile-Verarbeitungslösungen. Sie können viele der in diesem Beispiel verwendeten Entwurfselemente erweitern und an Ihre Anforderungen anpassen.

Erstellen und Initialisieren dieses Beispiels

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Samples Path>\Pipelines\AssemblerDisassembler\FlatFileReceive

  2. Führen Sie die Datei "Setup.bat" aus, von der folgende Aktionen ausgeführt werden:

    • Erstellen des Eingabe- (FFInput) und des Ausgabeordners (FFOutput) für dieses Beispiel im folgenden Ordner:

      <Samples Path>\Pipelines\AssemblerDisassembler\FlatFileReceive

    • Kompilieren und Bereitstellen des Visual Studio-Projekts für dieses Beispiel.

    • Erstellen und Binden des BizTalk Server-Empfangsspeicherorts sowie der Sende- und Empfangsports.

      Hinweis

      In diesem Beispiel wird beim Erstellen und Binden von Ports die folgende Warnung angezeigt: Warning: Receive handler not specified for receive location "FlatFileReceive_RL"; updating with first receive handler with matching transport type. Sie können diese Warnungen sicher ignorieren. (Um möglichen Namensunterschieden in den Benutzerinstallationen Rechnung zu tragen, wurden der Hostname und der Empfangshandler in der Bindungsdatei ausgelassen.)

    • Aktiviert den Empfangsspeicherort und startet den Sendeport.

Hinweis

Sie sollten sicherstellen, dass von BizTalk Server während des Erstellungs- und Initialisierungsprozesses keine Fehler gemeldet wurden, bevor Sie dieses Beispiel ausführen.

Hinweis

Wenn Sie das Projekt in diesem Beispiel öffnen und erstellen möchten, ohne die Datei Setup.bat auszuführen, müssen Sie zunächst mit dem entsprechenden .NET Framework-Hilfsprogramm (sn.exe) ein Schlüsselpaar für starke Namen erstellen. Verwenden Sie dieses Schlüsselpaar zum Signieren der sich ergebenden Assembly.

Hinweis

Wenn Sie von "Setup.bat" vorgenommene Änderungen rückgängig machen möchten, führen Sie "Cleanup.bat" aus. "Cleanup.bat" müssen Sie ausführen, bevor "Setup.bat" ein zweites Mal ausgeführt wird.

Ausführen dieses Beispiels

  1. Speichern Sie eine Kopie der Datei FlatFileReceive_in.txt im Ordner FFInput.

  2. Beachten Sie die im Ordner FFOutput erstellte XML-Datei. Der Name der Ausgabedatei basiert auf der GUID der Nachrichten-ID. Diese Datei enthält die XML-Entsprechung der im Empfangsordner gespeicherten Flatfile-Datei.

In diesem Beispiel verwendete Klassen oder Methoden

Die Konfigurationsskripts Setup.bat und Cleanup.bat stützen sich auf die folgenden administrativen Skripts der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI):

  • Start Send Port\StartSendPort.vbs

  • Enable Receive Location\EnableRecLoc

  • Remove Send Port\RemoveSendPort

    Die Batchdateien für Setup und Cleanup verwenden BTSTask wie folgt:

  • BTSTask ImportBindings, um die Bindungsdatei anzuwenden und die Anwendung, Ports und Bindungen zu erstellen

  • BTSTask RemoveApp zum Entfernen der FlatFileReceiveApplication

Weitere Informationen