Forms are defined per Activity. You can easily create reusable forms as well. These can be embedded into any other form.
Each form can contain Tabs, Groups, or embedded forms. Groups can be collapsed or expanded at run time, either manually by users or in code.
The Behaviour (Editable/Visible/Required) of each field can be set in the design. This can also be set to an expression, allowing changes to made at run time in code. What is very useful is that the behaviour of the containers can also be changed, and by default, all of the fields inherit this behaviour. This can be overridden for particular fields, however.
The layout elements provide a comprehensive way to design forms so that layout can be preserved across platforms. As layouts can be nested, the options are not limited in any real way.
Finally, the default 'Save' and 'Next' buttons can be overridden and changed. These can be made to do different things, added to or removed. In our demonstration we show a few ways to make use of this to make the interface more familiar or simple to your users.
definition of Define Forms
Define Forms lets you define all the user interface forms for the users to enter and view data, and you can apply these for each of the activities in the process, or create reusable forms to use in any activity.
an example of defining forms per activity
The forms are defined per activity.
an example of drag and drop
an example of drag
an example of drop
Typically, you can add any process data to the form with a simple drag and drop.
an example of adding sub-attributes
All the sub-attributes of all linked entities are also available for adding to the form.
an example of the Layout option
an example of drag in the Layout option
an example of drop in the Layout option
There is a Layout option, where for any part of the form, you can add layouts. These can be one, two or three columns, and can be adjusted manually.
an example of nested Layouts
an example of drag in nested Layouts
an example of drop in nested Layouts
These Layouts can also be nested. This gives you full flexibility for designing your forms without requiring you to define exactly where things go, and allows it to be much more flexible when you are viewing it in different platforms, such as, tablets, mobile phones and desktops.
an example of Controls
As well as this we have all the basic, and complex, Controls.
an example of Groups, Panels and Tabs
We also have Groups, Panels and Tabs.
an example of Tabs
The Tabs behave as you would expect when there are different tabs on the same form.
an example of adding many Tabs
You can have different Tabs on the same form and add as many Tabs as you wish.
an example of adding fields within a Group
Groups are basically groups of any fields. Any fields can be added within a Group. The advantage of these is that you can set the properties of the entire Group in one go. You can hide or show a whole group of fields, and set the behaviour of the fields, making the whole thing 'read-only', and this dynamic at run time as well.
If you change that to an Expression, then it will be evaluated and it will change the behaviour of that entire group. You can also do the same with individual Fields, but this allows you to do it with an entire Group, which is a good shortcut.
an example of how to expand or collapse a group at run time
At run time, these groups can be expanded or collapsed, both manually (by the user) and programmatically (in code).
an example of copying form contents from an existing Activity
When creating a form for an Activity, you are able to copy the form contents from an existing Activity. You can select any activity, click on OK, and it will copy everything from the selected form into your current form. This is a quick way of copying existing functionality.
an example of a reusable form
You can also create reusable forms.
an example of a reusable form not tied to any activity
This is a reusable form created that's not tied to any activity, and it can be dragged onto any other form.
an example of an embedded form
This form is entirely separate, and if that changes, the reflections are changed on all instances of the form. It is not a copy, this is an embedded form.
selecting if the embedded form is Visible of Editable
With this embedded form, you can decide whether it is Visible and Editable, and it's all possible to change programmatically, as well.
an example of the buttons at the bottom of the form
By default there are buttons at the bottom of each form and these are managed by the system. You can choose to override these, however, and define your own behaviour, or even your own additional buttons. You can have as many as you like, and they can be hidden or shown, programmatically, depending on the data that's input.
an example of changing the Caption
With these buttons you can change the Caption, change whether they save the data, close the Activity or commit that Activity and go on to the next one. Like all fields, you can also change whether or not they are visible, and this can be defined by an Expression to be evaluated at run time.
This allows you to override the default behaviour, and easily create 'chained' forms with sophisticated selection logic if required.
an example of a Button execution
There's a Button execution, which by default is None for newly added buttons. You can decide whether or not they follow a business rule, and select an existing Rule or create a new one.
an example of a Service URL
Alternatively, you can call different Interface. This is a Service URL for SOAP or REST.
an example of Actions & Validations
Each form allows Actions & Validations. You can Add any Action to execute code, or run any Validations, including existing Business Rules.
an example of a Condition
There is a lot we can do at any time without having to write code. You can add a Condition when almost any event occurs, such as when a field changes. You can specify quite complex rules, and then add the Action you want to execute.
an example of adding a Validation
You can also add any Validations. Here, for example, if the Order Item Cost is greater than 3000 the system shows a simple message. You can Add any number of conditions, using and/or condition groups.
an example of Validate the Data
This will run when the data is validated. This happens if you have a button there to Validate the Data, and also on submitting the form.
[image of field formatting]
Many formatting options are available for fields, depending on the field type.
an example of Copy Format
You can also copy the applied formatting from any field to another field.