Freigeben über


Fehlerbehandlung (Ordner für BizTalk Server-Beispiele)

Dieses Beispiel zeigt, wie Fehlerbehandlungsfunktionen für die CBR-Anwendung (Content-Based Routing, inhaltsbasiertes Routing) erstellt werden.

Voraussetzungen

Zum Ausführen des Beispiels wird empfohlen, Microsoft Office InfoPath 2010 oder höher installiert zu haben. Sie können das Beispiel ohne InfoPath ausführen. In diesem Fall können Sie jedoch nicht die Ausgabenberichte und und die Übermittlung der Ausgabenberichte über den HTTP-Adapter anzeigen.

Ziel des Beispiels

Das Beispiel implementiert einen Teil eines Verarbeitungssystems für Ausgabenberichte. Dieses Beispiel führt die folgenden Aufgaben aus:

  1. Definieren eines Ausgabenberichtschemas, das Informationen zu einem Ausgabenbericht und den einzelnen Antragstellern sowie den Abteilungsnamen enthält.

  2. Bereitstellen der Übermittlung des Ausgabenberichts über ein Verzeichnis oder einen Webdienst mithilfe von InfoPath.

  3. Erhöht die Eigenschaften Department und correlationID im Nachrichtendokument, sodass sie in einem Portfilter zum Steuern des Routings verwendet werden können.

  4. Weiterleiten von Ausgabenberichten, die zur Marketingabteilung gehören, an eine Datei in einem Verzeichnis, sodass die Übermittlung an das Back-End-System der Abteilung simuliert wird.

  5. Generieren einer Fehlernachricht für Ausgabenberichte, die zu anderen Abteilungen als der Marketingabteilung gehören. Die Fehlernachricht enthält Informationen zum Fehler einschließlich Fehlercode und Fehlerbeschreibung.

  6. Leitet die Fehlernachrichten für die Korrektur und erneute Übermittlung an eine Empfängerperson weiter (an einen Geschäftsbenutzer oder einen Anwendungsoperator).

  7. Leitet erneut übermittelte Ausgabenberichte basierend auf der Abteilung wie oben beschrieben weiter.

    Die meisten dieser Aufgaben werden mithilfe eines BizTalk-Orchestrierungszeitplans ausgeführt.

Wie dieses Beispiel gestaltet ist und warum

Der Entwurf basiert auf den standardmäßigen Senden- und Empfangen-XML-Pipelines, eigenschaftenaufstufung, Abonnementfiltern und Orchestrierungszeitplänen in BizTalk Server, um Nachrichten weiterzuleiten. Entwurfselemente und deren jeweiliger Zweck sind in der folgenden Tabelle zusammengefasst.

Entwurfselement Gründe für die Auswahl
Standardmäßige XML-Empfangspipeline – Die XMLReceive-Pipeline unterstützt die Eigenschaftsaufstufung. die PassThruReceive-Pipeline nicht.
- Die eingehende Nachricht ist bereits im XML-Format und erfordert keine Verarbeitung über die grundlegende Disassemblierung und Die Auflösung von Parteien hinaus.
Routing für fehlerhafte Nachrichten - Empfangen von Ports anhalten fehlerhafte Nachrichten und generieren standardmäßig eine negative Bestätigung. Wenn das Routing aktiviert ist, versucht BizTalk Server, jede Nachricht, die bei der Verarbeitung fehlschlägt, an eine abonnierende Anwendung (z. B. einen anderen Empfangsport oder einen Orchestrierungszeitplan) weiterzuleiten.
Eigenschaftsaufstufung – BizTalk Server von Eigenschaftenfeldern abhängig ist, um das Routing zu erledigen. Gekennzeichnete Felder werden von Orchestrierungen verwendet und können nicht für das Routing verwendet werden.
Abonnementfilter – Der Abonnementfilter führt das Routing durch, indem Nachrichten erfasst werden, die ein oder mehrere Kriterien basierend auf Eigenschaftenfeldern erfüllen.
BizTalk-Orchestrierungszeitplan – Bietet die Möglichkeit, informationen zu fehlerhaften Nachrichten hinzuzufügen.
– Ermöglicht das Routing fehlerhafter Nachrichten an einen dedizierten Ort für menschliches Eingreifen.
– Verarbeitet erneut übermittelte Spesenabrechnungen.
XMLTransmit – Führt eine einfache Assembly ausgehender XML-Nachrichten aus. Die PassThruTransmit-Pipeline stellt keine weitere Unterstützung zur Verfügung.

Speicherort dieses Beispiels

Dieses Beispiel befindet sich unter <Samples Path>\Messaging\ErrorHandling\.

