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.
Parameter | Beschreibung |
---|---|
Settings |
|
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 übernommen. Mit einem Klick auf 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 wirksam.
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.
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)
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.
Environment
Im Bereich Environment kann ein statisches Objekt (JSON) festgelegt werden, auf welches aus dem Body zugegriffen werden kann. Abbildung 6 zeigt eine Beispielkonfiguration.
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.
Ist beispielsweise der Body des Template Enricher nicht in einem validen JSON-Format, wird eine Fehlermeldung ausgegeben (Abbildung 8).
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.
Konfiguration zurücksetzen
Über die Schaltfläche 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!