Freigeben über


Empfängerseitige Verarbeitung einer eingehenden Nicht-EDI-Nachricht über AS2

Die mit BizTalk Server ausgelieferten AS2-Pipelines können verwendet werden, um eine EDI-Nachricht oder eine Nicht-EDI-Nachricht über den AS2-Transport zu verarbeiten. Für die zwei verschiedenen Typen von Nutzlasten werden unterschiedliche Pipelines verwendet. Mithilfe der AS2EdiReceive-Pipeline verarbeiten Sie eingehende EDI-Nachrichten über AS2, und mit der AS2Send-Pipeline senden Sie die zugeordnete MDN zurück (sofern aktiviert). Mithilfe der AS2Receive-Pipeline verarbeiten Sie eingehende Nicht-EDI-Nachrichten über AS2, und mit der AS2Send-Pipeline senden Sie die zugeordnete MDN zurück (sofern aktiviert). Bei der Nicht-EDI-Nachricht kann es sich um eine beliebige binäre Nutzlast handeln.

Die AS2-Nachricht wird von der AS2Receive-Empfangspipeline decodiert, diese führt dann die Disassemblierung für die AS2-Nachricht aus. Die MDN wird von einer AS2Send-Sendepipeline codiert. Sie können die AS2Receive- und die AS2Send-Pipeline in einen bidirektionalen HTTP-Sendeport vom Typ "Antwort anfragen" (für synchrone MDN) oder in einen unidirektionalen HTTP-Sendeport und einen unidirektionalen HTTP-Empfangsport (für asynchrone MDNs) einschließen. Wenn Sie eine Disassemblierung einer Nicht-EDI-Nutzlast durchführen müssen, müssen Sie dies in einer anderen Empfangspipeline tun, da BizTalk Server nur einen Disassembler in einer Empfangspipeline zulässt. Dies erfordert einen Loopback-Sendeport und einen Empfangsspeicherort (siehe Weiter unten im Abschnitt Verarbeiten der empfangenen Nicht-EDI-Nutzlast ).

Um einen Nicht-EDI-Austausch über AS2 zu empfangen, führt BizTalk Server die folgenden Schritte aus:

  • Verarbeiten der empfangenen AS2-Nachricht

  • Senden einer MDN

  • Verarbeiten der empfangenen Nicht-EDI-Nutzlast

Verarbeiten der empfangenen AS2-Nachricht

Der AS2-Decoder in der AS2Receive-Empfangspipeline verarbeitet eine eingehende AS2-Nachricht. Dazu wird die InboundHTTPHeaders Kontexteigenschaft verwendet, die der HTTP-Adapter aus den HTTP-Headern in der AS2-Nachricht erstellt. Diese Header umfassen die folgenden AS2-Header:

  • AS2-To

  • AS2-From

  • AS2-Version

  • Meldungs-ID

  • OriginalMessageID (nur für MDNs)

  • Disposition-Notification-To (wenn eine MDN angefordert wird)

  • Receipt-Delivery-Option (wenn eine MDN angefordert wird)

  • Signed-Receipt-MICalg (wenn eine MDN angefordert wird)

    Der AS2-Decoder stuft diese Header als Kontext der Nachricht hoch. Anschließend werden folgende Aktionen ausgeführt:

  • Auflösen der Vereinbarung, um die Eigenschaften zu bestimmen, die verwendet werden sollen, um die eingehende Nachricht zu verarbeiten. Weitere Informationen finden Sie unter Vereinbarungslösung für eingehende AS2-Nachrichten.

  • Authentifiziert den Absender über die AS2-From-Eigenschaft und die AS2-To-Eigenschaft.

    Hinweis

    Weitere Informationen zur Verarbeitung, die die AS2-Empfangspipelines für eingehende AS2-Nachrichten ausführen, finden Sie unter Verarbeiten einer eingehenden AS2-Nachricht.

Senden einer MDN

Wenn eine MDN aktiviert wurde, generiert die AS2Receive-Pipeline eine MDN und legt sie in der MessageBox ab. Die Art des Zurücksendens der MDN an den Absender der ursprünglichen Nachricht hängt davon ab, ob der AS2-Transport synchron oder asynchron ist.

Hinweis

