Skip to content

Forms

For every data schema, Pantarey generates a form from its attributes. It appears in the Database, as a start form and in user tasks of processes, and in the dashboard widget Create data object. Whoever needs more writes a custom form in the same format in the Process Designer and uses additional fields there, such as values loaded from SQL or a working-day count.

Forms tab

Forms tab with the entry Urlaubsantrag (auto-generated) and the button Open form
"Forms" tab with the automatically generated form.

The tab lists the forms of the schema, usually exactly one: "‹Name› (Auto-generated)". Open form shows the definition as JSON, read-only, in the "Export form" dialog. From there it is copied to turn it into a custom form in the Process Designer. The automatic form is regenerated on every attribute change and cannot be edited directly; order, required state, default values and conditions come from the attributes.

What the automatic form contains

  • a heading with the name of the schema,
  • one field per attribute in the order of the attribute list; hidden attributes are omitted, objects become indented blocks, lists get "Add ‹Name›",
  • required state, e-mail format, default value, value list, computed fields and conditions from the attribute,
  • the validation rules of the schema,
  • reference fields only if the person is allowed to read the target schema; otherwise it reads "Your permissions do not allow access to this field."

Sample data

Sample data tab with the entry Auto-generated with the badge automatic, the button Show and the button New sample record
"Sample data" tab: the automatic record and custom cases.

The Sample data tab holds sample records for the schema. Auto-generated (badge automatic) is created from the example values of the attributes and is renewed on every schema change; it is read-only. New sample record creates custom cases, with Label ("Standard case", "Special case A"), Description and the record as JSON; Show opens them again. The document name builder shows its preview with this data, and it serves as documentation of what a typical record contains.

Custom forms

In the Process Designer, a user task or a start event selects under Form either an automatic form, extends it with further fields under Form (extended), or replaces it entirely with Custom; Open form designer edits the definition with live preview and AI help, see Link with processes & forms. The definition is a JSON array of fields with key, type and 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" } }
]

Standard fields

type Field Important props
input text, number, e-mail type text/number/email/password
textarea multi-line text rows
select, radio, multicheckbox selection options as a list of value/label, multiple
checkbox, toggle Yes / No
dateInput, dateTimeInput date, timestamp min, max (2026-01-01 or today+7), minKey, maxKey (another field on the same level), followMin (field moves along when the minimum lies after it); defaultValue today, today±N, now
numericInput number subType integer/number; number fields from input type number become this automatically
user-select, user-group-select person, group
template fixed HTML text, such as an explanation template
repeat list of fields fieldArray, addText, x_inverseArrayOrder
fieldGroup with wrapper panel indented block fieldGroup

References and data

type Field Important props
searchReference reference with search, up to 25 hits dataSchema (required), referenceSort, allowNew, allowOpen
searchReferenceSql reference whose selection is filtered by an SQL query sql with the columns id, data_schema_id, document_name, search_string; see SQL-filtered reference field
sql-values Load values, see below sqlQuery, rows, maxRows
workday-count Working days, see below fromKey, toKey, …
table result of an SQL query as a table with filter and export to CSV, Excel, JSON sqlQuery with {{param}}, parameter, label, excludeMetadata, excludeActions
single-value-card one key figure from the first row of a query sqlQuery
funnel funnel from counting steps steps, result
subForm, parentForm create or select a record of a child or parent schema dataSchema, parentDataSchema

Files

type Field Important props
file file mimeType, multiple
pdf PDF with "View & download PDF" allowRemove, multiple
image image with preview multiple
dropzone drop area for dragging acceptPreset, dropzoneTitle, dropzoneSubtitle

What a process does with uploaded files is described under Build processes.

Load values

The sql-values field is invisible and fetches values via SQL when the form is opened, with the permissions of the person filling in the form. Placeholders: @currentUserEmail, @currentUserSub, @currentDate, @currentYear. The key is only the name of the loaded values and is not saved along; other fields read them under loaded.<key>.

{ "key": "me", "type": "sql-values",
  "props": { "sqlQuery": "SELECT resturlaub, abteilung FROM mitarbeiter WHERE email = @currentUserEmail", "rows": "first" } }

rows first returns the first row as an object (loaded.me.resturlaub), all a list up to maxRows (default 500). If the query finds nothing or fails, loaded.me is empty; the form remains usable. In the form designer, the field appears as a chip "Loads values: me" with "1 row loaded" or "no row found". The values are used in conditions (loaded.me.resturlaub < model.tage), in the Working days field and in custom process steps.

Working days

The workday-count field shows the working days between two date fields according to the account's work calendar, including the days off, and recalculates on every change.

props Meaning
fromKey, toKey required: the date fields
halfStartKey, halfEndKey Yes/No fields for half days at the start and end
workdaysKey or workdays working days of the week from a field or fixed, such as ["Mo","Di","Mi","Do","Fr"]
remainingKey field or loaded value with the available remainder; shows "… remain available afterwards." or "Exceeds the available days by …."
remainingByYearKey remainder per year as an object {"2026": 9, "2027": 30}, for periods spanning the turn of the year
showFreeDays list the days off (default on)
label, unit, unitOne, description labels

Paths point to a field on the same level, to the whole record or to loaded.…. With a key, the number lands in the record as a suggestion; the process recalculates it itself with $fn('date_workdays', von, bis).

Example

The start form "Urlaub beantragen" (request leave) of Musterfirma loads the person's remaining leave with sql-values, shows the requested working days together with the remainder with workday-count, and makes the remark required via a condition if the remainder is not sufficient. All without a custom process step; the process receives the completed request.

Frequently asked questions

Can the automatic form be reordered or renamed?

Only via the attributes: order by dragging, label via the display name. For everything else, create a custom form in the Process Designer.

A reference field shows "Your permissions do not allow access to this field."

The person lacks the Read permission in the target schema. See Permissions & actions.

Load values returns nothing.

The query runs with the person's permissions: they need Query on the schema, and the condition must match their records. Test the query with the same person in Data analytics.

Next step

Inheritance and hierarchies: maintain shared fields once, contact for person and organization.