Formulare
Zu jedem Datenschema erzeugt Pantarey ein Formular aus seinen Attributen. Es erscheint in der Datenbank, als Startformular und in Benutzeraufgaben von Prozessen und im Dashboard-Widget Datenobjekt anlegen. Wer mehr braucht, schreibt im Prozess Designer ein eigenes Formular im selben Format und nutzt dort zusätzliche Felder, etwa geladene Werte aus SQL oder eine Arbeitstage-Zählung.
Reiter Formulare
Der Reiter listet die Formulare des Schemas, in der Regel genau eines: „‹Name› (Auto. generiert)“. Formular öffnen zeigt im Dialog „Formular exportieren“ die Definition als JSON, schreibgeschützt. Von dort wird sie kopiert, um im Prozess Designer ein eigenes Formular daraus zu machen. Das automatische Formular wird bei jeder Attributänderung neu erzeugt und lässt sich nicht direkt bearbeiten; Reihenfolge, Pflicht, Vorbelegung und Bedingungen kommen aus den Attributen.
Was das automatische Formular enthält
- eine Überschrift mit dem Namen des Schemas,
- je Attribut ein Feld in der Reihenfolge der Attributliste, versteckte Attribute fehlen, Objekte werden eingerückte Blöcke, Listen bekommen „‹Name› hinzufügen“,
- Pflicht, Format E-Mail, Vorbelegung, Werteliste, berechnete Felder und Bedingungen aus dem Attribut,
- die Prüfregeln des Schemas,
- Verweisfelder nur, wenn die Person das Zielschema lesen darf; sonst steht dort „Ihre Berechtigungen erlauben den Zugriff auf dieses Feld nicht.“
Beispieldaten
Der Reiter Beispieldaten hält Musterdatensätze zum Schema. Auto-generiert (Badge automatisch) entsteht aus den Beispielwerten der Attribute und wird bei jeder Schemaänderung erneuert; er ist schreibgeschützt. Neuer Beispieldatensatz legt eigene Fälle an, mit Bezeichnung („Standardfall“, „Sonderfall A“), Beschreibung und dem Datensatz als JSON; Anzeigen öffnet sie wieder. Der Dokumentennamen-Baukasten zeigt seine Vorschau mit diesen Daten, und sie dienen als Dokumentation, was ein typischer Datensatz enthält.
Eigene Formulare
Im Prozess Designer wählt eine Benutzeraufgabe oder ein Startereignis unter Formular entweder ein automatisches Formular, ergänzt es unter Formular (erweitert) um weitere Felder oder ersetzt es mit Benutzerdefiniert ganz; Formular-Designer öffnen bearbeitet die Definition mit Live-Vorschau und KI-Hilfe, siehe Prozesse und Formulare verknüpfen. Die Definition ist ein JSON-Array von Feldern mit key, type und props:
[
{ "key": "projekt", "type": "searchReference", "props": { "label": "Projekt", "dataSchema": "documents/projekte", "required": true } },
{ "key": "von", "type": "dateInput", "props": { "label": "Von", "required": true }, "defaultValue": "today" },
{ "key": "bis", "type": "dateInput", "props": { "label": "Bis", "required": true, "minKey": "von", "followMin": true } },
{ "key": "tage", "type": "workday-count", "props": { "label": "Arbeitstage", "fromKey": "von", "toKey": "bis" } }
]
Standardfelder
type |
Feld | Wichtige props |
|---|---|---|
input |
Text, Zahl, E-Mail | type text/number/email/password |
textarea |
mehrzeiliger Text | rows |
select, radio, multicheckbox |
Auswahl | options als Liste von value/label, multiple |
checkbox, toggle |
Ja / Nein | |
dateInput, dateTimeInput |
Datum, Zeitpunkt | min, max (2026-01-01 oder today+7), minKey, maxKey (anderes Feld derselben Ebene), followMin (Feld springt mit, wenn das Minimum danach liegt); defaultValue today, today±N, now |
numericInput |
Zahl | subType integer/number; Zahlenfelder aus input type number werden automatisch dazu |
user-select, user-group-select |
Person, Gruppe | |
template |
fester HTML-Text, etwa eine Erklärung | template |
repeat |
Liste von Feldern | fieldArray, addText, x_inverseArrayOrder |
fieldGroup mit Wrapper panel |
eingerückter Block | fieldGroup |
Verweise und Daten
type |
Feld | Wichtige props |
|---|---|---|
searchReference |
Verweis mit Suche, bis 25 Treffer | dataSchema (Pflicht), referenceSort, allowNew, allowOpen |
searchReferenceSql |
Verweis, dessen Auswahl eine SQL-Abfrage filtert | sql mit den Spalten id, data_schema_id, document_name, search_string; siehe SQL-gefiltertes Referenzfeld |
sql-values |
Werte laden, siehe unten | sqlQuery, rows, maxRows |
workday-count |
Arbeitstage, siehe unten | fromKey, toKey, … |
table |
Ergebnis einer SQL-Abfrage als Tabelle mit Filter und Export CSV, Excel, JSON | sqlQuery mit {{param}}, parameter, label, excludeMetadata, excludeActions |
single-value-card |
eine Kennzahl aus der ersten Zeile einer Abfrage | sqlQuery |
funnel |
Trichter aus Zählschritten | steps, result |
subForm, parentForm |
Datensatz eines Unter- oder Elternschemas anlegen oder wählen | dataSchema, parentDataSchema |
Dateien
type |
Feld | Wichtige props |
|---|---|---|
file |
Datei | mimeType, multiple |
pdf |
PDF mit „PDF ansehen & herunterladen“ | allowRemove, multiple |
image |
Bild mit Vorschau | multiple |
dropzone |
Ablagefläche zum Ziehen | acceptPreset, dropzoneTitle, dropzoneSubtitle |
Was ein Prozess mit hochgeladenen Dateien macht, steht unter Prozesse bauen.
Werte laden
Das Feld sql-values ist unsichtbar und holt beim Öffnen des Formulars Werte per SQL, mit den Rechten der Person, die das Formular ausfüllt. Platzhalter: @currentUserEmail, @currentUserSub, @currentDate, @currentYear. Der key ist nur der Name der geladenen Werte und wird nicht mitgespeichert; andere Felder lesen sie unter loaded.<key>.
{ "key": "me", "type": "sql-values",
"props": { "sqlQuery": "SELECT resturlaub, abteilung FROM mitarbeiter WHERE email = @currentUserEmail", "rows": "first" } }
rows first liefert die erste Zeile als Objekt (loaded.me.resturlaub), all eine Liste bis maxRows (Standard 500). Findet die Abfrage nichts oder scheitert, ist loaded.me leer; das Formular bleibt bedienbar. Im Formular-Designer erscheint das Feld als Chip „Lädt Werte: me“ mit „1 Zeile geladen“ oder „keine Zeile gefunden“. Verwendet werden die Werte in Bedingungen (loaded.me.resturlaub < model.tage), im Feld Arbeitstage und in eigenen Prozessschritten.
Arbeitstage
Das Feld workday-count zeigt die Arbeitstage zwischen zwei Datumsfeldern nach dem Arbeitskalender des Accounts, inklusive der freien Tage, und rechnet bei jeder Änderung neu.
props |
Bedeutung |
|---|---|
fromKey, toKey |
Pflicht: die Datumsfelder |
halfStartKey, halfEndKey |
Ja/Nein-Felder für halbe Tage am Anfang und Ende |
workdaysKey oder workdays |
Arbeitstage der Woche aus einem Feld oder fest, etwa ["Mo","Di","Mi","Do","Fr"] |
remainingKey |
Feld oder geladener Wert mit dem verfügbaren Rest; zeigt „Danach bleiben … verfügbar.“ oder „Übersteigt die verfügbaren Tage um ….“ |
remainingByYearKey |
Rest je Jahr als Objekt {"2026": 9, "2027": 30}, für Zeiträume über den Jahreswechsel |
showFreeDays |
freie Tage auflisten (Standard an) |
label, unit, unitOne, description |
Beschriftungen |
Pfade zeigen auf ein Feld derselben Ebene, auf den ganzen Datensatz oder auf loaded.…. Mit einem key landet die Zahl als Vorschlag im Datensatz; der Prozess rechnet mit $fn('date_workdays', von, bis) selbst nach.
Beispiel
Das Startformular „Urlaub beantragen“ der Musterfirma lädt mit
sql-valuesden Resturlaub der Person, zeigt mitworkday-countdie beantragten Arbeitstage samt Rest und macht über eine Bedingung die Bemerkung zur Pflicht, wenn der Rest nicht reicht. Alles ohne eigenen Prozessschritt; der Prozess erhält den fertigen Antrag.
Häufige Fragen
Lässt sich das automatische Formular umsortieren oder umbenennen?
Nur über die Attribute: Reihenfolge per Ziehen, Beschriftung über den Anzeigenamen. Für alles andere ein eigenes Formular im Prozess Designer anlegen.
Ein Verweisfeld zeigt „Ihre Berechtigungen erlauben den Zugriff auf dieses Feld nicht.“
Der Person fehlt im Zielschema die Berechtigung Lesen. Siehe Rechte und Aktionen.
Werte laden liefert nichts.
Die Abfrage läuft mit den Rechten der Person: Sie braucht Abfragen auf das Schema, und die Bedingung muss auf ihre Datensätze passen. Die Abfrage mit derselben Person in der Datenanalyse testen.
Nächster Schritt
Vererbung und Hierarchien: gemeinsame Felder einmal pflegen, Kontakt für Person und Organisation.