Weitere Informationen zur Verarbeitung, die die AS2-Empfangspipelines für ausgehende MDNs ausführen, finden Sie unter Generieren eines ausgehenden MDNs.

Synchroner Modus

Wenn eine Nicht-EDI-Nachricht über AS2 im synchronen Modus gesendet wird, gibt BizTalk Server den MDN über diese synchrone Verbindung zurück und schließt dann die Verbindung. Die MDN wird von der AS2Receive-Pipeline generiert, von dieser Pipeline an die MessageBox weitergeleitet und dann automatisch von der AS2-Sendepipeline übernommen, die Teil des Anforderungsantwort-Empfangsports ist.

Asynchroner Modus

Wenn eine Nicht-EDI-codierte Nachricht über HTTP/HTTPS im asynchronen Modus gesendet wird, müssen einen Sendeport erstellen, um die MDN getrennt zurückzugeben. Handelt es sich um einen dynamischen Sendeport, verwendet der Sendeport die Adresse in der Receipt-Delivery-Notification-Zeile im Header der Nachricht, um die Nachricht an den Handelspartner weiterzuleiten. Handelt es sich um einen statischen Sendeport, verwendet der Sendeport die in den Porteigenschaften definierte Adresse. Dieser Sendeport abonniert den asynchronen MDN mithilfe eines Filterausdrucks EdiIntAS.IsAS2AsynchronousMDN==True . Bei der asynchronen Verarbeitung generiert die AS2Receive-Pipeline zusätzlich zur MDN eine HTTP-Antwort. Der Empfangsport gibt die HTTP-Antwort über die HTTP-Verbindung zwischen dem Empfangsport und der sendenden Partei an den ursprünglichen Absender zurück. Schließlich wird die Verbindung von der sendenden Partei geschlossen. Dies ist erforderlich, da die synchrone Verbindung nicht von der MDN geschlossen wird.

Verarbeiten der empfangenen Nicht-EDI-Nutzlast

Wenn eine nicht EDI-codierte Nachricht über AS2 empfangen wird und Sie die Nutzlast disassemblieren müssen, müssen Sie diesen Vorgang in einer anderen Empfangspipeline als der AS2Receive-Pipeline ausführen. Dies ist erforderlich, da BizTalk Server nur einen Disassembler in einer Empfangspipeline zulässt. Dieses Szenario erfordert einen Loopbackmechanismus und einen Empfangsspeicherort. Im ersten Schritt wird die AS2-Nachricht von der EDIReceive-Pipeline verarbeitet und im systemeigenen Format an die MessageBox gesendet. Im zweiten Schritt generiert eine Empfangspipeline XML-Daten aus dem systemeigenen Format der Nachricht.

BizTalk Server führt über AS2 BizTalk Server die folgende empfängerseitige Verarbeitung einer Nicht-EDI-Nachricht aus:

  • Die dem bidirektionalen Empfangsspeicherort für Anforderungsantworten zugeordnete AS2Receive-Empfangspipeline analysiert die AS2-Header aus der Nicht-EDI-Nachricht und leitet dann die Nicht-EDI-Nachricht an die BizTalk-MessageBox weiter.

  • Ein Loopback-Sendeport (FILE oder MSMQ) wählt die Nicht-EDI-Nachricht aus dem MessageBox-Objekt ab, da er nach der BizTalk-Eigenschaft IsAS2PayloadMessage == Truefiltert. Die Nachricht wird von der diesem Sendeport zugeordneten PassThruTransmit-Sendepipeline im Nicht-EDI-Format übergeben und an einen Ordner oder eine MSMQ-Warteschlange weitergeleitet.

  • Die Nachricht wird von ein Loopbackempfangsspeicherort abgerufen. Von der dem Loopback-Empfangsspeicherort zugeordneten Empfangspipeline wird aus der Nicht-EDI-Nachricht eine XML-Nachricht generiert und an die MessageBox weitergeleitet.

  • Wenn die Nachricht zu einer Back-End-Anwendung weitergeleitet werden soll, nimmt ein Sendeport die XML-Nachricht auf und leitet sie an die Anwendung weiter.

Weitere Informationen

Empfangen von AS2-Nachrichten in BizTalk Server
Absenderseitige Verarbeitung einer ausgehenden EDI-Nachricht über AS2