Show TOC Anfang des Inhaltsbereichs

FunktionsdokumentationBlock  Dokument im Navigationsbaum lokalisieren

Verwendung

Sie verwenden einen Block (Diese Grafik wird im zugehörigen Text erklärt), um Schritte zusammenzufassen, die hintereinander ausgeführt werden und auf dieselben lokalen Daten (siehe auch: Container) zugreifen sollen. Sie können einen Block auch verwenden, um Schritte zusammenzufassen, für die Sie eine gemeinsame Frist oder Ausnahmebehandlung definieren möchten oder um eine lokale Korrelation zu definieren.

Sie können für einen Block den Modus Dynamische Parallelität („Parallel For Each“) oder Dynamische Sequenz („For Each“) festlegen. Dabei wird der Block für alle Elemente eines mehrzeiligen Containerelements ausgeführt.

Blockhierarchie und Containerzugriff

Sie können Blöcke hintereinander definieren oder ineinander schachteln. Ein Block kann jedoch keine bestehende Blockgrenze überlagern. Den äußersten Block eines Prozesses bildet immer der Prozess selbst.

Elemente des übergeordneten Containers sind in untergeordneten Containern sichtbar. Ein Element kann in einem untergeordneten Container gelesen und geschrieben werden, es kann jedoch nicht umdefiniert werden.

Frist

Eine Frist gibt den spätesten Ausführungszeitpunkt für den Block an. Sie können festlegen, auf welchen Zeitpunkt sich die Frist bezieht:

      Zeitpunkt der Erzeugung des Schritts oder des Prozesses

      Einen beliebigen Zeitpunkt, den Sie als Ausdruck angeben

Die Reaktion auf die Fristüberschreitung definieren Sie in einem eigenen Verarbeitungszweig. In diesem Verarbeitungszweig können Sie z. B. über einen Steuerungsschritt einen Alert für das Alert Management auslösen. Der Zweig hat Lese- und Schreibzugriff auf alle Daten innerhalb des Blocks.

Sie definieren eine Frist über das Kontextmenü des Blocks.

Zur Laufzeit prüft das System die Frist. Bei einer Fristüberschreitung wird der Verarbeitungszweig für die Frist ausgeführt. Die Schritte in den restlichen Verarbeitungszweigen des Blocks bleiben davon unberührt. Insbesondere werden diese Schritte innerhalb des Blocks nicht automatisch beendet.

Ausnahmebehandler 

An einem Block können Sie Verarbeitungszweige als Ausnahmebehandler definieren (siehe auch: Ausnahmebehandlung). Ein Ausnahmebehandler hat Lese- und Schreibzugriff auf alle Daten innerhalb des Blocks. Pro Block können Sie mehrere Ausnahmebehandler definieren.

Um einen Ausnahmebehandler-Zweig einzufügen, verwenden Sie das Kontextmenü des Blocks.

Modus

Bei einem dynamischen Modus wird der Block pro Zeile eines mehrzeiligen Containerelements ausgeführt. Beim Modus Dynamische Parallelität wird pro Zeile des mehrzeiligen Containerelements eine Instanz des Blocks erzeugt. Alle Instanzen werden parallel verarbeitet. Beim Modus Dynamische Sequenz wird der Block zuerst für die erste Zeile des mehrzeiligen Containerelements durchlaufen, dann für die zweite usw.

Den Modus Dynamische Parallelität können Sie z. B. verwenden, um eine Message parallel an mehrere Empfänger zu senden. Dazu ermitteln Sie mit einem Empfängerermittlungsschritt ein mehrzeiliges Containerelement mit der Liste der Empfänger. Dann definieren Sie das Senden der Message an diese Empfänger in einem Block mit dem Modus Dynamische Parallelität. Den Modus Dynamische Sequenz können Sie z. B. verwenden, um eine Message nacheinander an mehrere Empfänger zu senden.

Das mehrzeilige Containerelement geben Sie in der Eigenschaft Mehrzeiliges Element an. In der Eigenschaft Aktuelle Zeile geben Sie ein Containerelement an, das den Wert des mehrzeiligen Containerelements aufnimmt, für das der Block durchlaufen wird.

Sie können eine Endebedingung für den dynamischen Modus definieren (siehe auch: Bedingungseditor). Diese wird geprüft, sobald der Block für eine Zeile des mehrzeiligen Containerelements durchlaufen wurde. Der Block ist beendet, sobald nach Abarbeitung einer Zeile des mehrzeiligen Containerelements die Endebedingung wahr ergibt oder alle Zeile des mehrzeiligen Containerelements abgearbeitet sind.

Weitere Informationen: Checkliste: Dynamische Parallelität richtig einsetzen

Lokale Korrelation

Normalerweise ist eine Korrelation für den gesamten Prozess gültig. Wurde z. B. eine Korrelation für eine bestimmte Bestellnummer aktiviert, kann diese Korrelation nicht für eine andere Bestellnummer verwendet werden. Sie können den Gültigkeitsbereich einer Korrelation jedoch beschränken, in dem Sie die Korrelation einem Block als lokale Korrelation zuordnen. Die lokale Korrelation ist dann nur innerhalb des Blocks gültig und kann außerhalb des Blocks nicht aktiviert oder verwendet werden. Eine lokale Korrelation können Sie z. B. verwenden, um in einer dynamischen Parallelität für jede zur Laufzeit erzeugte Instanz eine Korrelation mit einem eigenen eindeutigen Schlüssel (GUID) zu erzeugen und zu verwenden. Dadurch kann z. B. jede Instanz des Blocks eine unterschiedliche Bestellnummer verarbeiten.

Transaktionales Verhalten

Sie können festlegen, ob Blockanfang und Blockende jeweils Transaktionsgrenzen sind. Durch eine geeignete Definition der Transaktionsgrenzen können Sie Performance-Steigerungen erzielen.

Die Einstellung für den Blockanfang bezieht sich dabei auf den Start des Blocks und den Start eines Ausnahmbehandlers am Block. Wenn Sie also für den Blockanfang das Starten einer neuen Transaktion festlegen, wird beim Starten des Blocks und beim Starten des Ausnahmebehandlers jeweils eine eigene Transaktion gestartet.

Weitere Informationen: Transaktionales Verhalten eines Integrationsprozesses

Beispiel

...

Ein Beispiel für die Verwendung eines Blocks, inkl. Frist, Ausnahme und Ausnahmebehandler finden Sie unter Beispiel: Messages eines Interfaces sammeln und bündeln.

Ein Beispiel für eine dynamische Parallelität finden Sie unter Beispiel: Multicast - Mehrere Empfänger (mit Antwort-Message).

Ende des Inhaltsbereichs