Funktion einer Berechnung
Eine Berechnung bekommt Eingangsdaten - entweder aus einer Tabelle oder einer vorgelagerten Berechnung - führt einen hinterlegten Java-Script Code aus und gibt Daten weiter. Die Komponente hat definierte Eingangs- und Ausgangsgrößen, auf welche das Java-Script zugreifen kann.

Eingangs- und Ausgangsgrößen
Für jede Berechnung können Inputs und Outputs definiert werden. Die festgelegte Schreibweise wird auch im Java-Script verwendet. Hinweis: Auf exakte Groß- und Kleinschreibung achten!
Folgende Datentypen können gewählt werden:
- Listen: Arrays von Werten eines festgelegten Typs (Kommazahl, Text, Ganzzahl, Datum)
- Einzelwerte: Einzelwerte aus vorherigen Berechnungen
- Strukturen: Übergabe von Tabellen

Beispiel Berechnung
Im Beispiel wird gezählt, wie viele Messungen der Prüfung "T90" in einem Intervall durchgeführt werden und welcher Durchschnitt diese haben.
function main(inputs) {
let count_t90 = 0;
let sum_t90 = 0;
let average_t90 = 0;
// Example for T90 -> inputs.t90 = [2.3, 2.5, 2.5]
count_t90 = inputs.t90.length;
// Iterate over all values in inputs.t90
for (let i = 0; i<inputs.t90.length;i++){
sum_t90 = sum_t90 + inputs.t90[i];
}
average_t90 = sum_t90 / count_t90;
return {
anzahl_t90: count_t90,
mittelwert_t90: average_t90
};
}
Testen einer Berechnung
Um eine Berechnung zu testen, kann die Debugging Funktion verwendet werden. Diese prüft verschiedene Standard-Cases wie Leere Daten, Ein Wert, Drei Werte und Null-Werte als Eingabe in die Berechnung und berechnet die Outputs. Dabei wird zum einen der Code überprüft als auch die Ausführungslogik. Im Bearbeitungsfenster der Berechnungskomponente kann der Tab "Debugging" geöffnet und der Button "Tests ausführen" führt die Tests durch.
Hinweis: Obwohl ein Test einen Fehler wirft - muss dies nicht einer fehlerhaften Berechnung entsprechen. Hier wird mit Testdaten gearbeitet, nicht mit realen Werten. Das Feedback hilft jedoch grundsätzliche Fehler zu erkennen.

Übergabe von Informationen aus dem Trigger
In den Triggereinstellungen können verschiedene Einstellungen wie der Zyklus in den Zeitplänen oder Gruppierungen (z.B. nach Maschine) eingestellt werden. Mit Hilfe der folgenden Skriptausdrücken können diese Informationen in einer Berechnung verwendet werden.
// Spezifische Skriptausdrücke in einem Job
let start = inputs._start; // Gibt den Start des aktuellen Zeitabschnitts als Datum zurück
let end = inputs._end; // Gibt das Ende des aktuellen Zeitabschnitts als Datum zurück
let current_group = inputs._group; // Gibt den aktuellen Wert der Gruppierung als string zurüc




