KEPLIN Docs

Validierung

Die zwei Verteidigungslinien der Daten — was das Modell garantiert und welche Regeln die Formulare der Bildschirme vor dem Speichern prüfen.

Falsche Daten kommen aus Unachtsamkeit herein, nicht aus Bosheit: eine Steuernummer mit acht Stellen, eine E-Mail ohne At-Zeichen, ein Rabatt von 300 %, ein Datensatz, der ohne das Feld gespeichert wird, das der Rest des Prozesses braucht. Validieren heißt, diese Türen zu schließen — und in Keplin werden sie in zwei Schichten geschlossen, die man nicht verwechseln sollte.

Schicht Wo sie definiert wird Wann sie greift Was sie abfängt
Das Modell Im Tabellen-Editor (siehe Tabellen und Felder) Bei jedem Schreibvorgang, woher er auch kommt Was den Daten niemals passieren darf.
Die Regeln der Felder Im Inspektor jedes Formularfeldes, Kategorie Validierung Wenn der Benutzer ein Formular speichert Was die Person gerade schreibt, mit der richtigen Meldung neben dem Feld.

Die praktische Regel: Was über die Daten wahr ist, lebt im Modell; was dem Benutzer hilft, lebt im Formular. Ein Pflichtfeld ist beides — man schaltet NULL erlaubt im Modell aus und schaltet Erforderlich am Feld des Bildschirms ein.

Was das Modell garantiert

Das sind keine „Validierungsregeln“ unter diesem Namen, aber es ist die einzige Verteidigung, die sich nicht umgehen lässt: Sie gilt für die Bildschirme, für die APIs, für die Skripte und für jeden, der direkt in die Datenbank schreibt.

Baustein Was er verhindert
NULL erlaubt ausgeschaltet Einen Datensatz ohne Wert in dieser Spalte.
Typ der Spalte Text in einem Datumsfeld, Buchstaben in einer Zahl.
Länge / Genauigkeit · Skala Text, der länger ist als die Spalte, oder Geld mit zu vielen Nachkommastellen.
Primärschlüssel (PK) Doppelte Datensätze und Datensätze, die sich nicht identifizieren lassen.
Index unique Zwei Kunden mit derselben Steuernummer, zwei Benutzer mit derselben E-Mail.
Spalte vom Typ enum Einen Status, den es in der Liste nicht gibt.
Physische Beziehung + Beim Löschen des Parents Verwaiste Children oder Löschvorgänge, die mitreißen, was sie nicht sollen.

Die Spalte estado im Struktur-Editor: der Typ, der Anzeigename (Apps) und der Schalter NULL erlaubt sind die erste Verteidigung der Daten.
Die Spalte estado im Struktur-Editor: der Typ, der Anzeigename (Apps) und der Schalter NULL erlaubt sind die erste Verteidigung der Daten.

Dica

Bevor Sie eine Regel in einem Formular schreiben, fragen Sie sich: Kann das in irgendeinem Datensatz jemals wahr sein? Wenn die Antwort nein lautet, ist der Ort das Modell — denn das Formular ist nur eine der Türen, durch die die Daten hereinkommen.

Die Regeln der Formularfelder

Alle Formularfelder — Textfeld, Textbereich, Zahl, Ja/Nein, Auswahlliste, Datum, Farbe, Datei-Upload — haben im Inspektor die Kategorie Validierung. Dort wird deklariert, was dieses Feld annimmt.

So kommen Sie dorthin:

  1. Öffnen Sie den Bildschirm im Designer.
  2. Wählen Sie das Feld aus — auf dem Canvas oder über den Tab Struktur des Inspektors.
  3. Öffnen Sie im Tab Eigenschaften die Kategorie Validierung.

Die Kategorie Validierung eines Textfeldes: Erforderlich, Maske, Zeichengrenzen, Muster (Regex), Format und Gleich dem Feld.
Die Kategorie Validierung eines Textfeldes: Erforderlich, Maske, Zeichengrenzen, Muster (Regex), Format und Gleich dem Feld.

Erforderlich

Der Schalter Erforderlich ist die erste und meistgenutzte der Regeln: Das Feld muss ausgefüllt sein. Er ist auch der einzige, der vom Leeren spricht — alle anderen lassen ein leeres Feld durch, weil das Leere Sache von Erforderlich ist.

Der Schalter Erforderlich des Feldes Telefon — die erste Regel, die läuft, und die einzige, die vom Leeren spricht.
Der Schalter Erforderlich des Feldes Telefon — die erste Regel, die läuft, und die einzige, die vom Leeren spricht.

Die Standardregeln

Je nach Feldtyp zeigt die Kategorie die Regeln, die Sinn ergeben:

Regel Wo sie erscheint Was sie prüft
Maske Textfeld Das Format während des Schreibens: # Ziffer, A Buchstabe, N alphanumerisch, * beliebig — der Rest ist fester Text. Bsp.: +351 ### ### ###.
Min. Zeichen Textfeld, Textbereich Mindestlänge des Textes.
Max. Zeichen Textfeld, Textbereich Maximallänge des Textes.
Muster (Regex) Textfeld, Textbereich Ein regulärer Ausdruck, den der Wert erfüllen muss. Bsp.: ^[A-Z]{2}\d{4}$.
Format Textfeld Keines, Ist E-Mail, Ist Telefonnummer oder Ist Zahl. Sie schließen sich aus: Ein Wert kann nicht gleichzeitig E-Mail und Telefonnummer sein.
Min. Wert Zahl Der kleinste akzeptierte Wert.
Max. Wert Zahl Der größte akzeptierte Wert.
Gleich dem Feld Alle Felder Der Wert muss dem eines anderen Feldes des Bildschirms entsprechen — die Passwortbestätigung, die wiederholte E-Mail.

