Regeln: Validierung & Schlüssel
Regeln halten Ihre Daten sauber — Pflichtfelder, Grenzen, Muster, Schlüssel und mehr. Legen Sie sie auf einem Rules_- (oder Validation_-) Blatt an, eine Regel pro Zeile, über diese Spalten: Field, Rule Type, Value, Message, Section, Form. Der Regeltyp bestimmt, was erzwungen wird:
| Regeltyp | Wirkung |
|---|---|
| required | Das Feld muss einen Wert haben. Die Spalte Value kann einen Vergleich hinzufügen — z. B. bei end_date: "greater or equal to start_date". |
| min / max | Grenzen. Das Limit kann eine Zahl, ein ISO-Datum oder der Name eines anderen Felds sein ("end_date | min | start_date" bedeutet end ≥ start, datumsbewusst). Nur ein numerisches min/max macht das Feld außerdem erforderlich. |
| min_length / max_length | Grenzen für die Zeichenkettenlänge. |
| pattern | Der Wert muss einem regulären Ausdruck entsprechen. |
| key | Markiert das Feld als Geschäftsschlüssel des Formulars — es wird erforderlich, und Importe gleichen bestehende Datensätze darüber ab. Ein Formular kann nur einen Schlüssel haben. |
| subkey | Sekundärer Teil des Geschäftsschlüssels — einer pro Formular und nur zusammen mit einem Schlüssel. Wenn beide vorhanden sind, gleichen Importe über Schlüssel + Unterschlüssel zusammen ab. Akzeptiert auch "sub key", "sub_key", "sub-key". |
| sensitive / mask / pii | Kennzeichnet das Feld (jeden Typs) als sensibel: maskiert in Tabelle, Formular, Druck und Exporten — und im Ruhezustand verschlüsselt, wenn Ihr Betreiber die Feldverschlüsselung aktiviert hat. Nennen Sie in der Spalte Form eine Stammdatenliste, um stattdessen eine ihrer Spalten zu kennzeichnen — sie wird in der Stammdatenpflege maskiert, und jedes Formularfeld, das diese Spalte referenziert (ein Dropdown oder ein automatisch ausgefüllter Wert), erbt die Maskierung automatisch. |
| conditional / validation | z. B. "required if status is 'Active'". Bedingungen können zusammengesetzt sein — AND / OR / XOR — und Symbole (=, !=, >=, <=, >, <) oder Wörter verwenden; der Vergleichswert kann ein anderes Feld sein. |
| between / range | between <low> and <high>. Jede Grenze ist ein Literal, ein Feldname oder "system date" / "today" (das Speicherdatum). Ein Positionsdatum kann durch HEADER-Felder begrenzt werden ("between start_date and end_date from HEADER"). |
| auto / autogen | Automatisch nummeriert: Die App vergibt die nächste Nummer, wenn ein Datensatz erstellt wird — standardmäßig ab 1 oder ab der Zahl in der Spalte Value (z. B. 100 → 100, 101, 102 …). Ist der Data type des Feldes ein generierter Bezeichner (ulid / nanoid), erzeugt es stattdessen diesen Bezeichner mit seinem eigenen Mechanismus statt einer Nummer. Nur Anzeige; bestehende Werte werden nie neu vergeben. Ein Auto-Feld ist implizit der Schlüssel, daher kann ein Abschnitt nicht zusätzlich ein separates Schlüsselfeld haben. |
| derived | Der Wert des Felds wird berechnet, nicht von Hand eingegeben — aus Stammdaten (ein ganzer Datensatz mit from Products oder eine einzelne Spalte mit Product.UOM / UOM from Product, wenn der Feldname von der Spalte abweicht, z. B. eine Einheit-Auswahl aus uom) oder einer Datumsberechnung. |
| calc / calculation | Das Feld wird von der App berechnet und gespeichert — eine Währungs- oder Einheitenumrechnung (siehe Währungen & Einheiten umrechnen unten). Schreibgeschützt, bei jedem Speichern neu berechnet; ein eingegebener oder importierter Wert wird ignoriert. Auch als calculation geschrieben. |
| display | Read-only — the field is shown but never accepts typing. Use it for a value that comes from a default rather than the user: e.g. a submission_date that is required + display with system date in the Value column shows today's date, uneditable. (Unlike calc/auto, the app doesn't compute or assign it — it just presents whatever default it carries.) |
Rules_ row for each. For example, a sales_order that is both the business key and auto-numbered is two rows with the same Field.start_date/end_date, from_date/to_date…), erzwingt die App automatisch end ≥ start — keine Regel nötig.Standardwerte. Die Spalte Value jeder Regel kann einen Standardwert tragen: default value "Active" oder default = X. Zitierter oder einfacher Text ist ein Literal; eine qualifizierte Referenz (default = HEADER.currency_code) oder eine Berechnung (default = amount / 100) wird ausgewertet, wenn das Formular oder die Positionszeile geöffnet wird.
Geld- und Mengenfelder können sich automatisch umrechnen — ein Betrag in eine andere Währung, eine Menge in eine andere Einheit — wobei das Ergebnis gespeichert und aktuell gehalten wird. Siehe Währungs- & Einheitenumrechnung.
For calculated fields — totals, arithmetic, and IF / Boolean logic on a Formula_ sheet — see Formulas.