Form
Form Activities present input Forms to Users for entering, modifying, inspecting or signing data. The Forms are composed of Form Controls providing various interaction methods like Buttons, Text Fields, Checkboxes, etc.
There are four different way how Form Activities can be left and the Process continued. The fist three ones are:
- Action - Actions are triggered by Users when they finish a Form. Actions are configured in the Form Controls menu.
- Timeout - Timeouts are triggered when their duration is elapsed or the specified point in time is reached. Timeouts are configured in the Timeouts section of the Form Activity Configuration.
- External Trigger - Forms can be send to external contributers not having a User for the Novunex Subscription. In that case, the API has be to used to compose an URL. With this URL it is possible for anyone to access the From in a Web Browser and complete the From Activity.
Actions, Timeouts and External Triggers share the same logic for their Outcomes. All have Outcomes associated with them by linking them manually with Outcome names. If multiple Outcomes have the same name, all Outcomes are associated with the corresponding Actions, Timeouts or External Triggers. When Actions, Timeouts or External Triggers are set off and the Form Activity is left, the Script of all associated Outcomes will be evaluated. Each Outcome with a script evaluating to true
will be followed. If more than one Outcome script evaluates to true
, the Process is paralleled. If no Outcome script evaluates to true
, the Instance will be ended by entering the closed
-state.
Delegations are the fourth way to leave an Activity. Here, the Outcomes have to have a specified name, in contrast to Actions, Timeouts and External Triggers:
- Delegation - Users can delegate the Form to other Users Groups or individual Users. To which Users Groups and Users a Form can be delegated to is configured in the Delegation filter user groups and Delegation filter users of the Form Activity SETTINGS. When Users complete the Forms delegated to them, the Form Activity is left by the Outcomes called
Delegate
. Thus when working with Delegations, at least one Outcome calledDelegate
must exists. If multiple Outcomes have the nameDelegate
, all Outcomes are associated with the Delegation. When the Form Activity is left, the script of all associated Outcomes will be evaluated. Each Outcome with a script evaluating totrue
will be followed. If more than one Outcome script evaluates totrue
, the Process is paralleled. If no Outcome script evaluates totrue
, the Instance will be ended by entering theclosed
-state.
Delegations obviously change the current User of a From, which must be kept in mind if your Process needs to keep track of the current User. In this case, you have to update the current User information in your Process after a From was left via the Delegate
Outcome. This can be done by reading the new current User from the Variable configured in Delegation to variable.
Delegation can be disabled by:
Delegate
Row Level Security is another special features of the Form Activity, since it only applies to Form Activities. Therefore, all other Activities can work and manipulate data without any restrictions by Row Level Security. Hence, you have to make sure that the Variable backing a Form Activity has the correct Row Level Security granting access to Users working with the Form.
Activity config
General
General behavioral configuration, shared with most other activities
- Name - Name of the Activity.
- Version - Version of this Activity used in the Process. If a new version of this Activity is available and you want to use it, you have to manually update the version here. When a new Activity is added to the Process, automatically the latest version is placed.
- Timeout in second - Once this time is elapsed, the Activity will be closed and the Process continued. The default Timeout is two minutes. The timeout can be shortened and extended by entering a custom duration. The option Timeouts in the FROM section offers a more fine-grained timeout configuration than this general timeout and is therefore preferred over this option. However, if the Activity is left after a timeout configured here, the first Outcome is followed. If multiple Outcomes have the same name as the first Outcome, all of them are followed. However, a continuation after a timeout does not effect the Outcome Scripts, meaning only Outcomes with Outcome Scripts evaluating to
true
are followed. - Hide in process graph - Controls if the Activity is hidden (Yes) or shown (No) in the Process Graph on the Execution Screen.
- Continue on error - If this is set to Yes, the execution of the Instance continues even if the Activity failed. If set to No, the Instance fails when the Activity fails by entering the
faulted
-state. In the case of a continuation after an error, the first Outcome is followed. If multiple Outcomes have the same name as the first Outcome, all of them are followed. However, a continuation after an error does not effect the Outcome Scripts, meaning only Outcomes with Outcome Scripts evaluating totrue
are followed.
Form
From Activity specific configurations
GENERAL
General interaction configuration
- Disable activity - Disables (Yes) or enables (No) the Activity. When disabled, the Activity is not executed and passed like a Connection by following the first Outcome. If multiple Outcomes have the same name as the first Outcome, all of them are followed. Disabling the Activity does not effect the Outcome Scripts, i.e., still only Outcomes with Outcome Scripts evaluating to
true
are followed. - Retry on error - If set to Yes, an automatic retry is executed up to ten times. If set to No, no retries are done. Retries are issued when the Activity failed so that the Instance would enter the
faulted
-state if the retry is disabled. - Additional text for task list - Description of this Activity shown to the Users in their task list. You can enter this text directly or use Process Context Expressions to compile it.
- Process graph location - Set the location of the Process Graph to either the Right or the Top section of the Execution Screen. The Process Graph shows the Process Graph Widget and the Process History Widget, if the location is set to Right. If the location is set to Top, the Process Graph only shows the Process Graph Widget and does not show the Process History Widget.
- Hide process history widget - Hides (Yes) or shows (No) the Process History Widget in the Process Graph. This option is only available if the Process graph location is set to Right. If the Process graph location is set to Top, the Process History Widget is not shown and this stetting is hidden from the configuration. Furthermore, the Process History Widget is never shown in the Process Debugger, regardless of this setting.
- Hide form task in task list - Hides (Yes) or shows (No) the Form Activity on the Task List of the assigned User or Users.
- Hide process graph widget - Hides (Yes) or shows (No) the Process Graph Widget in the Process Graph.
- Additional text for task list - Description of this Activity shown to the Users in their task list. You can enter this text directly or use Process Context Expressions to compile it.
- Task due date - Specifies the due date of this Activity shown to the Users in their Task List. You can enter this text directly or use Process Context Expressions to compile it.
FORM
Form design and configuration:
-
Form design and action - Edit opens the Form Designer allowing you to design and configure the actual Form and its Form Controls.
-
Instructions - By clicking Edit a text editor is opened allowing you to enter detailed and formatted descriptions of the Form. The Users can read the instructions in the Process Graph Widget.
-
Owners - Edit opens the Task Owners configuration. Here you can configure whole User groups and individual Users that get the From assigned in their Task list. There two ways to specify the desired User groups:
- Add User Group - Add a User Group by specifying the User Group’s name directly
-
Add Variable - Add a User Group by specifying a Variable in Process Context Expression Notation holding the User Group’s ID. This can be a Context Variable or an Attribute specified in Process Context Expression notation like
#[MyEntityVar.MyGroupAttribute.Id]
or#[MyContextVar]
containing the User Group ID.
Similarly, the Users can also be specified in two ways:
- Add User - Add a User by specifying the User’s name directly
-
Add Variable - Add a User by specifying a Variable in Process Context Expression Notation holding the User’s ID. This can be a Context Variable or an Attribute specified in Process Context Expression notation like
#[MyEntityVar.MyUserAttribute.Id]
or#[MyContextVar]
containing the User Group ID.
allows you to delete any configured User Groups and Users again.
If no User Groups or Users are configured, all Users in any Group will see the Form in their Task Lists.
-
Timeouts - Edit opens the Timeout configuration. This is preferred over the Timeout in second configuration on the General behavior configuration, since it allows a more fine-grained configuration of the Timeout. By clicking Add Timeout a new Timeout can be added:
- Type and Value - The Type sets how the Value has to be specified:
- Type set to
Minutes
- Value must be a positive integer specifying the Timeout duration in minutes. The duration starts running, when the Instance enters the Form, which might be much earlier that when the User actually opens the Form. This type of timeout is reset, when the Form is delegated. However, it is not reset when the Form is re-entered without a delegation. If you want to reset the Timeout when the Form is reentered, you have to use theVariable
type and calculate the expiration time explicitly. - Type set to
Specific date & time
- Value is a specific date and time entered directly that sets when the Timeout runs out. - Type set to
Variable
- Value has to be a Variable or an Attribute specified in Process Context Expression notation like#[MyEntityVar.timeout]
or#[MyContextVar]
. It has to hold a Date Time specifying the point in time when the Timeout runs out. Using a Process Context Expression to calculate the time here is not allowed, i.e., it has to be precalculated and already stored in a Variable.
- Type set to
- Max Loops - If the Process has loops and therefore the Timeout is triggered multiple times, Max Loops sets the limit how often the Timeout can be triggered before the Instance will fail. The loop counter will continuously count up until it reaches Max Loops and is not reset if the Form is delegated to another user. In other words, the loop counter is counted per Instance and not per User. Max Loops cannot be disabled. If you set it to zero or to a negative value, the complete Timeout is disabled.
- Outcome - The Outcome to leave the Activity after a Timeout was triggered.
- Type and Value - The Type sets how the Value has to be specified:
SETTINGS
Variable and delegation settings:
- Variable type - Sets the Entity Type of the Variable backing this Form Activity. A specific Entity Type can be selected here, but it is also possible to not set a specific type by selecting
(None)
. The behavior of the Variable type setting is always determined in conjunction with the Variable setting. All possible combinations are explained in the Variable setting description down below. - Clear attributes - Clears the listed Attributes in the Variable specified in Variable. Multiple Attributes can be entered separated by a comma
,
and a space - Delegation filter user groups - A delegation of this Form is allowed to the Users Groups listed here. If no User Groups are set here and no Users are set below, the Form can be delegated to any User. If one or more Users and User Groups are set, the Form can only be delegated to the specified Users or User Groups. A User Group can be added by clicking Add. User Groups are entered by their name or ID. A User Group can be removed by clicking on .
- Delegation filter users - A delegation of this Form is allowed to the Users listed here. If no Users are set here and no Users Groups are set approve, the Form can be delegated to any User. If one or more Users and User Groups are set, the Form can only be delegated to the specified Users or User Groups. A User can be added by clicking Add. Users are entered with their email address. A User can be removed by clicking on .
- Delegation to variable - If the Form is delegated, the User to whom the form is delegated is stored in this Variable. If an Entity Variable is used, it has to be of Entity Type User. This field must not be empty, if delegation is enabled.
- Delegation from variable - If the Form is delegated, the User delegating the Form is stored in this Variable. If an Entity Variable is used, it has to be of Entity Type User. This field must not be empty, if delegation is enabled.
- Variable - Name of the Entity or Context Variable backing this Form Activity. The Form Activity loads values from the Attributes of the configured Variable when entering and stores values if exiting by either
Save
orSign and Save
Actions. No data will be modified when exiting by aDiscard
Action. When exiting with aSign
Actions, only the Signature is stored but no nothing else. How the Form Activity interacts with the Variable is configured in conjunction with the Variable type setting:- Variable set to an existing Entity Variable and Variable type set to
(None)
:- The Attributes in the specified Entity Variables are updated with the values entered by the User into the Form Controls.
- Other Attributes directly referenced by
VariableName.Attribute
are updated in the original VariableVariableName
. - Values from Form Controls linked to non-existing Attributes or Variables are discarded.
- Variable set to an existing Context Variable and Variable type set to
(None)
:- The existing Context Variable is deleted and a new Context Variables with the same name is created.
- The new Context Variable gets the Id / Name field of all Form Controls as its Attribute Names. This is regardless if only the Attribute
Attribute
or the full nameVariableName.Attribute
is used in the Id / Name field. In any case, the complete string is used as the name of the new Attribute in the specified Context Variable. I.e., all data entered in the Form Controls is stored in the Context Variable. - Other Attributes directly referenced by
VariableName.Attribute
in Form Controls are not updated in the original VariableVariableName
.
- Variable set to an non-existing Variable name and Variable type set to
(None)
:- A new Context Variables with the same name is created.
- The new Context Variable gets the Id / Name field of the Form Controls as its Attribute Names. This is regardless if only the Attribute
Attribute
or the full nameVariableName.Attribute
is used in the Id / Name field. In any case, the complete string is used as the name of the new Attribute in the specified Context Variable. I.e., all data entered in the Form Controls is stored in the Context Variable. - Other Attributes directly referenced by
VariableName.Attribute
in Form Controls are not updated in the original VariableVariableName
.
- Variable set to an existing Entity Variable and Variable type set to an Entity Type different to the Entity Type of the specified Entity Variable:
- This is not allowed and the Process will fail.
- Variable set to an existing Entity Variable and Variable type set to the Entity Type of this Entity Variable:
- The Attributes in the specified Entity Variables are updated with the values entered by the User into the Form Controls.
- Other Attributes directly referenced by
VariableName.Attribute
are updated in the original VariableVariableName
. - Form Controls that are linked to Attributes not existing the the specified Entity Type are discarded.
- Variable set to an existing Context Variable and Variable type set to a specific Entity Type:
- The Context Variables is deleted and a new Entity Variable of the specified Entity Type and with the same name as the Context Variable is created.
- The Attributes in this new Entity Variable are set to the values entered by the User into the Form Controls.
- Other Attributes directly referenced by
VariableName.Attribute
are updated in the original VariableVariableName
. - Form Controls that are linked to Attributes not existing the the specified Entity Type are discarded.
- Variable set to an non-existing Variable name and Variable type set to a specific Entity Type:
- A new Entity Variables with the given name is created.
- The Attributes in this new Entity Variables are set to the values entered by the User into the Form Controls.
- Other Attributes directly referenced by
VariableName.Attribute
are updated in the original VariableVariableName
. - Form Controls that are linked to Attributes not existing the the specified Entity Type are discarded.
- Variable set to an existing Entity Variable and Variable type set to
The following two rules apply regardless of the Variable and Entity Type configuration: