Appearance
Form Designer reference
A form is a data-entry definition: fields with their types, rules and validation, arranged in sections, with hooks for what happens on load, save and cancel. A form is placed on a page like a block. This page documents the Explorer node Forms and the Form Designer. For the page model see How a screen is built; for the overview see Form Designer overview.
Where to find it
Workspace > Forms lists the forms. Opening one opens the Form Designer. Forms that belong to an application also appear under that application.
Form list
| Control | Description |
|---|---|
| New form name | Required. |
| Template | Blank, or a sample form such as a sales quotation. The description of the chosen template is shown under the picker. |
| Create | Creates a draft and opens it. |
| Describe the form | A sentence such as "A leave request form with employee, dates and reason". Generate with AI drafts fields, layout and rules for you to review. |
Designer layout
| Area | Content |
|---|---|
| Toolbar | Back, form name, chip with version, status and revision, autosave state, Undo, Redo, Save draft, Publish. |
| Left | The field palette and the Field outline: every field of the form, selectable. |
| Centre | Two modes: Canvas (the authoring surface) and Preview (the form rendered by the real form engine, so what you see is what runs). The canvas draws design chrome only. |
| Right | The inspector with Properties and Layers tabs. |
| Bottom dock | Tabs Problems, Rules, Validations, Events, Translations, History. |
Layout modes
| Mode | Behaviour |
|---|---|
| Simple list | Fields in a single list, in order. |
| Grid layout | Fields placed in sections with a number of columns. Each field has a Column span. Small screens collapse to one column. |
| Free canvas | Fields placed freely with position and size. |
Layouts can be arranged separately per breakpoint (see How a screen is built: responsive layouts).
Keyboard and clipboard
| Key | Action |
|---|---|
Ctrl+Z | Undo |
Ctrl+Shift+Z, Ctrl+Y | Redo |
Ctrl+C | Copy the selected field |
Ctrl+V | Paste a field from the Studio clipboard. The clipboard works across forms. |
| Up and Down arrows | Select the previous or next field |
Delete | Remove the selected field |
? | Show the shortcut list |
Every edit is one undoable command. The draft autosaves a few seconds after the last edit with an optimistic-lock revision. If someone else saved a newer revision, the designer offers Reload latest or Save mine anyway. Unsaved work survives a browser crash: on reopening, the designer offers to keep or discard it.
Field kinds
| Kind | Use |
|---|---|
text | A single-line text. Options: secret (obscured as typed), icon, reveal toggle. |
number | A number with optional minimum and maximum. |
date, time, datetime | Date and time pickers. |
select | A dropdown. Needs options. |
radio | A radio group over the same options. |
multi-select | Several options may be chosen. |
checkbox | A true or false value. |
currency | A number shown with an ISO 4217 currency code. The stored value stays a plain number. |
computed | A derived, read-only value from an expression. |
child-table | A repeatable set of rows, each with its own columns. |
Inspector, Properties
| Property | Applies to | Description |
|---|---|---|
| Name | all | The stored key. |
| Label key | all | A translation key for the label. |
| Required | all | The field must have a value. |
| Unique | all | Backend enforced only: no other record may hold this value. |
| Role rules | all | For a named role: Required, Read-only, Hidden. A deliberately simple actor-to-role rule, separate from Field Permissions. |
| Section | all | The section that holds the field ((none) for no section). |
| Min, Max | number | Value limits. |
| Min length, Max length, Pattern | text | Length limits and a regular expression. |
| Use from Validation Library | text | Links the field to a shared validation, for traceability. |
| Options | select, radio, multi-select | The choices. |
| Secret | text | Obscures the value as typed, for example a password. |
| Icon | text | A name from a small built-in set, for example user, lock, email. |
| Currency code | currency | ISO 4217, for example USD. Presentation only. |
| Column span | grid layout | How many of the section's columns the field covers. |
| Expression | computed | The formula. |
| Style and positioning | free canvas | Position and size. |
The Layers tab shows the form's structure.
Child table
A child table field has Column name and Column expression for each column, Min rows and Max rows, and a Rollup target with a Rollup expression: a computed field on the parent receives a roll-up of the rows, for example the sum of line amounts. The roll-up target must be an existing computed field (Add a computed field to the form to receive a rollup).
Bottom dock
Problems
The designer shows the form engine's own diagnostics. Publishing stays disabled while any error exists. Missing translations are warnings and never block publishing.
Rules (form rules)
A form rule shows, requires or locks a field, section or tab depending on another field.
| Field | Description |
|---|---|
| Rule id | A name. |
| Trigger field | The field whose value drives the rule. |
| Target kind | field, section or tab. |
| Target | The field, section or tab affected. |
| Output | visibility, required, readonly or options. |
| Condition expression | When the rule applies. For options, the expression yields which option set applies, and Reset stale selection on change clears a selection that is no longer offered. |
These are not Business Rules and not entity rules.
Validations
| Field | Description |
|---|---|
| Validation id | A name. |
| Priority | A band: 1 Security, 5 Validation, 10 Business rule, 100 Notification. |
| Active | Switches the validation on or off. |
| Scope | field, cross-field or form. |
| Validates field, Fields read | For field and cross-field scopes: the field it reports on and the fields the expression reads. |
| Trigger | When it runs. |
| Message key | The translation key of the message. |
| Kind | expression (runs immediately, for example a date comparison) or async (an action chain with a server round trip, for example a uniqueness check, with a pending state while it runs). |
Events
Lifecycle hooks, each with an action chain: onLoad (event FormLoaded), beforeSave (FormSubmitRequested), afterSave (FormSubmitted) and onCancel (FormCancelled). The list shows how many actions each hook has, or not bound. Action steps are in How a screen is built.
Translations
Lists every label key the form uses with the translation for each language, so missing translations can be filled.
History
Versions of the form with a diff.
Publishing and versions
A draft is edited freely. Publish freezes a version. Users see only published versions; History restores older ones by creating a new draft from them. Forms shipped by a plugin are read only; copy the artifact to customise it (see Customize an installed plugin).
Permissions
Designing forms is an authoring action on the form artifact type. Every field and form also carries visible, enabled and masked surfaces tied to the permission model; see Permissions and Field Permissions.
API and CLI
/api/v1/authoring/forms (drafts, publish, versions), POST /api/v1/authoring/forms/ai-generate. erp artifact list|get|create|update|publish --type forms. Schema: Reference: form.
Related
How a screen is built, Add a create / edit form, Business Logic screens, Block catalog.
