Forms in Ed¶
Ed can create and edit the files used by Spiff Arena User Task forms. Those forms are based on JSON Schema and RJSF UI Schema files.
For the full list of currently documented form widgets and validations, see Spiff Arena’s Use User Tasks and Forms.
Form File Pairing¶
A User Task form normally uses two files:
a JSON Schema file that describes the data shape;
a UI Schema file that controls layout, widgets, help text, and display behavior.
Keep these files paired. If you copy a User Task, confirm the copied task points to the intended schema and UI schema before running it.
Form Builder Views¶
When editing a form, use the three form builder views together:
JSON Schema for fields, types, required values, and validation rules.
UI Schema for widgets, layout, help text, readonly behavior, and submit text.
Data View for sample task data and rendered form preview behavior.
The Data View is especially useful when testing Jinja-rendered schema content.
Dynamic Forms¶
Spiff Arena renders a User Task’s JSON Schema and UI Schema through Jinja before parsing the result as JSON. Ed authors should prefer Jinja-rendered schema files for dynamic titles, dropdown choices, object properties, array item definitions, visibility settings, and UI options.
Use tojson whenever injecting strings, lists, dictionaries, booleans, or numbers into schema JSON.
The rendered result must be valid JSON.
Older process models may still use options_from_task_data_var:....
Do not use that pattern for new forms.
Common Form Enhancements¶
Spiff Arena and Ed-authored forms can use documented RJSF enhancements such as:
formatted number widgets;
calculated fields;
hidden fields from task data;
JSON text validation;
custom validation messages;
date range and date comparison validation;
typeahead widgets;
numeric range fields;
markdown widgets;
custom submit button text.
Before Finishing a Form Change¶
Run through this checklist:
The BPMN User Task references the correct schema and UI schema files.
The schema and UI schema use the same field names.
Required fields render visibly unless intentionally hidden.
Jinja templates render valid JSON with realistic task data.
Calculated fields do not depend on each other in a cycle.
The process runs to the User Task and accepts realistic sample input.