Workflows and Tabbed Dataforms
Tabbed dataforms comprise a parent (home form) and child forms, which are extensions of the parent. The following image is an example of the Employee dataform with four tabs: Employee Benefits, Employee 401k, COBRA, and State Continuation. This is a tabbed set of dataforms.
When configuring Workflows, you can reference data from a tabbed dataform set on the:
• | Content step |
• | Conditions step |
• | Notifications step |
On the Content and Notifications steps
On the Content and Notifications steps, you can set user fields to values that exist on dataforms across a tabbed set. Let's say that you have a parent dataform, and it has a few child dataforms — we call this a tabbed relationship. You want to be able to reference user fields on both dataform types. (Note, we can also have a parent-child relationship that is not tabbed.)
• | In the Content step, when you select Assigned To, the Assigned to Options dialog box offers the User Source as Current User, Specific User, and From a Field on a Form. |
• | In the Notifications step, when you select None, the Options dialog box offers User Source as None, Specific User, and From a Field on a Form. |
• | For both steps, when you select From a Field on a Form, when you select From a Field on a Form, you must complete the configuration by choosing a dataform and field. |
The user type fields on workflow item tasks and dataforms include any child forms containing a user datatype field in a tabbed relationship with the available selected dataform when the user source option of From a Field on a Form is selected. The child form name has an asterisk, as in the following example: *Employee -- Project User (ProjectUser)
.
These tabbed form fields appear in the Field list below the primary form field in the tab relationship and are formatted as follows:
*<ChildFormName> — <UserFieldName>
Example: A form named Form Parent is in a tabbed relationship with Form Two and Form Three. Form Two and Form Three are child forms to Form Parent. Each form has user fields.
Let's say you have the following scenario in the Assigned To Options dialog:
• | In Dataform, Form Parent is selected. |
• | In Field, the fields for Form Parent are listed at the top of the Field selector, and fields from the child forms are available below the primary form in the following format: |
*Form Two -- User By Role (fkUserByRoleID)
*Form Two -- Specialist User (fkSpecialistUserID)
*Form Three -- Other User (fkOtherUserID)
Keep in mind, all these fields are user fields. You can select any user field from a child dataform. You can also select a user field from the parent form and any single dataforms.
Example: The following example shows a parent form named Tony Test Form in the Dataform list. Tony Test Form is a parent form to Form One. When Tony Test Form is selected, the Field field displays all user-related fields from the parent form and child form. For Fields, you can select a field from the parent form (in this case Tony Test Form) or you can select fields from any child dataforms. Child forms are denoted with an asterisk (*), as shown in the following example.
On the Conditions Step
Source and Field lists
The Source list includes the triggering form and its tabs, the channel trigger (i.e., the original form that started the channel), all triggerable, active single-forms, and the tabs of those single-forms. Applicable server data procs, if configured, and other workflow items, such as a HdrAction, may also be included.
Note: HdrAction is only available when the Source is the parent triggering form. If Source is anything other than the Triggering Form, HdrAction is not available in the Field list.
In the Source list, the primary tabbed dataform precedes the child tabbed forms. The child dataform names are prepended with a dash (–). The Field list is filtered based on the selected Source.
This example shows that for the Source column, Tony Test Form is the parent, and Form One is the child.
The following example shows the Source column with a child dataform selected (-Form One) and in the Field column, a field named State Lookup 2 is selected.
Conditions
Condition Expressions operators (AND, OR, and NOT) work across multiple dataforms. You can configure conditions for task workflow channel items from the most recent parent dataform if your tasks are multiple levels deep. This enables you to refer back to the child dataform logically. (For example, a milestone triggers a Case, and the Case triggers multiple layers of Tasks, all Tasks can reference the Case).
• | Source includes the most recently referenced dataform that would trigger the initial task (single or multi). |
• | Condition Expressions operators (AND, OR, and NOT) work across multiple dataforms. |
• | IsDirty does not appear in the trigger operator list because the task can be separated from the dataform by several other tasks; the dataform may not be dirty. IsDirty is only available for the triggering form. Child forms or other single dataforms in the workspace should never be dirty unless the change is occurring there. |
• | The Add Untriggered functionality is available when adding fields from this source. |
• | If the most recent dataform is the main triggering dataform for the workflow, the condition Source is Channel Trigger: <NameOfTriggeringForm>. |
• | If the most recent dataform is a cloned dataform workflow item, the condition Source is Workflow #<ItemNumber>: <ItemName>. |
For tabbed form fields that are used in triggering workflows, you cannot delete or inactivate any of the fields. The system indicates where the field is used: Channel: <Workflow Channel Name>, Item: <Workflow Channel Item Name> (with a clickable link to the affected Workflow Channel configuration). Delete is enabled when all dependencies are cleared.