Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Message aus Integrationsprozess asynchron senden  Dokument im Navigationsbaum lokalisieren

Verwendung

Um eine Message aus einem Integrationsprozess asynchron zu senden, verwenden Sie einen Sendeschritt im Modus Asynchron.

Beim asynchronen Senden wartet der Sendeschritt nach dem Senden nicht auf eine Reply-Message des Empfängers. Sie können jedoch festlegen, dass der Sendeschritt auf eine Empfangsbestätigung in Form eines Acknowledgments wartet.

Verarbeitung von Acknowledgments

Die Business Process Engine unterstützt Acknowledgments beim asynchronen Senden wie folgt:

Acknowledgment

Verarbeitung des Sendeschritts

Empfängersystem unterstützt angeforderte Acknowledgments nicht

Sendeschritt wird erfolgreich beendet

Positives Acknowledgment

Sendeschritt wird erfolgreich beendet

Permanentes negatives Acknowledgment

Sendeschritt löst Systemfehler aus, für den Sie eine Ausnahmebehandlung definieren können

Temporäres (transientes) negatives Acknowledgment

Sendeschritt wartet weiter, da das temporäre Acknowledgment noch in ein permanentes positives oder negatives Acknowledgment übergehen kann. Dieser Fall kann insbesondere im IDoc-Umfeld auftreten, beispielsweise durch Eingreifen eines Benutzers.

Eine Ausnahme- oder Fehlerbehandlung ist innerhalb des Integrationsprozesses nicht möglich. Sie können allerdings über das Message-Monitoring feststellen, ob es sich um ein temporäres Acknowledgment handelt.

Acknowledgment bei mehreren Empfängern

Für eine aus einem Sendeschritt gesendete Message kann es mehrere Empfänger geben. In diesem Fall dupliziert das System die Message entsprechend. Von den jeweiligen Empfängern zurückkommende Acknowledgments werden ignoriert und der Sendeschritt wartet weiter.

Sind mehrere Empfänger möglich und möchten Sie die einzelnen Acknowledgments auswerten, müssen Sie den Integrationsprozess entsprechend definieren. Ermitteln Sie dazu die Empfänger in einem Empfängerermittlungsschritt und versenden Sie die Message in einer Schleife an die einzelnen Empfänger.

 

Weitere Informationen zu Acknowledgements, insbesondere deren Verwendung im Adapterumfeld, enthält der SAP Hinweis 837285.

Vorgehensweise

Grunddaten definieren

       1.      Fügen Sie den Sendeschritt an der gewünschten Stelle in der Prozessdefinition ein und wählen Sie Asynchron im Feld Modus.

       2.      Legen Sie fest, ob das System für den Sendeschritt eine eigene Transaktion erzeugt.

Wenn das System für den Sendeschritt keine eigene Transaktion erzeugt, können Sie Performance-Steigerungen erzielen. Beachten Sie jedoch, dass dann alle zu sendenden Messages gesammelt und erst am Ende der umgebenden Transaktion gesendet werden. Dies kann bei langlaufenden Transaktionen zu zeitlichen Effekten führen.

Ein asynchroner Sendeschritt, der auf Acknowledgment wartet, muss immer in einer eigenen Transaktion ausgeführt werden. Daher können Sie für diesen Fall keine Einstellungen für das transaktionale Verhalten festlegen.

Weitere Informationen: Transaktionales Verhalten eines Integrationsprozesses definieren

       3.      Definieren Sie im Objektbereich das Containerelement, das die zu sendende Message referenziert.

Weitere Informationen: Definition der Daten eines Prozesses in Containern

       4.      Wählen Sie dieses Containerelement im Eigenschaftenbereich des Sendeschritts im Feld Message.

Auf Acknowledgment warten

       5.      Legen Sie fest, ob der Sendeschritt auf ein Acknowledgment wartet.

Voraussetzung für den Empfang eines Acknowledgments im Sendeschritt ist, dass der Empfänger (Adapter, Business-System usw.) das entsprechende Acknowledgment sendet.

       Kein (Voreinstellung)

Der Schritt ist beendet, wenn die Message erfolgreich an die Pipeline des Integration Servers gesendet wurde.

In diesem Fall können Sie festlegen, dass für den Sendeschritt keine eigene Transaktion erzeugt wird.

       Transport

Gibt an, dass die Message erfolgreich empfangen wurde.

       Anwendung

Gibt an, dass die Message von der Empfängeranwendung erfolgreich verarbeitet wurde (z. B. „gebucht“).

Empfängerermittlung festlegen

       6.      Legen Sie fest, wie das System die Empfänger der Message ermittelt.

Weitere Informationen: Message senden - Empfängerermittlung festlegen

Conversation ID setzen

       7.      Setzen Sie bei Bedarf eine Conversation ID.

Die Conversation-ID können Sie verwenden, um semantisch zusammengehörige Messages zu kennzeichnen. Alle Messages mit derselben Conversation-ID im Message-Header gehören semantisch zum selben Geschäftsprozess. Diesen Mechanismus können Sie verwenden, um komplexere Kommunikationsmuster abzubilden, die über einfache Request/Repsonse-Beziehungen hinausgehen.

                            a.      Definieren Sie im Objektbereich ein Containerelement für die Conversation-ID mit Datentyp xsd:string.

                            b.      Wählen Sie dieses Containerelement im Eigenschaftenbereich im Feld Conversation-ID.

Wenn Sie die Conversation-ID in einer Korrelation verwenden, achten Sie auf Folgendes:

       Die Conversation-ID muss bereits gesetzt sein, wenn die Korrelation aktiviert wird.

       Die Korrelation muss die entsprechende Message eindeutig beschreiben. Die Conversation-ID alleine reicht dazu im Normalfall nicht aus.

Quality-of-Service (EOIO) definieren

       8.      Legen Sie bei Bedarf EOIO (Exactly Once in Order) als Quality-of-Service fest.

Messages werden dann in derselben Reihenfolge zugestellt, in der der Integrationsprozess sie sendet.

                            a.      Geben Sie im Feld Queue-Name eine Warteschlange an.

Sie können den Namen der Warteschlange frei wählen.

Max. Länge: 16 Zeichen

Erlaubte Zeichen: Alphanumerische Zeichen und folgende Sonderzeichen:

/ (Schrägstrich)

_ (Unterstrich)

- (Bindestrich)

Alle Sendeschritte, für die derselbe Queue-Name angegeben ist, werden in der Reihenfolge zugestellt, in der der Integrationsprozess sie sendet. 

Ausnahme angeben

       9.      Soll das System beim Auftreten eines Systemfehlers (permanenter Fehler) eine Ausnahme auslösen, geben Sie diese Ausnahme im Feld Systemfehler an.

Weitere Informationen: Ausnahmebehandlung

Korrelation aktivieren

   10.      Legen Sie fest, ob der Sendeschritt eine Korrelation aktivieren soll.

Dies ist z. B. erforderlich, wenn der Sendeschritt innerhalb eines Blocks mit dynamischer Parallelität eine Message sendet und der Integrationsprozess in jeder parallelen Instanz des Blocks eine eigene Message empfangen soll.

Weitere Informationen: Korrelation von Messages

Ende des Inhaltsbereichs