The forms leverage the rule engine to provide active and rule-based validation of the data while the form is shown. These validation breaks automatically attach to the data controls they relate to. The rules can be anything from simple validations (phone number format, required fields based on other forms data) to more complex rules leveraging database lookups, data contexts, and user rights.
The rule engine is also used to control the visibility of the form and enabled properties. Rules can be written to hide, disable, or even autocomplete a form based on any set of conditions. This makes the forms interactive and flexible as if they were coded by programmers instead of built in a visual designer.
The data that populates the form’s control can be provided by the workflow or can be looked up interactively using the rule/flow engine. The ability to change the data context of the form allows for user interactions such as:
Sometimes user interactions are so modified or specific that fully customized forms are the best option. Our form designer – while we are very proud of it – is ‘an option’ to provide user interactions. If custom forms are needed, they can be built with any technology. The engine will call the custom form and handle the response when the form interaction is done.
All forms can be reused in different workflows. If you have an approval form, it can be assigned to a user in a workflow, a group in a different workflow, etc. The data about what is being approved and who it’s assigned to is controlled by the workflow, not the form itself. This reuse allows for creating building block interactions that can be evolved and leveraged as the processes mature.
In addition to fully reusable forms, sections of forms – user controls – can be built and embedded into forms. This enables common interactions (like address editing) to be reused across the whole application.
There are a large number of user controls in the toolbox. All of the simple data editors (textbox, list, number editors, grid, dropdowns, file handling, etc) are included as well as composite controls like timelines and data repeater.