Senden von AS2-Nachrichten

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  AS2-Integration >

Senden von AS2-Nachrichten

Ein Auftrag, in dem eine AS2-Nachricht an einen entfernten Partner gesendet wird, ähnelt jedem beliebigen anderen FlowForce Server-Auftrag. Er kann Parameter erhalten, verschiedene Ausführungsschritte enthalten, im Rahmen eines Zeitplans oder bei Bedarf ausgeführt werden usw. In diesem Beispiel wird gezeigt, wie Sie einen einfachen AS2-Auftrag erstellen, mit dem eine EDIFACT-Datei an einen AS2-Server gesendet wird.

 

Voraussetzungen

Es muss ein AS2-Server verfügbar und so konfiguriert sein, dass er AS2-Nachrichten von HTTP-Clients akzeptiert (in diesem Fall fungiert FlowForce Server als HTTP-Client für den entfernten Server) .
Die Daten des entfernten Partners müssen in FlowForce Server hinzugefügt werden, siehe Konfigurieren von AS2-Partnern. Die Mindestvoraussetzungen für einen einfachen Verbindungstest sind, dass Sie einen Partner ohne Zertifikate definieren (falls dieser nicht verschlüsselte und nicht signierte Nachrichten akzeptiert). In diesem Fall müssen Sie nur die URL des Partners, den AS2-Partnernamen und den AS2-Namen Ihres Unternehmens kennen, um mit diesem Partner kommunizieren zu können.

 

Erstellen des Auftrags

Erstellen Sie auf die übliche Art einen neuen FlowForce Server-Auftrag (Klicken Sie in einem Container auf Erstellen | Auftrag erstellen, siehe auch Erstellen von Aufträgen). Fügen Sie als nächstes einen Ausführungsschritt hinzu, der die Funktion builtin_functionsystem/as2/send aufruft. Um diese Funktion schnell zu finden, klicken Sie in das Feld Funktion ausführen und geben Sie die ersten Buchstaben des Funktionsnamens ein, z.B::

ff_as2_create_job_1

 

Nachdem Sie die Funktion zum Auftrag hinzugefügt haben, wird ihre Struktur in die Seite geladen und die Felder für die erforderlichen Parameter stehen zur Verfügung. Um sicherzustellen, dass die AS2-Übertragung korrekt erfolgt, definieren Sie die folgenden Parameter:

 

Partner - Dieses Feld muss ein zuvor konfiguriertes Partnerobjekt referenzieren, siehe Konfigurieren von AS2-Partnern. Klicken Sie in das Feld, um zum Partnerobjekt zu navigieren.
Nachricht - Dieses Feld muss einen FlowForce-Ausdruck enthalten, der den in die Nachricht zu inkludierenden Stream öffnet. Um z.B. die EDIFACT-Datei aus dem Ordner C:\as2\orders.edi mit dem Header vom Inhaltstyp application/EDIFACT zu senden, geben Sie den folgenden Ausdruck ein:

 

stream-open("c:\as2\orders.edi", "application/EDIFACT")

 

Nähere Informationen zu Ausdrücken in FlowForce finden Sie unter Die FlowForce-Ausdrücke. Bei der Quelldatei (sei es EDI oder XML) kann es sich auch um eine mit MapForce (in einem früheren Schritt, bei dem ein zuvor auf FlowForce Server bereitgestelltes Mapping ausgeführt wird) generierte Datei handeln, siehe AS2-Integration mit MapForce und MapForce Server.

 

Nachrichten-ID - In diesem Feld muss der Wert für das Message-ID Header-Feld in Form eines String bereitgestellt werden. Um diesen Wert zu generieren, rufen Sie die Ausdrucksfunktion new-message-id, wie unten gezeigt, auf.

 

Bei Fehler abbrechen - Ein Auftrag kann aus verschiedenen Ausführungsschritten und nicht nur demjenigen, in dem die AS2-Nachricht gesendet wird, bestehen. So können Sie z.B. nach dem aktuellen Ausführungsschritt andere Ausführungsschritte definieren, um die vom Partner retournierte MDN auf irgendeine Art zu verarbeiten. Setzen Sie diesen Parameter auf TRUE (aktiviert), um die weitere Ausführung des Auftrags abzubrechen, wenn der aktuelle Ausführungsschritt fehlschlägt. Wenn der Parameter Bei Fehler abbrechen TRUE (aktiviert) ist und der aktuelle Schritt nicht ausgeführt werden kann, werden keine weitere Ausführungsschritte durchgeführt und der gesamte Auftrag wird abgebrochen, siehe auch Sequenzielle Verarbeitung von Schritten.

 

In der Abbildung unten sehen Sie einen Beispielausführungsschritt, der einen Partner namens "Apollo" referenziert und im Message Body mit Hilfe eines FlowForce Server-Ausdrucks eine EDIFACT-Datei bereitstellt:

ff_as2_create_job_2

 

Wie oben erwähnt, kann ein FlowForce-Auftrag bei Bedarf oder nach einem Zeitplan gestartet werden. Informationen zu verschiedenen konfigurierbaren Auftrags-Triggern finden Sie unter Verwalten von Triggern. In diesem Beispiel legen wir fest, dass der AS2-Auftrag über Aufruf über den Browser als Web-Dienst ausgeführt wird, wie unten gezeigt. Der Name des Web-Diensts ist in diesem Beispiel "sendAS2", könnte aber auch anders lauten. Nähere Informationen dazu finden Sie unter Bereitstellen von Aufträgen als Web-Dienste.

ff_as2_create_job_3

 

