MIT DATEN MEHR BEWEGEN.

Template Enricher

Das Modul Template Enricher ist ein Tool zur Anpassung der Daten und ihrer Datenstruktur von empfangenen Nachrichten. Die einheitliche Datenstruktur dient der Unterstützung der Datenweiterverarbeitung. Es wird die Template-Sprache Scriban [1] unterstützt.

Konfigurationsparameter

Die Konfiguration des Template Enricher beinhaltet die nachfolgend beschriebenen Parameter.

Tabelle 1. Konfigurationsparameter des Template Enricher
Parameter Beschreibung

Settings

  • Input Settings: zu verarbeitendes Output Topic eines anderen Moduls.

  • Output Settings: neu definiertes Output Topic vom Template Enricher.

Headers

Anpassung der Metadaten (Scope, Source) der empfangenen Nachricht.

Body

Definition der Inhalte des neuen Nachrichten-Bodys.

Library

Verwaltung von wiederverwendbaren Template-Teilen.

Modules

Sammlung wiederverwendbarer Templates.

Environment

Festlegung eines statischen Objekts (JSON) auf das der Body zugreifen kann.

Test

Die Konfiguration des Template Enrichers kann getestet werden.

Message Output

Template, um Nachrichten anhand von Bedingungen an definierte Topics/Module weiterzugeben.

Konfiguration in der UI

Das Template Enricher-Modul kann über die Auswahl des Moduls auf der Startseite oder über die linke Menüleiste der RoboGate Edge UI aufgerufen und konfiguriert werden.

Settings

Für die Verwendung des Moduls muss mindestens ein in einem anderen Modul definiertes Output Topic als Input (z.B. aus dem Modul OPC UA). Diesem Topic sind die zu manipulierenden Nachrichten zugeordnet. Weiterhin muss mindestens ein neues Output Topic definiert werden, welchem die durch den Template Enricher manipulierten Nachrichten zugeordnet werden. Dieses neue Output Topic kann dann beispielsweise zur Datenausgabe in Azure bzw. Splunk hinzugefügt werden (Abbildung 1).

Die erläuterten Konfigurationen zu Input und Output sind unter Settings vorzunehmen. Die Eingabe von Input und Output Topic wird durch Klicken auf add übernommen. Mit einem Klick auf close kann das Topic der entsprechenden Zeile gelöscht werden. Mit dem Speichern werden die Änderungen übernommen. Alle Eingaben und Änderungen werden erst mit dem Speichern save wirksam.

te settings
Abbildung 1. Konfiguration Template Enricher - Settings

Header

Im Reiter Header können Metadaten der Nachricht, wie z.B. Source und Scope, angepasst werden. Existiert der Key Value bereits, wird er mit dem angegebenen Wert überschrieben, existiert der Key Value noch nicht, wird er dem Header der Nachricht hinzugefügt.

Abbildung 3 und Abbildung 2 zeigen eine Beispielkonfiguration an. Im Beispiel wird die Source "PollGroup a" (siehe Abbildung 1) mit Bezeichnung "TE_a" überschrieben.

te header source
Abbildung 2. Beispielkonfiguration Header Source
te header scope
Abbildung 3. Beispielkonfiguration Header Scope

Body

Um die Rohdatenstruktur anzupassen, ist im Reiter Body der Quelltext zur Umwandlung einzufügen.

Existiert der Key Value bereits, wird er mit dem angegebenen Wert überschrieben, existiert der Key Value noch nicht, wird er dem Header der Nachricht hinzugefügt.

Im Body kann auf Objekte im Reiter Environment verwiesen werden. Dies bietet sich beispielsweise an, um maschinenspezifische statische Daten in den Body zu übernehmen. (Abbildung 4)

te body
Abbildung 4. Konfiguration Template Enricher - Body

Library

In dem Reiter „Library“ können wiederverwendbare Templateabschnitte, welche in jeder Template-Definition verfügbar sein müssen, verwaltet werden.

Modules

Module sind eine Sammlung wiederverwendbarer Templates. Diese dienen dazu ein großes Template ggf. in kleinere Templates zu zerlegen, um die Lesbarkeit/Wartbarkeit zu erhöhen. Aus jedem Template (Body, andere Module) kann auf Module zugegriffen werden. Wenn ein Modul referenziert wird, wird der Inhalt von diesem an dieser Stelle eingefügt. Der Zugriff erfolgt via "include" Directive im Template. Die Schreibweise der "include" Directive sieht wie folgt aus:

{{ include 'Test' }}

An der Stelle 'Test' steht der Name des Modules, welches an dieser Stelle "eingefügt" werden soll. Abbildung 5 zeigt eine Beispielkonfiguration.

te modules
Abbildung 5. Beispielkonfiguration für Module

Environment

Im Bereich Environment kann ein statisches Objekt (JSON) festgelegt werden, auf welches aus dem Body zugegriffen werden kann. Abbildung 6 zeigt eine Beispielkonfiguration.

te env
Abbildung 6. Beispielkonfiguration Environment

Test

Im Reiter Test kann die Funktion des konfigurierten Template Enricher getestet werden. Hierzu wird im Bereich "Ingest" eine erwartete Nachricht definiert, auf die die konfigurierten Templates angewendet werden. Nach einem Klick auf die Schaltfläche "Run" wird im Ergebnis (Result) die transformierte Nachricht zurückgegeben. Abbildung 7 zeigt ein Beispiel.

te test valid
Abbildung 7. Test mit einem "valid“" json-Format

Ist beispielsweise der Body des Template Enricher nicht in einem validen JSON-Format, wird eine Fehlermeldung ausgegeben (Abbildung 8).

te test invalid
Abbildung 8. Test mit keinem "valid" json-Format

Message Output

Um die Ergebnisse des Template Enrichers auf Basis von Bedingungen an unterschiedliche Module des RoboGate Edge zu schicken, kann ein Message Output Template definiert werden, welches den Message Output als Ergebnis hat. Durch die Konfiguration des Mappings zwischen Message Output und Topic, kann die Nachricht richtig weitergeleitet werden.

Der errechnete Message Output wird auf der Ebene von Header und Body ausgegeben. Ist das Message Output Template leer, wird ein Default/Fallback Message Output (result) gewählt. Das Output Topic "result" und weitere Output Topics sind entsprechend im Bereich Settings unter Output Settings anzugeben.

Zeilenumbrüche und Einrückungen außerhalb der Scriban-Klammerung verbleiben nicht nicht im endgültigen Ergebnis.

te message output
Abbildung 9. Beispielkonfiguration Message Output

Konfiguration zurücksetzen

Über die Schaltfläche reset in der horizontalen Menüleiste lässt sich die komplette Konfiguration des Moduls auf Werkseinstellungen zurücksetzen. Nach einem Klick auf die Schaltfläche folgt ein Bestätigungsdialog mit "Yes" und "No" zur Rückfrage ob der Vorgang wirklich ausgeführt werden soll.

Damit wird auch die gesamte Historie auf dem RoboGate Edge Ebene gelöscht!