Die folgende Tabelle enthält eine Liste der Dateien für dieses Beispiel.

Datei 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 Internetinformationsdienste (Internet Information Services, IIS).
ErrorHandling.sln Visual Studio-Projektdatei für das Beispiel.
ErrorHandlingBinding.xml Bindungsdatei für das Beispiel.
Setup.bat Dient zum Erstellen und Initialisieren dieses Beispiels.
Expense Report – John Doe.xml InfoPath-Dokument für den Ausgabenbeispielbericht.
Invalid Expense Report – John Doe.xml InfoPath-Dokument für den Ausgabenbeispielbericht mit ungültigen Daten.
Im Ordner ErrorHandler:

ErrorHandler.btproj
BizTalk-Projekt für die Orchestrierung.
Im Ordner ErrorHandler:

ResubmitLogic.odx
Die Orchestrierung, die nicht verarbeitete Nachrichten abonniert, diese zur Korrektur an eine Empfängerperson sendet und die korrigierten Nachrichten dann erneut an den Server für das Routing übermittelt.
Im Ordner ErrorHandler:

SuspendMessage.odx
Die Orchestrierung, die zum Anhalten von Nachrichten verwendet wird, die nicht in der Fehlerbehandlungsorchestrierung verarbeitet werden können.
Im Ordner InfoPathForms:

Expense Report.xsn

Expense Report - Resubmit.xsn
InfoPath-Formular für den Ausgabenbericht und Formular zum Anzeigen und erneuten Übermitteln nicht verarbeiteter Nachrichten.
Im Ordner PipelinesAndSchemas:

ExpenseReportSchema.xsd
Das XML-Schema für das Ausgabenberichtdokument.
Im Ordner PipelinesAndSchemas:

PipelinesAndSchemas.btproj
Das BizTalk-Projekt für das Beispiel.
Im Ordner PipelinesAndSchemas:

PropertySchema.xsd
Eigenschaftenschema für das Beispiel.

Verwenden dieses Beispiels

Dieses Beispiel stellt einen Ausgangspunkt für das Erstellen einer eigenen Fehlerbehandlungsprozedur zur Verfügung.

Erstellen und Initialisieren dieses Beispiels

So erstellen und initialisieren Sie das Beispiel „Compose“

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Samples Path>\Messaging\ErrorHandling

  2. Führen Sie Setup.bataus, der die folgenden Aktionen ausführt:

    • Erstellt drei Ordner: ExpenseReportIn, ExpenseReportOut und ResubmittedReportIn unter dem folgenden Pfad:

      <Samples Path>\Messaging\ErrorHandling

    • Kopiert und veröffentlicht die InfoPath-Formulare Expense Report.xsn und Expense Report – Resubmit.xsn in den Ordner C:\Temp\InfoPathForms.

    • Kompilieren der Visual Studio-Projekte für dieses Beispiel.

    • Erstellt ein virtuelles Verzeichnis namens ExpenseReports.

    • Erstellt eine neue BizTalk-Anwendung namens Fehlerbehandlungsbeispiel und stellt die Beispielassemblys darin bereit.

    • Erstellt und bindet die BizTalk Server Empfangsspeicherorte sowie die Sende- und Empfangsports.

    • Eintragen und Starten von Orchestrierungen, Aktivieren der Empfangsspeicherorte und Starten der Sendeports.

      Wenn Sie die Projekte 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 Beispielassemblys.

  3. Vergewissern Sie sich vor dem Ausführen dieses Beispiels, dass BizTalk Server während des Build- oder Initialisierungsprozesses keine Fehler gemeldet hat.

    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.

  4. Wenn Sie Internetinformationsdienste (IIS) 7.0 verwenden, müssen Sie zusätzliche Konfigurationsschritte ausführen, um die Einstellung für das virtuelle Verzeichnis anzupassen, das dem vom Beispiel verwendeten BizTalk Server HTTP-Empfangsspeicherort entspricht. Konfigurieren Sie IIS, indem Sie die folgenden Schritte ausführen:

    1. Erstellen Sie in IIS-Manager 7.0 einen neuen Anwendungspool für die Gruppe "Benutzer isolierter BizTalk-Hosts".

    2. Konfigurieren Sie den Anwendungspool so, dass er unter der Identität des BizTalk Server isolierten Hostbenutzers ausgeführt wird. (Sie können diesen Schritt überspringen, wenn Sie bereits einen Anwendungspool für andere BizTalk Server HTTP-Empfangsspeicherorte konfiguriert haben.)

    3. Konfigurieren Sie das virtuelle Verzeichnis ExpenseReport , um den im vorherigen Schritt erstellten HTTP-Empfangsanwendungspool zu verwenden.

      Wenn nicht bereits eine Webservererweiterung für die ISAPI-Erweiterung BTSHTTPReceive.dll vorhanden ist, erstellen und aktivieren Sie diese, indem Sie ihren Status auf Zugelassen festlegen. Dazu können Sie in IIS 7.0 die IIS-Verwaltungskonsole (entweder direkt unter Verwaltung oder über die Computerverwaltungskonsole) wie folgt verwenden:

    4. Erweitern Sie die Struktur Internetinformationsdienste-Manager .

    5. Klicken Sie auf den Ordner Webdiensterweiterungen .

    6. Klicken Sie im rechten Bereich des Verwaltungskonsole auf Neue Webdiensterweiterung hinzufügen.

    7. Klicken Sie im Dialogfeld Neue Webdiensterweiterung auf Hinzufügen.

    8. Klicken Sie im Dialogfeld Datei hinzufügen auf Durchsuchen , um die Datei <BizTalkInstallPath>\HttpReceive\BTSHTTPReceive.dllauszuwählen, und klicken Sie dann auf OK.

    9. Konfigurieren des virtuellen Verzeichnisses ExpenseReport für die Verwendung des lokalen Pfads \Programme (x86)\Microsoft BizTalk Server <VERSION>HTTPReceive

      Weitere Informationen finden Sie unter Konfigurieren von IIS für einen HTTP-Empfangsspeicherort.

