Tutorial 3: AS2-Tutorial

In diesem Lernprogamm richten Sie eine Lösung ein, die EDIINT/AS2-codierte Nachrichten über einen HTTP-Transport empfängt und sendet.

Funktionsweise der Lösung in diesem Lernprogramm

Die Lösung führt folgende Schritte aus:

  • Empfangen einer AS2-Nachricht von einem Partner (Fabrikam)

  • Asynchrones Zurückgeben einer MDN-Antwort an den Partner

  • Verarbeiten der EDI-Nutzlast der AS2-Nachricht

  • Zurückgeben einer 997-Bestätigung an den Partner (Fabrikam) über AS2

  • Leiten einer XML-Datei mit der Nutzlast der EDI-Nachricht an eine Back-End-Anwendung der eigenen Organisation (Contoso)

    Hinweis

    Bei dieser Lösung wird keine Signierung oder Verschlüsselung zum Gewährleisten der Sicherheit von AS2-Nachrichten verwendet.

    Komponenten des Lernprogramms

    In dieser Lösung wird Folgendes verwendet:

  • Ein BTS-HTTP-Empfang-ISAPI-Filter zum Empfangen der AS2/EDI-Nachricht vom Absender (/Contoso/BTSHTTPReceive.dll).

  • Eine ASPX-Webseite zum Simulieren des Partners durch Zurückgeben einer 997-Bestätigung und eines MDN (http://localhost/Fabrikam/Default.aspx).

  • Eine Projektdatei, die Sie zum Bereitstellen eines 864-Schemas und anderer Schemas (Schemas.btproj) verwenden.

  • Ein unidirektionales HTTP-Empfangsspeicherort zum Empfangen der EDI-Datei (Receive_AS2). Dieser Empfangsspeicherort verwendet die AS2EdiReceive-Standardpipeline, die den AS2-Decoder und EDI-Disassembler enthält.

  • Ein dynamischer HTTP-Sendeport zum Zurückgeben eines asynchronen MDN (Send_Async_MDN). Dieser Sendeport verwendet die AS2Send-Pipeline, die den AS2-Encoder enthält.

  • Ein statischer unidirektionalen FILE-Sendeport, um die EDI-Nutzlast in einer XML-Datei an einen Back-End-Ordner (Send_Payload_EdiXml) weiterzuleiten. Dieser Sendeport verwendet die PassThruTransmit-Sendepipeline.

  • Ein statischer unidirektionalen HTTP-Sendeport, um eine 997-Bestätigung an den Partner über AS2 (Send_Async_997) zurückzugeben. Dieser Sendeport verwendet die AS2Send-Pipeline, die den AS2-Encoder enthält, benötigt jedoch nicht den EDI-Assembler.

  • Eine Projektdatei, die Sie zum Erstellen einer Anwendung zum Senden der EDI-Datei vom Fabrikam-Partner an BizTalk (Sender.csproj) verwenden.

    Nachrichtenfluss

    Die folgende Abbildung zeigt den Nachrichtenfluss in der vollständigen Lösung:

    AS2 Tutorial Nachrichtenfluss

    Die Nachricht wird von den Komponenten des Lernprogramms wie folgt verarbeitet:

  1. Sie verwenden die sender.exe-Anwendung, um die ursprüngliche EDI/AS2-Nachricht vom Partner Fabrikam an den BizTalk Server Computer zu senden. Sender.exe sendet die EDI-/AS2-Nachricht an das virtuelle Verzeichnis Contoso.

    Hinweis

    Die Ereignisse in dieser Liste erfolgen ggf. nicht in der gezeigten Reihenfolge.

    Die Testnachricht befindet sich in der Datei "X12_00401_864.edi" unter \Programme\Microsoft BizTalk Server 20xx\SDK\AS2-Lernprogramm.

  2. Der Receive_AS2 unidirektionalen Empfangsspeicherort empfängt die EDI-Nachricht von Fabrikam, wobei die BTSHTTPReceive.dll ISAPI-Erweiterung verwendet wird, um die Datei aus dem virtuellen Verzeichnis Contoso abzuholen. Die Empfangspipeline decodiert die AS2-Nachricht, disassembliert die ausgetauschten EDI-Daten und legt anschließend den XML-Code der Nachricht in der MessageBox ab.

  3. Die Empfangspipeline generiert eine MDN für die AS2-Nachricht. Da die MDN laut Einrichtung asynchron ist, legt die Empfangspipeline die MDN in der MessageBox ab.

  4. Die Empfangspipeline erzeugt als Antwort auf den EDI-Austausch eine 997-Bestätigung, die in der MessageBox abgelegt wird.

  5. Der Send_Payload_EdiXml statischen unidirektionalen Sendeports übernimmt die EDI-Nutzlast aus der MessageBox und filtert nach BTS. MessageType-Kontexteigenschaft.

  6. Der Sendeport für die Nutzlast sendet die XML-Datei mit der EDI-Nutzlast an die Back-End-Anwendung von Contoso, die durch den Ordner \_EDIXMLToContoso dargestellt wird. Dieser Sendeport verwendet eine PassThruTransmit-Sendepipeline.

  7. Der Send_Async_MDN dynamischen Sendeports übernimmt den asynchronen MDN aus der MessageBox und filtert nach der Kontexteigenschaft EdiIntAS.IsAS2AsynchronousMdn.

  8. Der MDN-Sendeport gibt die MDN an den Ordner \_MDNToFabrikam zurück. Da es sich um einen dynamischen Sendeport handelt, wird die Adresse in der Zeile Receipt-Delivery-Option im Header der Nachricht (http://localhost/Fabrikam/Default.aspx?Destination=_MDNToFabrikam) verwendet, um die Nachricht an den Ordner \_MDNToFabrikam weiterzuleiten.

  9. Der Send_Async_997 Sendeports übernimmt den 997 aus der MessageBox und filtert nach dem BTS. MessageType-Kontexteigenschaft.

  10. Der 997-Sendeport verwendet den HTTP-Transport zum Senden der 997-Bestätigung, die von der EdiReceive-Empfangspipeline erstellt wurde, an den Ordner \_997ToFabrikam. Der Sendeport sendet die Nachricht mithilfe des URI http://localhost/Fabrikam/Default.aspx?Destination=_997ToFabrikaman die Seite "Fabrikam default.aspx". Die Seite default.aspx sendet anschließend die 997-Bestätigung an den Ordner \_997ToFabrikam.

    Zur Durcharbeitung dieses Lernprogramms sollten Sie mit Folgendem vertraut sein:

  • BizTalk Server-Pipelines und -Pipelinekomponenten

  • HTTP-Adaptern

  • Empfangsports und -speicherorten

  • Sendeports

In diesem Abschnitt

Weitere Informationen

BizTalk Server-Tutorials