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:
Die Nachricht wird von den Komponenten des Lernprogramms wie folgt verarbeitet:
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.
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.
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.
Die Empfangspipeline erzeugt als Antwort auf den EDI-Austausch eine 997-Bestätigung, die in der MessageBox abgelegt wird.
Der Send_Payload_EdiXml statischen unidirektionalen Sendeports übernimmt die EDI-Nutzlast aus der MessageBox und filtert nach BTS. MessageType-Kontexteigenschaft.
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.
Der Send_Async_MDN dynamischen Sendeports übernimmt den asynchronen MDN aus der MessageBox und filtert nach der Kontexteigenschaft EdiIntAS.IsAS2AsynchronousMdn.
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.
Der Send_Async_997 Sendeports übernimmt den 997 aus der MessageBox und filtert nach dem BTS. MessageType-Kontexteigenschaft.
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
Schritt 2: Erstellen und Bereitstellen des X12-Beispielschemas
Schritt 3: Konfigurieren einer Partei und eines Geschäftsprofils für eine Organisation
Schritt 4: Konfigurieren einer Partei und eines Geschäftsprofils für einen Handelspartner
Schritt 9: Konfigurieren des Sendeports für die EDI-Nutzlast
Schritt 10: Konfigurieren der X12- und AS2-Handelspartnervereinbarung