Bevor Sie schließlich versuchen, den Auftrag zu speichern, geben Sie die Anmeldeinformationen für das Betriebssystemkonto, unter dem FlowForce Server ausgeführt werden muss, an (Beachten Sie, dass dies nicht dieselben Anmeldeinformationen sind, mit denen Sie sich auf FlowForce Server anmelden). In diesem Beispiel werden die Anmeldeinformationen direkt im Auftrag eingegeben; sie können jedoch auch separat in einem Anmeldedatensatz gespeichert werden, sodass Sie von einem Auftrag aus einfach nur ausgewählt (referenziert) werden müssen, siehe auch Funktionsweise von Anmeldeinformationen.

ff_as2_create_job_4

 

Sie können den Auftrag nun durch Klicken auf die Schaltfläche Speichern am unteren Rand der Seite speichern.

 

FlowForce Server führt Datenintegritätsüberprüfungen durch und verhindert das Speichern eines Auftrags, wenn er nicht ordnungsgemäß konfiguriert ist. Oft werden Fehler durch fehlerhafte, als Parameterwerte bereitgestellte Ausdrücke, verursacht, siehe Behandlung von Datentypen in Schritten. Wenn Sie ein FlowForce Server-Neuling sind, lesen Sie dazu die Abschnitte Die FlowForce-Ausdrücke und Beispiele zur Konfiguration von Aufträgen.

 

Anmerkung:Wenn Sie mehrere, sehr ähnliche Aufträge erstellen müssen, können Sie FlowForce-Aufträge auch ganz leicht duplizieren und dadurch Zeit sparen, siehe Duplizieren von Aufträgen.

 

Ausführen des Auftrags

Da dieser Auftrag in Form eines Web-Diensts bereitgestellt wurde, können Sie ihn starten, indem Sie die URL des Web-Diensts in die Adresszeile Ihres Browsers eingeben. Die URL des Web-Diensts besteht aus der URL, unter der der FlowForce Server-Dienst ausgeführt wird (z.B. http://localhost:4646/) plus dem Teil service/sendAS2, wobei sendAS2 der zuvor von uns definierte Name des Web-Diensts ist. Die endgültige URL lautet daher: http://localhost:4646/service/sendAS2. Wenn Sie den FlowForce Server-Dienst so konfiguriert haben, dass er auf einem anderen Host und Port ausgeführt wird, müssen Sie diese URL entsprechend anpassen, siehe Definieren der Netzwerkeinstellungen. In der Abbildung unten sehen Sie das Ergebnis einer erfolgreichen Ausführung im Browser:

ff_as2_create_job_5

 

Die Ergebnisse der Ausführung des Auftrags können auch über das FlowForce Server-Log angezeigt werden, siehe Anzeige des Auftrags-Logs.

 

Verarbeiten des Ergebnisses des AS2-Auftrags

Oben wurde beschrieben, wie Sie einen einfachen Auftrag erstellen, der aus nur einem Ausführungsschritt besteht, in dem die Funktion builtin_function/system/as2/send aufgerufen wird. In einem echten Anwendungsszenario besteht Ihr FlowForce Server-Auftrag jedoch wahrscheinlich aus mehreren Schritten.

 

Beachten Sie, dass es sich beim Rückgabetyp der Funktion builtin_function/system/as2/send um ein AS2 MDN-Objekt handelt. Um nützliche Informationen aus diesem Objekt extrahieren zu können, muss es mit Hilfe von FlowForce-Ausdrucksfunktionen weiter verarbeitet werden. Um z.B. die Nachrichten-ID der ursprünglichen AS2-Nachricht abzurufen, könnten Sie einen Ausführungsschritt, wie den unten gezeigten hinzufügen:

ff_as2_create_job_6

 

Im obigen Auftrag wird die ID der ursprünglichen AS2-Nachricht als String abgerufen, indem das (als output deklarierte) Ergebnis des ersten Schritts als Parameter verwendet wird. Zu diesem Zweck wird die Funktion builtin_function/system/compute aufgerufen, womit in FlowForce normalerweise ein Ausdruck berechnet wird. Mit dem Ausdruck wird die Ausdrucksfunktion as2-message-id auf das Ergebnis des ersten Ausführungsschritts (output1) angewendet.

 

Beachten Sie, dass FlowForce Server weitere Ausdrucksfunktionen enthält, die unter verschiedenen Umständen hilfreich sein können. Um z.B. festzustellen, ob der AS2-Call erfolgreich war, könnten Sie die Funktion as2-success auf ähnliche Weise wie oben aufrufen. Oder Sie könnten die Ausdrucksfunktion as2-http-status aufrufen, um den HTTP-Status des AS2-Calls abzurufen. Im Kapitel Ausdrucksfunktionen finden Sie eine Auflistung aller verfügbaren Ausdrucksfunktionen. In den Kapiteln AS2-Ausdrucksfunktionen bzw. MIME-Ausdrucksfunktionen sind die Funktionen im Zusammenhang mit AS2 bzw. MIME aufgelistet.

 

Wichtig ist, dass Sie beim Arbeiten mit FlowForce-Ausdrücken immer darauf achten, welcher Datentyp von den einzelnen Funktionen zurückgegeben wird. Der Datentyp muss mit allen aufrufenden Funktionen und Schritten kompatibel sein, da der Auftrag sonst aufgrund von Validierungsfehlern nicht gespeichert werden kann. Es wird daher empfohlen, dass Sie sich vor Verwendung von FlowForce-Ausdrücken zuerst mit diesen vertraut machen, siehe Die FlowForce-Ausdrücke.


© 2019 Altova GmbH