Freigeben über


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

Die empfängerseitige Verarbeitung einer EDI-Nachricht über AS2 umfasst das Empfangen der AS2-Nachricht, das Senden einer MDN, das Verarbeiten der EDI-Nutzlast und das Senden von EDI-Bestätigungen (wenn aktiviert).

Die AS2EdiReceive-Empfangspipeline empfängt die AS2-Nachricht und disassembliert die EDI-Nutzlast in der AS2-Nachricht. Die AS2EDISend-Sendepipeline sendet eine MDN als Antwort auf die AS2-Nachricht und eine EDI-Bestätigung als Antwort auf die EDI-Nachricht. Sie können diese Pipelines in einem bidirektionalen HTTP-Sendeport vom Typ "Antwort anfragen" (für synchrone MDNs) oder in einer Kombination aus unidirektionalem HTTP-Sendeport und unidirektionalem HTTP-Empfangsport (für asynchrone MDNs) verwenden.

Um einen EDI-Austausch über AS2 zu erhalten, führen BizTalk Server die folgenden Schritte aus:

  • Verarbeiten der empfangenen AS2-Nachricht

  • Senden einer MDN

  • Verarbeiten der empfangenen EDI-Nutzlast

  • Senden einer EDI-Bestätigung

Verarbeiten der empfangenen AS2-Nachricht

Der AS2-Decoder in der AS2EdiReceive-Empfangspipeline verarbeitet die 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 Vereinbarungsauflösung für eingehende AS2-Nachrichten.

  • Authentifiziert den Absender mithilfe der AS2-From-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 AS2EdiReceive-Pipeline eine MDN und legt sie in der MessageBox ab.

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 EDI-Nachricht im synchronen Modus über AS2 gesendet wird, gibt BizTalk Server den MDN über diese synchrone Verbindung zurück und schließt dann die Verbindung. Da die Verbindung geschlossen wurde, können BizTalk Server keine EDI-Bestätigung (997, TA1 oder CONTRL) über diese Verbindung zurückgeben. EDI-Bestätigungen werden immer asynchron über AS2 gesendet.

Die MDN wird von der AS2EDIReceive-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 EDIINT/AS2-codierte Nachricht über HTTP/HTTPS im asynchronen Modus gesendet wird, müssen Sie einen Sendeport erstellen, um die MDN getrennt zurückzugeben. Sie können diesen Sendeport so konfigurieren, dass er sowohl asynchrone MDNs als auch EDI-Bestätigungen zurückgibt. 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 Adresse, die in den Porteigenschaften konfiguriert ist. Dieser Sendeport abonniert den asynchronen MDN mithilfe eines Filterausdrucks EdiIntAS.IsAS2AsynchronousMDN==True .

Bei der asynchronen Verarbeitung generiert die AS2EdiReceive-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.

Wenn BizTalk eine EDIINT/AS2-codierte Nachricht erfolgreich über HTTP/HTTPS transportiert, die Verarbeitung der EDI-codierten Nutzlast jedoch fehlschlägt, erhält der Absender der ursprünglichen Nachricht sowohl eine MDN zur erfolgreichen AS2-Verarbeitung als auch eine EDI-Bestätigung zum Fehlschlagen der EDI-Verarbeitung. Die EDI-codierte Nutzlast wird angehalten, und eine Fehlermeldung wird ausgegeben.

Verarbeiten der empfangenen EDI-Nutzlast

Wenn die Option Batchverarbeitung für eingehenden Datenverkehr für eine EDI-Vereinbarung auf Geteilter Austausch festgelegt ist, analysiert die AS2EdiReceive-Empfangspipeline, die dem bidirektionalen Empfangsspeicherort der Anforderungsantwort zugeordnet ist, die EDI-Nachricht in eine separate XML-Nachricht für jeden EDI-Transaktionssatz. Wenn die Option Eingehende Batchverarbeitung auf Austausch beibehalten festgelegt ist, analysiert die Empfangspipeline die EDI-Nachricht nicht.

Die Empfangspipeline leitet die XML-Transaktionssätze oder den beibehaltenen EDI-Austausch an die BizTalk MessageBox weiter.

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.

Hinweis

Dieser Sendeport kann von beliebigem Typ sein.

Senden der EDI-Bestätigung

Wurde eine EDI-Bestätigung aktiviert, generiert der EDI-Disassembler in der AS2EdiReceive-Empfangspipeline EDI-Bestätigungen (wenn aktiviert). Die EDI-Bestätigungen müssen von der AS2EdiSend-Sendepipeline über einen separaten unidirektionalen Sendeport gesendet werden.

Wenn Sie einen bidirektionalen Anforderung-Antwort-Empfangsport für EDI/AS2-Nachrichten einrichten, um ein synchrones MDN oder eine HTTP-Antwort zurückzugeben (im Fall eines asynchronen MDN), wird die Eigenschaft Route ACK to send pipeline on request/response receive port (festgelegt auf der Seite Lokale Hosteinstellungen der unidirektionalen EDI-Vereinbarung im Dialogfeld Vereinbarungseigenschaften ) ignoriert. Auch wenn diese Eigenschaft aktiviert ist, gibt die Sendepipeline entweder eine synchrone MDN oder eine HTTP-Antwort zurück, aber keine EDI-Bestätigung.

Weitere Informationen finden Sie unter Senden einer EDI-Bestätigung.

Weitere Informationen

Empfangen von AS2-Nachrichten in BizTalk Server