Robotron Datenbank-Software GmbH Firmenlogo
MIT DATEN MEHR BEWEGEN.

Funktionsbeschreibung und Anwendung

Mit dem Router-Block können einlaufende Nachrichten bedingungsbezogen in bestimmte Verarbeitungsblöcke weitergeleitet werden.

Hierfür gilt:

  • Jede Bedingung muss einen booleschen Zustand zurückgeben.

  • Jede Bedingung, die keinen booleschen Zustand zurückgibt, ist automatisch "false".

  • Sind alle Bedingungen einer Route erfüllt, wird die Nachricht an alle Blöcke, die in "into" aufgelistet sind und/oder an das Output Topic weitergeleitet.

  • Es werden immer alle konfigurierten Routes überprüft.

  • Wenn keine Route erfüllt wird, wird die Nachricht an den defaultInto-Block und/oder an das defaultOutputTopic weitergeleitet.

Folgende Ausdrücke sind in den Bedingungen zulässig:

  • Regular Expression

    • Syntax: RegEx(<value>,'<pattern>')

    • Hochkomma (''): Für Value kann ein statischer Wert eingetragen werden

    • Ohne Hochkomma (''): Value aus Parametern (Header & Body) wird geholt.

  • alle Ausdrücke, die auch im Expression Evaluator Block angewendet werden können

Der Zugriff auf Nachrichteninhalte, wie die Eigenschaften des Headers und des Bodys, kann über die Bedingungen umgesetzt werden. Dies funktioniert über den Prefix header_ oder body_ innerhalb der Bedingung.

In der folgenden Tabelle werden die Konfigurationsparameter erläutert. Die Route-Blöcke enthalten die Routes mit ihren Bedingungen (conditions). Werden mehrere Bedingungen angegeben, so werden diese per Und-Logik verbunden. Das Ergebnis einer Bedingung muss immer einen boolschen Wert ergeben.

Table 1. Konfigurationsparameter Router-Block
ParameterBeschreibung

Name

Name der Blockinstanz

Default Output Topic

Name des Output Topic. Wird verwendet, wenn kein OutputTopic in den Routes angegeben wurde.

Default Into

Optional. Name der Blockinstanz des Folgeblocks an welchen Ausgabenachrichten weitergeleitet werden sollen.

Route Name

Name des Route-Blocks. Wurden mehrere Route-Blöcke angelegt, erscheinen diese als wählbare Reiter unter der Eingabezeile.

Conditions - Name

Name für die jeweilige Bedingung.

Conditions - Value

String, der die Logik für die Bewertung der keys enthält.

Into

stringarray, optional. Name der Blockinstanz des Folgeblocks an welchen Ausgabenachrichten weitergeleitet werden sollen.

Output Topic

Name des modulinternen Output Topic, um Output-Nachrichten auf die Edge Broker Topic(s) zu mappen.

Beispielkonfiguration Router-Block

Die schrittweise Konfiguration des Stream Processors mit Block Routing wird am folgenden Beispiel erläutert (vgl. Gesamtkonfiguration Stream Processor mit Router-Block):

  1. Aggregate-Blöcke 1 bis 3 mit dem Output Topic „out“ und den gleichen Parametern anlegen (Konfiguration des Aggregator-Blocks "aggregate1")

    • Samples mit Size „1” und HoppingEach „1“

    • Behavior: ignore default and collect für „b”

  2. Neuen Processing Block vom Type Router mit Name "Routing" anlegen (Konfiguration des Route-Block "Routing")

    • Routes anlegen:

      • Route Name: b<10000

      • Conditions:

        • Name: toAggregate1

        • Value: RegEx(header_scope, '^a$') && body_b<10000

      • into: aggregate1

94
Figure 1. Konfiguration des Aggregator-Blocks "aggregate1"
95
Figure 2. Konfiguration des Route-Block "Routing"
93
Figure 3. Gesamtkonfiguration Stream Processor mit Router-Block