Bindungen und Reichweite
Manche Tags rechnen aus anderen Tags. Ein Query-Tag hat Parameter, ein Skript-Tag hat Eingänge. Eine Bindung sagt, welches Tag einen davon füllt.
Beispiel: Eine Abfrage zählt Gutteile ab einem Zeitpunkt. Ihr Parameter from wird an
Shift.StartedAt gebunden. Ändert sich dort der Wert, rechnet die Abfrage neu.
Eine Bindung anlegen
Abschnitt betitelt „Eine Bindung anlegen“Im Abschnitt Parameter steht jeder Parameter mit seinem Zustand. Ohne Bindung meldet die Seite Keine gebundenen Parameter.
- An ein Tag binden öffnet die Auswahl Quell-Tag wählen.
- Nach dem Speichern steht am Parameter gebunden an {{path}}.
- Ändern… tauscht die Quelle, Lösen nimmt sie weg.
Eine Bindung wird als Kennung gespeichert, nicht als Name: Eine Bindung wird als stabile ID des Quell-Tags gespeichert — Umbenennen der Quelle bricht sie nicht.
Ein Parameter, der weder gebunden noch von außen gesetzt ist, ist nicht bestimmbar. Der Wert des Tags steht dann auf Unsicher — nicht auf null.
Kreise werden abgewiesen
Abschnitt betitelt „Kreise werden abgewiesen“Sie können kein Tag an etwas binden, das bereits von ihm abhängt. TrakState prüft das beim Speichern und lehnt ab: {{path}} hängt bereits von diesem Tag ab. Damit bleibt das Geflecht gerichtet, und nichts kann sich im Kreis neu berechnen.
Zusätzlich gibt es eine Tiefengrenze. Wird sie erreicht, kommt der Wert als Unbrauchbar zurück, statt weiterzulaufen.
Was passiert, wenn sich ein Wert ändert
Abschnitt betitelt „Was passiert, wenn sich ein Wert ändert“Ändert sich ein Tag, ermittelt TrakState alle Tags, die davon abhängen, und rechnet sie in der richtigen Reihenfolge neu: erst die Eingänge, dann was daraus entsteht. Offene Bildschirme erfahren davon und holen die betroffenen Werte nach. Geht eine Meldung verloren, holt die Verbindung das beim nächsten Verbinden nach.
Ein Timer-Tag ist genau dafür da: Alles, was daran gebunden ist, rechnet mit jedem Takt neu.
Reichweite
Abschnitt betitelt „Reichweite“Reichweite sagt, wie weit ein Wert geteilt wird. Sie ist ein Ergebnis, kein Eingabefeld:
| Reichweite | Bedeutet |
|---|---|
| geteilt | für den ganzen Mandanten — die Vorgabe |
| persönlich | für einen Benutzer |
| einzelne Ansicht | für ein einzelnes Fenster |
Es gilt der engste gebundene Eingang. Ein Wert kann nur so weit geteilt werden, wie sein engster Eingang es zulässt. Wo es enger als geteilt wird, nennt die Oberfläche den Grund: abgeleitet aus der Bindung von {{param}} an {{source}}.
Wer noch auf dieses Tag zeigt
Abschnitt betitelt „Wer noch auf dieses Tag zeigt“Der Reiter Verwendet von beantwortet zwei verschiedene Fragen:
- andere Tags, die hierauf binden. Sind es keine, steht dort Hierauf liest noch nichts. Ein Löschen bricht heute nichts.
- Masken und Tafeln aus Plugins, getrennt nach Wird beschrieben von und Wird gelesen von. Eine Erfassungsmaske ist kein Tag, deshalb steht sie nicht im Bindungsgeflecht — aber sie muss sichtbar sein, bevor Sie das Tag umbenennen oder löschen.
Beim Löschen eines Tags nennt die Rückfrage, wie viele Tags darauf binden: Tag „{{path}}” löschen? {{count}} Tag(s) binden hierauf — nicht umkehrbar.