Freigeben über


Tutorial 3: AS2-Lernprogramm

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:

    AS2-Lernprogramms Nachrichtenablauf

    Die Lernprogrammkomponenten verarbeiten die Nachricht wie folgt:

  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 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.

  2. 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.

  3. 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.

  4. Die Empfangspipeline generiert als Antwort auf den EDI-Austausch eine 997-Bestätigung und legt die 997 in die Nachrichtenbox hinein.

  5. Die Send_Payload_EdiXml statische unidirektionale Sendeport holt die EDI-Nutzlast aus dem MessageBox-Postfach ab und filtert nach der BTS.MessageType-Kontexteigenschaft.

  6. 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.

  7. Der dynamische Sendport Send_Async_MDN ruft den asynchronen MDN aus der MessageBox ab, indem nach der Kontexteigenschaft EdiIntAS.IsAS2AsynchronousMdn gefiltert wird.

  8. 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.

  9. Der Send_Async_997 Sendeport nimmt die 997 aus der MessageBox ab und filtert auf die BTS.MessageType-Kontexteigenschaft.

  10. 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

Siehe auch

BizTalk Server-Lernprogramme