You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
Important
This Flowtype is only intended for:
a. Non-DCM applications
This Flowtype is not intended for:
a. DCM case modelling architecture including DCM Dashboards
b. External flow applications
All other older structures (in page modelling) are not supported.
As we intend to make FreeFlow a native component, also design time, at that moment in time it will become impossible to model FreeFlow in combination with the non-intented components. Therefor we strongly advise to not model it in this way if you wish to remain using only out of the box features.
What is it?
FreeFlows are used when sequential flowing does not suffice to navigate through your application. Using the FreeFlows the user is able to navigate via a menu to any chosen page that is modelled in a sequential flow, when using this way of flowing the validations are executed on every page but they are not blocking when navigation between pages, and only become blocked when end of the FreeFlow is reached.
What is needed for a FreeFlow application
A FreeFlow consist of combining several elements to create a free navigable application.
Element type | Type name | Explanation |
---|---|---|
FlowType | FreeFlow | The main flow to detect if an application should be using the free navigable strategy |
FlowType | Sub flows of the FreeFlow to which the user can navigated between. Each SinglePageFlow will become a menu item. | |
ContainerType | The menu container which displays menu-items using the page display title of the first page in the SinglePageFlow | |
ContentStyle | NavigationMenu | Default contentstyle of the AQ_NavigationMenu container |
How to use it
Flow Structure
A free navigable application always starts with an exposed flow of the type "FreeFlow", this is mandatory for the Runtime to detect whether the free navigation strategy or the default sequential strategy is used. Inside the FreeFlow you are free to model any nested flow structure, the exposed flow is not necessarily the free navigable application itself but enables to free navigation strategy.
Inside the FreeFlow itself, or one of its sub flows, a connected group of SinglePageFlows can be modelled to create a free navigable flow. These SinglePageFlows act as the entry points of navigation actions. It is advised to not have any flow actions in between the SinglePageFlows other than condition nodes.
When navigating between SinglePageFlows by using the navigation actions, a non-SinglePageFlow that connects the SinglePageFlows is used. If flow actions are necessary (not using pages), such a construct can be used. However when the user uses the menu to navigate, the Runtime jumps from SinglePageFlow to SinglePageflow and the intermediate flow(s) will not be executed. If certain flow actions are mandatory, make sure that they either reside in the SinglePageFlow (as they will be executed every time the flow is visited) or before first SinglePageFlow and after the last SinglePageFlow.
Navigation
The navigation menu of a free navigable flow is built by using the display title of the first page in a SinglePageFlow. For the navigation menu to be displayed, the pages of a SinglePageFlow should contain a AQ_NavigationMenu container. Navigating in a free navigable flow can be achieved via two ways:
- Using the sequentially modelled next button to navigate to the next SinglePageFlow
- Using the menu items in navigation menu to switch to an other SinglePageFlow
The order of the SinglePageFlows determines the ordering of the navigation menu. In case that a branch of SinglePageFlows is behind a condition node and it evaluates to false the whole branch is still displayed but disabled in the navigation menu, once the condition becomes true the branch is navigable from the navigation menu.
A free navigable flow still allows the user to navigate the flow sequentially from SinglePageFlow to SinglePageFlow. To achieve this each first page of the SinglePageFlow must contain a button with either no event attached to it, or an event with the name "NextPage". This button event should connect to the EndNode of the SinglePageFlow or a non-interactive FlowNode which leads to the EndNode. In order to navigate to the previously visited page a button can be placed on the page with the event "PreviousPage", this button does not need to be connected.
Validations
Validations in a free navigable flow are non blocking when navigating between SinglePageFlows, even when a "Validate and continue" event type is present on the next button. The AQ_NavigationMenu container is able to set an Attribute which contains the validation status of all pages in a free navigable flow. This attribute can be used to check if the free navigable flow has been completed correctly without pending validation errors.
Blocking errors
Model breaking errors like invalid inputs e.q. filling a String value into a Number field are still blocked.
Read-only fields
In a free navigable flow, validations on read-only fields are also validated. This is different behavior towards a standard sequential flow.
Constraints
The new navigation concept is introduced as Runtime concept, that is triggered by a specific model structure and naming convention.
- The exposed flow must be of type FreeFlow.
- The SinglePageFlows should be directly connected to each other inside a free navigable flow.
- The FreeFlow can contain other flow types before entering of the first SinglePageFlow, and after the last SinglePageFlow but not in between SinglePageFlows.
- All validations on pages modelled in SinglePageFlows become non-blocking validation errors.
- The display title of the first page of a SinglePageFlow will be used to populate the AQ_NavigationMenu container.
- The AQ_NavigationMenu container should always be modelled in the first page of the SinglePageFlow, or it will not be displayed.
- Condition nodes modelled in between SinglePageFlows will act as preconditions for buttons that make up the AQ_NavigationMenu container.
- The SinglePageFlow's first page default (empty) or "NextPage" button event must be connected to an EndNode or an non interactive FlowNode that leads to an EndNode
Accelerator
An example project for this feature can be cound in the Accelerator section.