Ausführen des Beispiels

Bevor Sie das Beispiel mit dem richtigen Ausgabenbericht ausführen, verwenden Sie das folgende Verfahren, um zu überprüfen, ob das Fallbeispiel „no errors“ ordnungsgemäß funktioniert.

So überprüfen Sie, ob das Fallbeispiel „no errors“ ordnungsgemäß funktioniert

  1. Öffnen Sie das InfoPath-Formular Expense Report - John Doe.xml. Sehen Sie sich das Feld Abteilung im Formular an. Das Feld sollte auf Marketing festgelegt sein.

  2. Klicken Sie in der oberen linken Ecke des InfoPath-Fensters auf Übermitteln , oder klicken Sie auf Spesenabrechnung erneut übermitteln. Warten Sie, bis ein Bestätigungsfenster angezeigt wird, das angibt, dass der Ausgabenbericht erfolgreich übermittelt wurde.

    ODER

    Kopieren Sie diese Datei, und fügen Sie sie in den Ordner ExpenseReportIn ein.

  3. Es sollte eine neue Datei angezeigt werden, die im Ordner ExpenseReportOut abgelegt wurde. Bei dieser Datei handelt es sich um den gleichen Ausgabenbericht, der während des vorherigen Schritts übermittelt wurde.

    Nachdem Sie das Fallbeispiel „no errors“ bestätigt haben, verwenden Sie das folgende Verfahren, um das Beispiel mit einem falschen Ausgabenbericht auszuführen und die Fehlerbehandlungsfunktion auszulösen.

So lösen Sie die Fehlerbehandlung aus

  1. Öffnen Sie das InfoPath-Formular Ungültige Spesenabrechnung – John Doe.xml. Sehen Sie sich das Feld Abteilung im Formular an. Dieses Feld ist auf einen ungültigen Wert festgelegt.

  2. Klicken Sie in der oberen linken Ecke des InfoPath-Fensters auf Übermitteln. Warten Sie, bis ein Bestätigungsfenster angezeigt wird, das angibt, dass der Ausgabenbericht erfolgreich übermittelt wurde.

    ODER

    Kopieren Sie diese Datei, und fügen Sie sie in den Ordner ExpenseReportIn ein.

  3. Es sollte eine neue Datei namens ErrorReport_<date_time>.xml im Ordner ExpenseReportOut abgelegt werden.

    Öffnen Sie diese Datei, und bestätigen Sie, dass es sich um den im vorherigen Schritt übermittelten Ausgabenbericht handelt, dem jedoch am Anfang die Fehlerinformationen hinzugefügt wurden.

  4. Ersetzen Sie den fehlerhaften Abteilungswert durch "Marketing", und klicken Sie dann in der oberen linken Ecke des InfoPath-Fensters auf Absenden .

    ODER

    Kopieren Sie diese Datei, und fügen Sie sie in den Ordner ResubmittedReportIn ein.

  5. Im Ordner ExpenseReportOut sollte eine neue Datei erstellt werden. Diese Datei ist der korrigierte Ausgabenbericht, der erneut an den Server übermittelt wurde.

Weitere Informationen

Verwenden des Routings für fehlerhafte Nachrichten
Messaging (Ordner für BizTalk Server-Beispiele)