You are viewing the documentation for Blueriq 14. Documentation for other versions is available in our documentation directory.

What is it for?

A page is used for displaying parts of the application to the user. 

What is it?

A page is an interaction element used to communicate with your application users. A page is a type of Containment, an interaction element that can group attributes, text or other elements together. You can style a page to give it a different look and feel.

How to – create a new page

  1. Select the Home tab

  2. From the Interaction group select the Page icon
  3. Fill in the required fields
  4. Click on the arrow in the General field, left of the word Page (this opens the Containment field)
  5. Add containment to the page

Properties

PropertyDescription
NameThe only obligatory field. It identifies the object. Maximum 50 characters (only letters, numbers and underscores (_)) are allowed.
Functional nameOptional, can be used in documentation
DescriptionOptional
Display nameThis name can be used to display to the user
Content styleAn optional content style

Containment

What is it for?

Containments (Page, Container and Inline Containers) are used for grouping display elements together

How to – add containment to a page

A page is entirely made out of containers. A container itself can have containment, including other containers. Inline Containers are Containers that cannot be reused or have a Container Type.

To compose a page, please refer to add containment to a container. Both Page and Container are types of Containment.

Display names for pages and containers can contain Text Substitution Language: TSL

Editing containment while it is also open in another editor

Note that when a containment is expanded in another containment editor, and the containing containment is saved, the enclosed containment is also saved. This means that care has to be taken when a containment is edited while it is also openend in another editor.


What can a containment contain?

Attributes in containments

When an Attribute is placed in a containment, its question text will be displayed alongside an input field. If the attribute is placed as ReadOnly, then its value will be shown.

If the Attribute has a Validation rule set, then the validation will be triggered (and displayed if the validation fails) in these cases:

  • There is a Refresh set on the attribute (or a parent container)
  • The attribute (or a parent container) is set as Required and the validation is set as Blocking

Relations in containments

When a Relation is placed in a containment, a selected Container is displayed in which the Instance is active that is reached via that relation.

Please see the documentation on managing relations via containment.

Settings

PreCondition

This precondition is evaluated in order to determine if an element is placed on a page. Only when this expression evaluates to TRUE is its containment placed on the page.

Repeat

The contents of a container can be repeated. Previously you needed a dynamic container for this, the AQ_InstanceIterator. Now you can specify a repeat expression which determines how many times a container with its content is repeated. You can specify any expression that can evaluate to a set of instances.

For each instance in the set that results from the repeat expression, the container with its content is repeated. With each repetition an instance from the set is activated. You can determine the order in which the instances are activated by sorting on the value of an attribute (both ascending and descending).

A simple example: if you have a number of Person instances with attributes such as Name, Birthdate, you can easily create a page that displays all the Person instances with their data (sorted by Name). To do this:

  1. Create a container PersonData containing all the attributes of Person
  2. Put the container PersonData on a page
  3. Fill in the repeat expression for the container PersonData, e.g. ALL Person
  4. (optional) Sort the instances by Person.Name
The precondition and read-only expressions are evaluated independently from the repeat expression and the precondition is evaluated first. If you only want to repeat over a certain set of instances, you can solve this by using a COLLECT function.

Container

The container name. If you use an inline container, you have a save icon next to it to make it a reusable container.

Read only

With this parameter you are able to specify whether its containment should be editable or read only. This can be either TRUE, FALSE or conditional.

Presentation style

You can attach a presentation style to a container. To give you more flexibility we added the functionality to define multiple presentation styles each with a different condition (press the condition icon before the presentation style name).

Refresh

If refresh is checked, then the current page is refreshed (made current) whenever input changes within the containment.

This triggers Validation rule and can also trigger Flows if the Container type Container type: AQ_FlowOnRefresh is used.

Tip: Expanding / Collapsing containers

The top menu of Studio when modelling pages and containers looks like this:

When you want to expand or collapse containers, you can use the buttons on the right hand side of the menu.

Pressing the double plus icon will expand the selected containers to the lowest level. Pressing the single plus icon will expand all containers one level. The same applies for collapsing, the single icon collapses one level, the double icon collapses to the highest level.

For both expanding and collapsing, multiple containers can be selected by SHIFT+CLICK, CTRL+CLICK or selecting all by pressing CTRL+A, such that the double expand/collapse button applies to all selected containers.

Performance

Expanding large pages with deeply nested containers can be computationally heavy, so this may cause performance issues in Studio.

Inline abuse

Using inline containers relates all contained elements to the first available parent (page or reusable container). Using only inline containers will therefor decrease the ability to determine the usage of an element. Dependencies will only point to the parent element.