Nota

Die Maske ist eine Schreibhilfe, keine Validierung: Sie führt, was die Person schreibt, aber wer das Format garantiert, ist Muster (Regex) oder Format. Eine Telefonnummer mit Maske kann auf halbem Weg stehen bleiben.

Validierung per Code

Unter den Standardregeln steht die Zeile Validierung, die Keine Validierung — festlegen oder Festgelegt — bearbeiten meldet. Der Button öffnet einen Code-Editor für die Regeln, die die Felder nicht abdecken: eine Steuernummer mit Prüfziffer, eine IBAN, ein Datum, das nach einem anderen liegen muss, eine Geschäftsregel, die nur Ihr Unternehmen hat.

Der Code bekommt value — den aktuellen Wert des Feldes — und gibt zurück:

  • true (oder nichts), wenn der Wert gültig ist;
  • einen String mit der anzuzeigenden Fehlermeldung, wenn nicht.
const s = String(value ?? "").replace(/\D/g, "");
if (s.length !== 9) return "Die Steuernummer muss 9 Ziffern haben";
return true;

Innerhalb dieses Codes steht Ihnen auch keplin zur Verfügung — damit lässt sich mit einem anderen Feld, mit einem Wert der Sitzung oder mit bereits im Bildschirm geladenen Daten vergleichen. Es ist TypeScript, mit Vorschlägen während des Schreibens (Strg+Leertaste); der Editor weigert sich, Code zu speichern, der nicht ausführbar ist.

Der Editor der Validierung per Code: Er bekommt den Wert des Feldes und gibt true zurück, oder die anzuzeigende Fehlermeldung.
Der Editor der Validierung per Code: Er bekommt den Wert des Feldes und gibt true zurück, oder die anzuzeigende Fehlermeldung.

Wann die Validierung läuft

Die Validierung eines Formulars läuft beim Speichern — wenn der Speichern-Button den Datastore des Datensatzes speichern lässt. Die Reihenfolge ist je Feld immer dieselbe:

  1. Erforderlich — ist das Feld ausgefüllt?
  2. Die Standardregeln — Länge, Format, Minimum, Maximum, Muster, Gleichheit.
  3. Die Validierung per Code — Ihre Regel.

Der erste Fehler gewinnt: Sobald eine Regel fehlschlägt, erscheint die Meldung dieser Regel unter dem Feld, und die folgenden laufen gar nicht mehr. Wenn irgendein Feld fehlschlägt, wird nichts gespeichert — der Datensatz bleibt, wie er war, und die Person bleibt im Formular, mit den Fehlern vor Augen.

Ein Feld lässt sich auch von Hand validieren, aus dem Code eines Ereignisses heraus — zum Beispiel, um ein Feld zu prüfen, sobald es sich ändert, statt bis zum Schluss zu warten. Das ist Thema von Ereignisse und das SDK.

Die Meldungen

Die Meldungen der Standardregeln sind die der Plattform, geschrieben in der Sprache der App: Pflichtfeld., Ungültige E-Mail., Mindestens {min} Zeichen., Maximalwert: {max}., Die Werte stimmen nicht überein., Ungültiges Format. Sie werden nicht einzeln bearbeitet — wenn Sie die Dinge anders sagen müssen, ist der Ort die Validierung per Code, wo die Meldung der String ist, den Sie zurückgeben.

Die Sprache kommt aus den Einstellungen der App (Einstellungen der App ▸ Übersetzungen): Dieselbe App auf Portugiesisch und auf Englisch zeigt die Fehler in der Sprache dessen, der sie benutzt.

Was die Validierung NICHT ist

Atenção

Die Validierung eines Formulars ist Bequemlichkeit, nicht Sicherheit. Sie läuft im Browser dessen, der die App benutzt, und dient dazu, ehrliche Fehler zu vermeiden. Wer wirklich einen ungültigen Wert schreiben will, geht nicht über das Formular — er geht über die API. Die echte Verteidigung ist die des Modells (Typen, Pflichtfelder, Schlüssel, eindeutige Indizes, Enums) und die der Berechtigungen darüber, wer was schreiben darf.

Warum nicht…?

  • Warum sehe ich die Kategorie Validierung bei diesem Widget nicht? Nur Formularfelder validieren. Ein Button, eine Beschriftung oder eine Tabelle haben keinen Wert zum Validieren.
  • Warum löst die Regel bei leerem Feld nicht aus? Das ist Absicht: Die Standardregeln ignorieren das Leere, das das Gebiet von Erforderlich ist. Schalten Sie ihn ein.
  • Warum wurde trotzdem ein ungültiger Datensatz gespeichert? Entweder war das Feld nicht mit dem Datastore verbunden (ohne Bindung nimmt es nicht an der Validierung teil), oder der Wert wurde auf einem anderen Weg geschrieben — eine API, ein Skript, ein Import. Sehen Sie sich an, was das Modell garantiert, weiter oben auf dieser Seite.
  • Warum trifft das Muster (Regex) nicht zu? Es ist ein regulärer Ausdruck in der üblichen Syntax, und jedes Zeichen zählt: ^[A-Z]{2}\d{4}$ nimmt PT1234 an und weist pt1234 zurück. Testen Sie den Ausdruck, bevor Sie ihn einfügen.
  • Warum wurde meine Validierung per Code nicht gespeichert? Der Editor weigert sich bei Code, der nicht ausführbar ist — korrigieren Sie den angezeigten Fehler und speichern Sie erneut.
  • Warum erscheint die Meldung auf Englisch? Die Sprache der App steht auf Englisch. Ändern Sie sie unter Einstellungen der App ▸ Übersetzungen.