Robotron Datenbank-Software GmbH Firmenlogo
MIT DATEN MEHR BEWEGEN.

Template Enricher

Das Modul Template Enricher ist ein Tool zur Anpassung der Datenstruktur empfangener Daten. 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. Übersicht der Parameter des Template Enricher Moduls
ParameterBeschreibung

Settings

  • Input Settings: Output Topic eines anderen Modules

  • Output Settings: Neu definiertes Output Topic vom Template Enricher-Modul

Headers

Anpassung von Metadaten (Scope, Source)

Body

Definition der Inhalte des neuen „Ziel“ Bodys

Library

Verwaltung von wiederverwendbaren Template-Teilen Modules Die 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.

Environment

Festlegung eines statischen Objekts (JSON), Zugriff aus Body möglich

Test

Mit dieser Methode kann die aktuelle Konfiguration des Moduls getestet werden. Es wird eine Input-Message erwartet, auf die die konfigurierten Templates angewendet werden und anschließend im Ergebnis die Trans-formierte Message zurückgeliefert wird.

Konfiguration in der UI

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

Settings

Für die Verwendung des Moduls muss ein, in einem anderen Modul definiertes Output Topic als Input (z.B. aus dem Modul OPCUA) sowie ein neues Output Topic definiert werden. Dieses modifizierte Topic kann beispielsweise zur Datenausgabe in Azure bzw. Splunk zugeordnet werden (Abbildung 1).

te settings
Abbildung 1. Konfiguration der Settings

Die erläuterten Konfigurationen zu Input und Output müssen im ersten Schritt unter „Settings“ vorgenommen werden. Das Input Topic wird durch Klicken auf das "+" oder "ADD" übernommen. Mit dem Speichern werden Änderungen aktualisiert (Abbildung 2 und Abbildung 3).

te input settings
Abbildung 2. Konfiguration der Input Settings
te output settings
Abbildung 3. Konfiguration der Output Settings

Über „Remove“ kann der gewählte Input gelöscht werden. Mit dem Speichern werden die Änderungen übernommen (Abbildung 4).

te delete setting
Abbildung 4. Löschen eines Input Settings

Header

Im Reiter „Header“ (Abbildung 5) können Metadaten der Nachricht, wie z.B. Source und Scope, angepasst werden. Abbildung 6 zeigt eine Beispielkonfiguration an. In Abbildung 7 ist dargestellt, wo die Header-Konfiguration in Splunk zu sehen ist.

te header
Abbildung 5. Konfiguration des Headers (Metadaten)
te header scope
Abbildung 6. Beispielkonfiguration Header Scope
te header splunk
Abbildung 7. Auswertung des Header Scope in Splunk

Body

Um die Rohdatenstruktur anzupassen, ist im Reiter „Body“ der Quelltext zur Umwandlung einzufügen (Abbildung 8)

te body
Abbildung 8. Konfiguration des Bodys

Library

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

te library
Abbildung 9. Konfiguration der Library

Modules

Die 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 10 zeigt eine Beispielkonfiguration.

te module config
Abbildung 10. Beispielkonfiguration für Module

Environment

Hier kann ein statisches Objekt (JSON) festgelegt werden, auf welches aus dem Body zugegriffen werden kann. Abbildung 11 zeigt eine Beispielkonfiguration.

te env
Abbildung 11. Beispielkonfiguration von Environment

Test

Hier kann die aktuelle Konfiguration des Moduls getestet werden. Es wird eine Input Message erwartet, auf die die konfigurierten Templates angewendet werden und anschließend im Ergebnis die transformierte Message zurückgeliefert wird. Abbildung 12 zeigt ein Beispiel.

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

Im Body wird das JSON-Format entsprechend modifiziert, so dass kein „valid“ JSON-Format beim Test entsteht. Eine Fehlermeldung weist auf diesem Umstand hin (Abbildung 13).

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