Show TOC

Beispiel: Messages mehrerer Interfaces sammeln und bündelnLocate this document in the navigation structure

Sie können Messages unterschiedlicher Interfaces sammeln und bündeln. Dazu definieren Sie die entsprechenden Empfangsschritte in einem parallelen Abschnitt.

Das Sammeln können Sie auf unterschiedliche Arten definieren. Die nachfolgende Tabelle zeigt die verschiedene Möglichkeiten. Die Beispiele finden Sie im Enterprise Services Repository unter SAP Basis → SAP Basis <release_nummer> im Namensraum http://sap.com/xi/XI/System/Patterns

Sammeln Beschreibung Beispiel

Alle Messages sammeln

Sammelt alle Messages.

BpmPatternCollectMultiIf

Nur bestimmte Messages sammeln

Beendet das Sammeln, wenn eine angegebene Bedingung erfüllt ist.

BpmPatternCollectMultiIfCondition

Beispielprozesse

Die Beispielprozesse empfangen drei Messages von unterschiedlichen Interfaces in den Containerelementen FirstMessage , SecondMessage und ThirdMessage . Dazu sind innerhalb eines parallelen Abschnitts drei Empfangsschritte definiert. Jeder der Empfangsschritte kann den Prozess starten. Daher ist für jeden der Empfangsschritte das Kennzeichen Prozessstart gesetzt. Die erste empfangene Message startet den Prozess und aktiviert die  Korrelation Correlation . Jeder der Empfangsschritte verwendet diese Korrelation. Nach dem Empfang der Messages bündelt ein Transformationsschritt die Messages und erzeugt daraus eine Message in Containerelement NewMessage . Diese wird vom nachfolgenden Sendeschritt gesendet.

Die Prozesse verwenden drei der abstrakten Interfaces als Inbound-Interface und eins als Outbound-Interface (weitere Informationen: Prozesssignatur ).

Alle Messages sammeln

Um alle Messages zu sammeln, legen Sie fest, dass der parallele Abschnitt beendet ist, wenn alle Zweige durchlaufen sind.

Folgende Grafik zeigt die Definition des Prozesses:

Messages sammeln mit Bedingung

Sie können auch festlegen, dass das Sammeln der Messages beendet wird, wenn eine bestimmte Bedingung erfüllt ist. Dazu definieren Sie für den parallelen Abschnitt eine entsprechende Endebedingung. In folgendem Beispiel ist der parallele Abschnitt beendet, wenn eine der folgenden Bedingungen wahr ergibt:

  • Alle notwendigen Zweige wurden durchlaufen: drei Messages wurden empfangen.
  • Die Endebedingung ist erfüllt: In den Containerelementen FirstMessage und SecondMessage wurden die entsprechenden Messages empfangen und das Element OverallNumber in der Message FistMessage hat den Wert 42 . Um abzuprüfen, ob die Messages empfangen wurden, werden die beiden Containerelemente jeweils mit einem leeren Containerelement (
    EmptyFirstEmptySecond
    , ) verglichen.

Das System prüft die Bedingungen in der angegebenen Reihenfolge.

Folgende Grafik zeigt die Definition des Prozesses:

Weitere Informationen:

Empfangsschritt

Paralleler Abschnitt

Transformationsschritt

Sendeschritt

Korrelation: Zuordnung Messages zu Prozessinstanzen definieren