Skip to main content
Skip table of contents

Data Validation Server

Der Data Validation Server ist eine Erweiterung des HAKOM Automation Plug-ins (siehe Automatisierung (Batch) und dessen Funktionalität. Eine automatisierte Verarbeitung einer großen Anzahl von Zeitreihen ist damit möglich. Diese Verarbeitung dient beispielsweise einer Plausibilitätsprüfung/Ersatzwertbildung, zum Export oder zur Berechnung der Kombinationsprognosen. Durch die Funktionen des TSM mit seinem Templatekonzept erweitert um Formelberechnungen im Excel sind unbegrenzte Möglichkeiten vorhanden. Die Ergebnisse werden falls gewünscht wieder zurückgeschrieben oder nur in einem File abgespeichert. Auswertungen im Excel können in der Protokoll-Tabelle geloggt werden.

Das Automation Plug-in wurde so erweitert, dass es aus einem Excel Template aus dem Blatt „BatchParameter“ bestimmte Einstellungen für den automatisierten Ablauf ausliest und in die „Defined Names“ schreibt. Zusätzlich gibt es in diesem Konfigurationsblatt Spalten um Zeitreihennamen einzugeben die Platzhalter im ausgeführten Blatt vor Prozess ersetzen.

Konfigurationsblatt

Innerhalb einer Arbeitsmappe, die vom Data Validation Server verarbeitet werden soll, muss es ein Arbeitsblatt mit der Bezeichnung "BatchParameter" geben, welches die Parameter zu Verarbeitung der Arbeitsmappe enthält

Die erste Reihe kann Text zur Beschreibung des Prozesses enthalten

Die zweite Zeile darf nicht verändert werden und enthält die „Defined Names“.

Alle weiteren Zeilen enthalten Werte für diese „Defined Names“, wobei jede Zeile einem Durchlauf des Automation Plug-ins entspricht.
Die Anzahl von Spalten ist beliebig.

Mögliche Parameter (Defined Names)

Fixe Defined Names

Beschreibung

DatentypBeispiel

ActivateBatch

Steuert ob diese Zeile im Template verarbeitet wird

BooleanTrue

ActivateRead

Soll die Zeitreihe aus der Datenbank gelesen werden, wenn refresht wird?

BooleanFalse

MissingEmpty

Sollen Zellen fehlender Werte leer bleiben?

BooleanTrue

ActivateWrite

Sollen die Daten in die Datenbank gespeichert werden?

BooleanTrue

ActivateSaveFile

Soll ein generiertes File gespeichert werden?

BooleanFalse

SavePath

Der Pfad, unter dem das generierte File gespeichert wird.

StringC:\Output

ActivateSaveFileOnError

Soll im Falle eines Errors ein File generiert werden?

BooleanTrue

SavePathOnError

Der Pfad, unter dem das generierte Error-File gespeichert wird.

StringC:\Failed

SaveFileFormat

Das Format, in dem das File gespeichert werden soll (Excel oder csv)

StringExcel
KISSAFormattingGibt an ob als Kiss A formatiert wird.BooleanTrue
CSVSheetsGibt an welches Blatt gespeichert werden soll, wenn csv als File-Format gewählt wurde.StringBlatt_1

csvDecimalPoint

Gibt das Dezimalzeichen an (Komma oder Punkt).

String,

csvDelimiter

Gibt an welches Zeichen als Trennzeichen zwischen Spalten dienen soll.

String;

saveFilename

Gibt das Format des Namens für das erzeugte File an

String<Filename>_<Date,ddMMyyyy_HHmmss>

saveTimestampAfter (obsolet)

Soll der Zeitstempel vorangestellt sein oder am Schluss des Dateinamens angehängt werden? Dieser Parameter ist nur noch zwecks Rückwärtskompabilität enthalten. Er wird nur herangezogen, wenn saveFilename eines der folgenden Formate hat:

  1. ddMMyyyyHHmmss
  2. ddMMyyyy_HHmmss
  3. yyyyMMdd_HHmmss
  4. yyyyMMddHHmm
BooleanTrue

Sheets

Gibt den Namen des zu verarbeitenden Blattes an.

StringBlatt_1

LogErrorMessages

Legt fest, welche Zellen des zu verarbeitenden Blattes eine Fehlermeldung enthalten. Für vorhandene Einträge in den entsprechenden Zellen werden Log-Einträge vom Typ "Error" erzeugt.

MS Excel Range Object (https://learn.microsoft.com/en-us/office/vba/api/excel.range(object))"Plausi!A2:A3"
LogInformationMessagesLegt fest, welche Zellen des zu verarbeitenden Blattes Informations-Einträge enthalten. Für vorhandene Einträge in den entsprechenden Zellen werden Log-Einträge vom Typ "Information" erzeugt.MS Excel Range Object (https://learn.microsoft.com/en-us/office/vba/api/excel.range(object))"Plausi!B2:B3"

AreasToDelete

Gibt an welche Bereiche im generierten File gelöscht werden sollen (Eine durch Kommata getrennte Liste mit Excel Ranges).

String"Validation-1!I10:I10","Validation-1!F10:G10"
SheetsToDeleteGibt die zu löschenden Blätter in der generierten Arbeitsmappe an (Durch Komma getrennt).StringBlatt_1, Blatt_3

Programm

Der Aufruf des Programms erfolgt über die HAKOM.TSM.Console.exe:

CODE
C:\> HAKOM.TSM.Console.exe -p <VorlagenPfad>

oder benutzen Sie folgenden Aufruf um zur Hilfe geleitet zu werden:

CODE
C:\> HAKOM.TSM.Console.exe --help


Nach Aufruf des Programms erfolgt die Verarbeitung der Batch Parameter. Dabei werden die Werte der Defined Names übernommen, und für jede Zeile ab der dritten im Blatt "BatchParameter" ein Durchlauf des Automation Plug-ins durchgeführt.

Der Automation Server bietet die Möglichkeit Fehlermeldungen in die Protokolltabelle zu schreiben. Mit dem Eintrag „LogErrorMessages“ wird ein Errormessage-Bereich definiert und wenn dieser nicht leer ist ein Eintrag in die Protokoll-Tabelle gemacht. Alle Meldungen werden als Fehlermeldungen behandelt - das heißt, es wird in diesem Fall die Aufruf-ID zurück gegeben. Bei einem Durchlauf ohne Fehler wird 0 zurückgegeben.

Zusätzlich kann beim Aufruf über die Konsole ein Von- und Bis-Datum übergeben werden, das danach im zu verarbeitenden Sheet verwendet wird.

Mit dem Parameter d (oder --definednames) können Defined Names aus "BatchParameter" überschrieben werden. Dieser Wert kann jede Form annehmen, die auch für eine Excel Zelle valide wäre (z.B. eine Zellreferenz, eine Formel, etc.). Mehrere DefinedNames können - durch ein Semikolon getrennt - übergeben werden. Der Excel Namens-Manager speichert alle definierten Bereiche ab.


Testen der Arbeitsmappe

Eine Arbeitsmappe, die zur Bearbeitung durch den Data Validation Server erstellt wurde, kann mithilfe des Automation Plug-in getestet werden. Dazu öffnen Sie das Automation Plug-in während die entsprechende Arbeitsmappe geöffnet ist. Aktualisieren Sie es und klicken Sie auf "Test":


Anschließend werden Sie aufgefordert, eine Zeile der BatchParameter anzugeben, mit der Sie den Test durchführen wollen (Die Angabe der Zeile ist relativ zu Zeile 3, da diese die erste Zeile ist, die Parameter enthält. Möchten Sie also den Data Validation Server mit Parametern aus Zeile 3 testen, geben Sie hier "1" ein):


Nach der Bestätigung wird der entsprechende Durchlauf des Automation Plug-ins testweise durchgeführt.

CSV-Export (Kiss-A Format)

Um ein Blatt als csv im Kiss-A Format zu speichen müssen diese "Defined Names" gesetzt werden: 

Fixe Defined Names

Beschreibung

SaveFileFormat

csv

KISSAFormattingtrue

 Dies sieht im ParameterBlatt wie folgt aus:

 

 Im Blatt, das unter "CSVSheets" angegeben wird und das in Folge abgespeichert wird, muss als Zeitraum genau ein Tag angegeben sein:

 Nach Verarbeitung sieht das Ergebnis wie folgt aus:

 

Beispiele

Plausibilitätsprüfung

Angenommen Sie nutzen den Data Validation Server um Zeitreihendaten in eine Datenbank zu schreiben. Eine dieser Zeitreihen enthält Daten zum Energieverbrauch einer Maschine/eines Geräts, aber Sie wissen, dass es vorkommen kann, dass diese Daten nicht immer plausibel sind und möchten daher eine einfache Plausibilitätsprüfung anwenden.

Hier finden Sie ein einfaches Beispiel, wie so eine Plausibilitätsprüfung mit dem Data Validation Server aussehen könnte:

DataValidationServer_Vorlage_Plausibilitätsprüfung.xlsx

Sie haben eine Zeitreihe die Daten zum Energieverbrauch einer Maschine/eines Geräts enthält ("ActValues") und eine andere, die die maximal möglichen (plausiblen) Werte des Energieverbrauchs der Maschine/des Geräts enthält ("MaxValues"). Wenn Sie das Blatt "Blatt1" betrachten, werden sie feststellen, dass Spalte E eine Formel enthält, die dazu dient, zu überprüfen, ob die Werte von ActValues größer sind als jene von MaxValues. Wenn das der Fall ist, wird in die entsprechende Zelle das Wort "Error" geschrieben. Das ist wichtig, denn in Blatt "BatchParameter" ist unter "LoErrorMessages" festgelegt, dass Spalte E mögliche Fehlermeldungen enthält!

Wechseln Sie nun zu "Diese Werte speichern_1" und klicken Sie auf das Save-Ribbon des TSM (In diesem Blatt sind die Werte von ActValues immer niedriger als jene von MaxValues).

Öffnen Sie das Automation Plug-in unter "Automatisierung" und klicken sie auf den Aktualisieren-Button (Nur für den Fall, dass vorher eine andere Vorlage ausgeführt wurde). Wenn Sie nun auf "Test" klicken, wir ein Dialogfenster geöffnet. Sie können das Feld leer belassen und auf "OK" klicken. Der Data Validation Server wird jetzt das Blatt "Blatt1" mit den Einstellungen von "BatchParameter" verarbeiten Nach dem Schließen des Taskabwicklungs-Fensters wird das generierte Excel-File automatisch geöffnet. Wie Sie sehen werden, enthält "Blatt1" keine "Error"-Einträge.

Nun Wechseln sie zu "Diese Werte speichern_2" und klicken Sie auf den Save-Button (In diesem Blatt sind die Werte von ActValues in einigen Fällen größer als jene von MaxValues).

Öffnen Sie wieder das Automation Plug-in und klicken Sie auf "Test" und anschließend auf "OK". Jetzt meldet das Taskabwicklungsfenster einen Fehler. Schließen Sie es und es wird wieder automatisch das generierte Excel-File geöffnet. In "Blatt1" sehen Sie nun mehrere "Error"-Einträge in Spalte E.

Die beiden Files wurden, wie in "BatchParameter" festgelegt, unter "C:\Program Files (x86)\HAKOM" generiert.

Kombinationsprognose

Bei diesem Beispiel handelt es sich um eine Kombinationsprognose.

DataValidationServer_Vorlage_Kombi.xlsx

Importieren Sie zunächst das Blatt "Import". Danach speichern Sie das Blatt "Daten". Sie sehen, dass es hier sechs Zeitreihen gibt. Jeweils zweimal "ZeitreiheIn", "Gewichtungsfaktoren" und "ZeitreiheReturn". Wechseln Sie zum Blatt "Kombi". Sie werden feststellen, dass es hier nur drei Zeitreihen gibt. Je einmal "ZeitreiheIn", "Gewichtungsfaktoren" und "ZeitreiheReturn". Diese Zeitreihennamen sind Platzhalter. Sie existieren nicht in der Datenbank und werden beim Durchlauf des Automation Plug-ins ersetzt.

Wenn Sie zum Blatt "BatchParameter" wechseln werden Sie weiter hinten, ab Spalte P, diese Platzhalter als Defined Names finden. Darunter die Namen der Zeitreihen, die Sie vorher beim Import angelegt haben. Das bedeutet, dass beim Durchlauf der ersten Automation diese Platzhalter durch die in Zeile drei eingetragenen Namen und beim zweiten durch die in Zeile vier eingetragenen Namen ersetzt werden. 

Das Beispiel ist simpel gehalten. Im Blatt "Kombi" sehen Sie, dass beim Abarbeiten durch den Data Validation Server die Zeitreihen, die durch ZeitreiheIn repräsentiert werden, in Spalte C ausgelesen, und in Spalte E um eine Stunde verschoben werden. In Spalte D werden jene ausgelesen, die durch Gewichtungsfaktoren repräsentiert werden. In Spalte F wird das Produkt aus Gewichtungsfaktoren und der verschobenen ZeitreiheIn berechnet und auf ZeitreiheReturn geschrieben.

Öffnen Sie das Automation Plug-in und klicken Sie auf "Test" und "OK". So werden beide Zeilen aus dem Blatt "BatchParameter" abgearbeitet. 

Die Ergebnis-Files werden direkt geöffnet. Hier sehen Sie, dass die Platzhalter durch die gewünschten Zeitreihen ersetzt, und mit den richtigen Werten ausgelesen wurden. Außerdem wurden für ZeitreiheReturn die Ergebnisse berechnet und gespeichert.

Wichtiger Hinweis

Sollten beim automatisierten Durchlauf Probleme auftreten die sich im TSM nicht nachstellen oder nachvollziehen lassen, sollten die verwendeten Vorlagen mit dem TSM+ getestet werden, da der Data Validation Server im Hintergrund eben diesen für die Automatisierung verwendet und gegebenenfalls kleine Unterschiede in der Verarbeitung von Formeln zwischen Excel und TSM+ auftreten können.

Einschränkungen

KISS-A Transformation

Mit dem Data Validation Server kann keine KISS-A Transformation durchgeführt werden. Grund dafür ist, dass es keinen sinnvollen Anwendungsfall dafür gibt eine KISS-A Transformation über den Data Validation Server auszuführen und dass eine KISS-A Transformation und der Data Validation Server unterschiedliche Anforderungen an die in der Arbeitsmappe enthaltenen Daten stellen.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.