RIDING BYTES
← Alle Insights

25. Juli 2026 · 4 min Lesezeit

SENAITE-Berechnungen: von der Formel zum Ergebnis

Wie SENAITE eine Formel in einen Wert verwandelt. Die Keyword-in-Klammern-Syntax, Interim Fields, verkettete Berechnungen und die Fallstricke, die neue Labore erwischen.

SENAITE-Berechnungen: von der Formel zum Ergebnis

Manche Ergebnisse werden gemessen. Andere abgeleitet. SENAITE behandelt die abgeleiteten mit Berechnungen (Calculations), einer kleinen Funktion, die Laboren enorm viel Copy-Paste und Nacharbeit erspart. Wenn Sie die Formelgrammatik und die Auflösung von Abhängigkeiten kennen, ist es ein Werkzeug, zu dem Sie ständig greifen werden.

Der Baustein

Eine Berechnung ist ein Content-Objekt erster Klasse mit einem Namen, einer Beschreibung und einer Formel. Die Formel nutzt Standard-Arithmetik (+, -, *, /, (, )) und referenziert andere Werte über ihr Keyword in eckigen Klammern. Das klassische Beispiel aus dem SENAITE-Codebase selbst:

[Ca] + [Mg]

Das ist die Formel für Gesamthärte. Sie liest die Ergebnisse zweier Analysedienstleistungen mit den Keywords Ca und Mg, addiert sie und liefert den Wert. Verknüpfen Sie die Berechnung mit einer Dienstleistung namens “Gesamthärte”, und jedes Mal, wenn Ca und Mg auf einer Probe erfasst werden, erscheint der abgeleitete Wert automatisch.

Der Auswerter löst Keywords in zwei Scopes auf: Ergebnisse benachbarter Analysen derselben Probe und die eigenen Interim Fields der Berechnung.

Interim Fields

Ein Interim Field ist ein probenbezogener Input, der nicht das Ergebnis einer anderen Analyse ist. Es lebt an der Berechnung selbst. Das Probenformular rendert pro Interim Field ein editierbares Feld, direkt neben den Analysen.

Typische Anwendungen sind Verdünnungsfaktoren, Probeneinwaagen, Aliquotvolumina, oder alles andere, das pro Probe variiert und vom Analytiker kommt statt aus einer Messung. Jedes Interim Field hat ein Keyword, einen Titel, optional einen Default-Wert, eine Einheit und eine Auswahlliste.

Einmal definiert, wird ein Interim Field in der Formel exakt wie ein Analyseergebnis referenziert: [verduennung], [einwaage].

Ketten lösen sich automatisch auf

Eine Berechnung kann von einer anderen berechneten Analysedienstleistung abhängen. Das Core-Modul verfolgt das über zwei symmetrische Methoden am Berechnungsobjekt: getCalculationDependencies läuft den Graph der Dienstleistungen ab, aus denen diese Berechnung liest, und getCalculationDependents läuft den Graph derjenigen ab, die aus den Zieldienstleistungen dieser Berechnung lesen.

Dieser Rückwärtslauf zählt beim Change Management. Wenn Sie ein Keyword umbenennen, kann SENAITE Ihnen jede nachgelagerte Berechnung nennen, die brechen wird. Wenn Sie eine Dienstleistung deaktivieren, kann SENAITE Sie warnen, welche abgeleiteten Ergebnisse nicht mehr aktualisiert werden.

Der Vorwärtslauf treibt die Auswertung. Sobald ein Input im Graph einen neuen Wert bekommt, evaluiert jede abhängige Berechnung in der richtigen Reihenfolge neu. Kein manueller Recalc-Button, keine veralteten Werte auf der Probe.

Testparameter

Neu in aktuellen Core-Versionen: Jede Berechnung hat ein Panel für Testparameter, in dem Sie Musterwerte für jedes Keyword in der Formel angeben und das Ergebnis live rendern lassen. So validieren Sie eine Formel, bevor Sie sie einer produktiven Analysedienstleistung anhängen. Realistische Ca- und Mg-Werte eintragen, prüfen, dass die Gesamthärte richtig herauskommt, speichern. Kein Umweg über eine echte Probe zur Plausibilisierung Ihrer Algebra.

Fallstricke, die neue Labore erwischen

Ein Keyword mitten im Projekt umzubenennen bricht jede Formel, die darauf verweist, still. SENAITE speichert Keywords als String, nicht als Objektreferenz. Behandeln Sie Keywords als Verträge: sorgfältig beim Go-Live wählen, danach nicht mehr umbenennen.

Formeln mit leerem Input werten zu nichts aus. Eine Berechnung, deren Input noch nicht eingegeben wurde, schlägt nicht fehl; sie füllt sich nur nicht. Das ist meist das, was Sie wollen, bedeutet aber: Ein Bericht, der vor Erfassung aller Inputs generiert wird, zeigt leere abgeleitete Werte. Auf den vollen Workflow warten.

Rundung ist eine Anzeigesache, keine Formelsache. SENAITE speichert das rohe numerische Ergebnis. Rundung passiert beim Rendern. Wenn Sie den gerundeten Wert für eine weitere Berechnung brauchen, runden Sie explizit in der Upstream-Formel. Verlassen Sie sich nicht darauf, dass Anzeigerundung propagiert.

Division durch Null wirft. SENAITE rendert es als Fehler auf der Analyse. Formel absichern mit Fallunterscheidung oder in einem Interim-Field-Default abfangen.

Interim Fields sind keine Ergebnisse. Sie werden nicht vom Ergebnisverifizierungs-Workflow verifiziert. Wenn die Korrektheit eines Interim-Werts qualitätskritisch ist (ein zertifizierter Verdünnungsfaktor, ein kalibriertes Gewicht), erfassen Sie ihn auf einer eigenen Analysedienstleistung, damit er wie jedes andere Ergebnis durch die Verifizierungskette läuft.

Wann eine Berechnung besser ist als manuelle Erfassung

Immer wenn dieselbe Arithmetik auf jeder Probe läuft. Sobald ein Techniker am Taschenrechner rechnet, gehört das in SENAITE. Nicht weil er nicht rechnen könnte, sondern weil berechnete Ergebnisse nachvollziehbar, auditierbar und driftresistent sind. Die Formel ist mit der Berechnung gespeichert; die Probe trägt die Werte, die sie füttern; das Audit-Log zeichnet auf, wer was verifiziert hat. Niemand muss mehr einer Tabelle vertrauen, die niemandem gehört.

Die Gewohnheit, die sich lohnt

Wann immer Sie eine Dienstleistung ertappen, die zweimal dieselbe manuelle Arithmetik durchführt, machen Sie eine Berechnung daraus. Die Interim Fields ergänzen. Mit dem eingebauten Parameterpanel testen. An die Analyse anhängen. Zehn Minuten Setup ersetzen eine dauerhafte Fehlerquelle.

Zwei Personen prüfen Notizen auf Papier neben einem Laptop

Bringen Sie das in Ihr Labor

Ob Sie SENAITE evaluieren, über mehrere Standorte skalieren oder Geräte und Monitoring anbinden — das Team, das die Plattform geschrieben hat, ist das Team, mit dem Sie sprechen.