Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm richten Sie eine Lösung ein, die EDIINT/AS2-codierte Nachrichten über einen HTTP-Transport empfängt und sendet.
Funktionsweise der Lernprogrammlösung
Die Lösung wird folgende Aktionen durchführen:
Empfangen einer AS2-Nachricht von einem Partner (Fabrikam)
Geben Sie eine MDN-Antwort asynchron an den Partner zurück
Verarbeiten der EDI-Nutzlast der AS2-Nachricht
Zurückgeben einer Bestätigung von 997 an den Partner (Fabrikam) über AS2
Leiten Sie eine XML-Datei mit der Nutzlast der EDI-Nachricht an eine Back-End-Anwendung der Heimorganisation (Contoso) weiter.
Hinweis
Diese Lösung verwendet keine Signierung oder Verschlüsselung, um die Sicherheit von AS2-Nachrichten sicherzustellen.
Lernprogrammkomponenten
Diese Lösung verwendet Folgendes:
Ein BTS Http Receive ISAPI-Filter zum Empfangen der AS2/EDI-Nachricht vom Absender (/Contoso/BTSHTTPReceive.dll).
Eine ASPX-Webseite, die den Partner simuliert, indem sie eine 997-Bestätigung und ein MDN (http://localhost/Fabrikam/Default.aspx) zurückgibt.
Eine Projektdatei, die Sie zum Bereitstellen eines 864-Schemas und anderer Schemas (Schemas.btproj) verwenden.
Ein unidirektionaler HTTP-Empfangsort, um die EDI-Datei zu empfangen (Receive_AS2). Dieser Empfangsort verwendet die Standard-AS2EdiReceive-Pipeline, die den AS2 Decoder und den EDI Disassembler umfasst.
Ein dynamischer HTTP-Sendeport zum Rückversand eines asynchronen MDN (Send_Async_MDN). Dieser Sendeport verwendet die AS2Send-Pipeline, die den AS2 Encoder enthält.
Ein statischer, unidirektionaler DATEI-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 unidirektioneller HTTP-Sendeport, um eine Bestätigung von 997 an den Partner über AS2 (Send_Async_997) zurückzugeben. Dieser Sendeport verwendet die AS2Send-Pipeline, die den AS2-Encoder enthält, aber keinen Bedarf für den EDI-Assembler hat.
Eine Projektdatei, die Sie zum Erstellen einer Anwendung verwenden, um die EDI-Datei vom Fabrikam-Partner an BizTalk (Sender.csproj) zu senden.
Nachrichtenfluss
Der Nachrichtenfluss in der abgeschlossenen Lösung wird wie in der folgenden Abbildung dargestellt:
Die Lernprogrammkomponenten verarbeiten die Nachricht wie folgt:
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 Contoso-Verzeichnis.
Hinweis
Die Ereignisse in dieser Liste können in der angezeigten Reihenfolge nicht auftreten.
Die Testnachricht ist X12_00401_864.edi in \Program Files\Microsoft BizTalk Server 20xx\SDK\AS2 Tutorial.
Der unidirektionale Empfangsstandort Receive_AS2 empfängt die EDI-Nachricht von Fabrikam, wobei die BTSHTTPReceive.dll ISAPI-Erweiterung verwendet wird, um die Datei aus dem virtuellen Verzeichnis Contoso abzurufen. Die Empfangspipeline decodiert die AS2-Nachricht, zerlegt den EDI-Datenaustausch und dann wird die XML-Nachricht in das MessageBox-Objekt abgelegt.
Die Empfangspipeline generiert einen MDN für die AS2-Nachricht, und da der MDN als asynchron eingerichtet ist, legt die Empfangspipeline den MDN in das MessageBox-Postfach ab.
Die Empfangspipeline generiert als Antwort auf den EDI-Austausch eine 997-Bestätigung und legt die 997 in die Nachrichtenbox hinein.
Die Send_Payload_EdiXml statische unidirektionale Sendeport holt die EDI-Nutzlast aus dem MessageBox-Postfach ab und filtert nach der BTS.MessageType-Kontexteigenschaft.
Der Nutzlast-Sendeport sendet die XML-Datei, die die EDI-Nutzlast enthält, an die Back-End-Contoso-Anwendung, dargestellt durch den Ordner \_EDIXMLToContoso. Dieser Sendeport verwendet eine PassThruTransmit-Sendepipeline.
Der dynamische Sendport Send_Async_MDN ruft den asynchronen MDN aus der MessageBox ab, indem nach der Kontexteigenschaft EdiIntAS.IsAS2AsynchronousMdn gefiltert wird.
Der MDN-Sendeport gibt den MDN an den Ordner \_MDNToFabrikam zurück. Da es sich um einen dynamischen Sendeport handelt, wird die Adresse in der Zeile "Receipt-Delivery-Option" in der Kopfzeile der Nachricht (http://localhost/Fabrikam/Default.aspx?Destination=_MDNToFabrikam) verwendet, um die Nachricht an den Ordner "\_MDNToFabrikam" weiterzuleiten.
Der Send_Async_997 Sendeport nimmt die 997 aus der MessageBox ab und filtert auf die BTS.MessageType-Kontexteigenschaft.
Der 997-Sendeport verwendet den HTTP-Transport, um die 997-Nachricht, die von der EdiReceive-Empfangspipeline generiert wurde, an den Ordner \_997ToFabrikam zu senden. Der Sendeport sendet die Nachricht mithilfe des URI http://localhost/Fabrikam/Default.aspx?Destination=_997ToFabrikaman die Fabrikam-default.aspx-Seite. Die default.aspx Seite sendet dann die 997 an den Ordner "\_997ToFabrikam".
Um dieses Lernprogramm zu erledigen, sollten Sie sich mit Folgendem auskennen:
BizTalk Server-Pipelines und Pipelinekomponenten
HTTP-Adapter
Empfangen von Ports und Standorten
Senden von Ports
In diesem Abschnitt
Schritt 2: Erstellen und Bereitstellen des X12-Beispielschemas
Schritt 3: Konfigurieren eines Party- und Unternehmensprofils für Ihre Organisation
Schritt 4: Konfigurieren eines Party- und Geschäftsprofils für Ihren Handelspartner
Schritt 10: Konfigurieren des X12- und AS2-Vertriebspartnervertrags