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

What is it for?

The AQ_Aggregate_List is used for displaying a (filtered) list of Aggregates on a Page. This list can display (custom) metadata and Buttons that trigger Events

Introduction

To perform manual actions on an aggregate, it is necessary to have a list of aggregates that can be selected to be manipulated by the user. This list container is very similar to other list containers, such as the worklist and caselist (see Rich Containers for Lists). The aggregate list container can be used to create a tabular overview of aggregates. The aggregates will be displayed in a table, which consists of columns that can contain metadata, custom metadata and actions (buttons and events) that load the AggregateId of the selected Aggregate into a selected Attribute.

Table of contents

Encore

Below an example of the definition of a container of type AQ_Aggregate_List is shown, that results in a list of person aggregates.

Parameters

Name
Description
Type
Required
Aggregate TypeSelect the aggregate type you want to list. This is a combo-box that lets you select one of the aggregates defined in your project.AggregateYes
Display text when emptyThis lets you select a defined Text Item, using a dropdown box. If there are no entries at runtime, it is displayed instead of the table.Text itemNo
Target Attribute Aggregate ID

This lets you select an attribute of a singleton entity. On this attribute the Id of the selected aggregate entry is stored.
If an end user presses on a button in the list, behavior is triggered for the aggregate on that row. The aggregate Id is set in the profile and can later be used in the flow.

AttributeNo
Target Attribute Aggregate VersionThis lets you select an attribute of a singleton entity. On this attribute the version Id of the selected aggregate is stored.
If an end user presses on a button in the list, behavior is triggered for the aggregate on that row. The aggregate version is set in the profile and can later  be used in a flow.
AttributeNo
Paging sizeThe number of entries displayed per page in the aggregate list.NumberNo
Show only latest versionWhen this option is selected, only the newest version of the aggregate is shown as entry in the list.CheckboxNo
Search QueryWhen you want to search through the content of aggregates, you can specify a search query here. This typically is an attribute that is placed on a page so that the user can enter a search string. More information can be found here: Search in structured and unstructured informationExpressionNo

AggregateList Contents

There are three types of columns that can be used in an aggregate list container:

  • Columns of the Metadata type are used to identify an aggregate. The possible data fields are retrieved from the aggregate database. A typical example of a metadata column for any aggregate is CreationDate.
  • Columns of the CustomMetadata type are used to display information about and find aggregates based on functional data. Theses custom metadata fields are defined in the aggregate definition and are expressions. A typical example of a custom metadata column for a Person aggregate might be Name, which is the concatenation of first name, suffix and last name.
  • Columns of the Action type are used to add buttons and events that will be triggered for a given aggregate. A typical example of an action for any aggregate is a Read.

Column Options

Metadata and CustomMetadata

  • Header: Select a Text Item that is used as column header.
  • Visible: You can make a column (conditionally) (in)visible to the user. This can be very useful in combination with a filter.

    A list always needs at least one column to display something, so when making column (conditionally) invisible, make sure that there always remains at least one column that is visible in all cases. Otherwise an error will be thrown and the list will not be rendered.

  • Filter: A filter can be applied to the Metadata columns to filter the results shown in the aggregate list.

    The data type of the filter expression field should match with the data type of the column. E.g., for a currency column, the filter expression 100 does not work, but the expression CURRENCY(100) does work.

  • Metadata: An attribute from the aggregate (custom) metadata that you want to show in a column.
  • Mask: A mask can be specified that is applied to the shown entry.
  • Ordering: You can sort aggregates in the list based on ascending or descending order of values in a column. This is a default setting and can be overwritten by the user at runtime.
  • Conditional Presentation Styles: Different presentation styles can be added to an aggregate column. If conditions are filled in for the presentation styles, these will be applied on cells that fulfil the condition. 

Actions

  • Header: Select a Text item that is used as column header.
  • Visible: You can make a column (conditionally) (in)visible to the user.
  • Button: A button that will enable interaction on an aggregate. Pressing the button will trigger the event defined in the same column. 
  • Event: An event, triggered by the button in the same column definition, that enables flow and thus behavior on an aggregate instance from the list.
  • Event type: Event type,  select the appropriate event type:
    • Continue - stores all user input, even if it is not valid. Typically used to initiate an action without leaving the page. Choosing this Event type becomes visible in a flow as a yellow circle attached to the page.
    • Validate and continue - validates and stores all user input. Typically used when leaving the page with an OK, Next or Continue button. Choosing this Event type becomes visible in a flow as a blue circle attached to the page.
    • Cancel - does a rollback of the current page or (transactional) flow, nothing from this page or transaction is stored. Typically used when leaving the page with a Cancel or Back button. Choosing this Event type becomes visible in a flow as a blue circle with a cross inside attached to the page.
  • Conditional Presentation Styles : Different presentation styles can be added to an aggregate column. If conditions are filled in for the presentation styles, these will be applied on cells that fulfil the condition. 


FilterFilter DatatypeDatabase DatatypeDescription
EqualsAll single-valued datatypesAll single-valued datatypesResults in true if the value in the database equals the filter value.
EqualsAll single-valued datatypesMulti-valued datatypesResults in true if any value in the database matches the filter value.
Not equalsAll single-valued datatypesAll single-valued datatypesResults in true if the value in the database is different to the filter value.
Not equalsAll single-valued datatypesMulti-valued datatypes

Results in true if there is no same value in the database compared to the filter value.

4 Not equals [1,2,3]  = TRUE

1 Not equals [1]  = FALSE

1 Not equals [1,2,3]  = TRUE

Less thanAll single-valued datatypesAll single-valued datatypesResults in true if the value in the database is less than the filter value.
Less thanAll single-valued datatypesMulti-valued datatypesResults in true if there is one value in the database that is less than the filter value.
Less than or equalsAll single-valued datatypesAll single-valued datatypesResults in true if the value in the database is less than or equal to the filter value.
Less than or equalsAll single-valued datatypesMulti-valued datatypesResults in true if there is one value in the database that is less than or equals the filter value.
Greater thanAll single-valued datatypesAll single-valued datatypesResults in true if the value in the database is greater than the filter value.
Greater thanAll single-valued datatypesMulti-valued datatypesResults in true if there is one value in the database that is greater than the filter value.
Greater than or equalsAll single-valued datatypesAll single-valued datatypesResults in true if the value in the database is greater than or equals the filter value.
Greater than or equalsAll single-valued datatypesMulti-valued datatypesResults in true if there is one value in the database that is greater than or equals the filter value.
LikeStringSingle-valued stringResults in true if the filter value is a substring of the value in the database.
LikeStringMulti-valued stringResults in true if the filter value is a substring of one of the values in the database.
Not likeStringSingle-valued stringResults in true if the filter value is not a substring of the value in the database
Not likeStringMulti-valued string

Results in true if the filter value is not a substring of each value in the database.

"d" Not like ["aa","bb","cc"]  = TRUE

"a" Not like ["aa"]  = FALSE

"a" Not like ["aa","bb","cc"]  = TRUE

InMulti-valued datatypesAll single-valued datatypesResults in true if the database value is a part of the filter value. If you use a single-valued filter, this function behaves as Equals.
InMulti-valued datatypesMulti-valued datatypesResults in true if one value of the the database value is a part of the filter value.
Not inMulti-valued datatypesAll single-valued datatypesResults in true if the database value is not a part of the filter value. If you use a single-valued filter, this function behaves as Not Equals.
Not inMulti-valued datatypesMulti-valued datatypesResults in true if one of the database values is not a part of the filter value.

When a database value is unknown, the filtering always returns false.

Runtime

How this container looks at runtime can also be found here: Rich Containers for Lists

In runtime, the aggregate list is a table with rows and columns, as shown in the example below.

All columns of the aggregate list above can be sorted (ascending and descending) in runtime to let a user override the default sorting as defined in Encore.

Filtering is possible on (custom) metadata columns and differs for each datatype, as will be explained in the next section. Providing more than one filter will combine the filters. So in this example, filtering the boolean column on true values and filtering the number column on value 4 results in an empty list.

Filtering

Boolean

Filtering a boolean value can be done by selecting whether to show rows of the list with value true and/or value false and/or value unknown.
It is possible to select any combination of the three options.

Value list

Filtering a column which is bound by a value list resembles the functionality that is available in many table-oriented applications, such as Microsoft Excel.
All distinct values of the value list are available in a list and the user can select and deselect items at will.

Unknown values can be included and excluded from the filter by using the "Show Unknown" checkbox, which is by default selected. This means that by default, all rows of the list where the value is unknown, are also shown.
The checkbox "Select All" can be used to quickly show the complete known content of the column again, so it will clear the provided filter for this column.

String

To filter a string column of a list, you simply type (part of) the string that you are looking for.

By default, unknown values are also shown. To disable this, deselect the checkbox labeled "Show Unknown".
The checkbox "Show All" can be used to quickly show the complete known content of the column again, so it will clear the provided filter string for this column.

Number

Filtering a number (integer, numeric, percentage or currency) provides three options.
It is possible to filter only values that are equal (=) to a certain value, greater than or equal to a certain value (>=) or smaller than or equal to a certain value (<=).
It is possible to combine the greater than or equal to option (>=) with the smaller than or equal to option (=<) to establish a range.
Combining (>=) or (<=) with (=) is not possible, since (>=) and (<=) already contain the boundary-numbers.

By default, the "Show Unknown" checkbox is selected. This means that by default, all rows of the list where the value is unknown, are shown.
The checkbox "Show All" can be used to quickly show the complete known content of the column again, so it will clear the provided filter values for this column.


Date(time)

Date an datetime filtering strongly resembles number filtering.

Filtering a date also provides three options.
It is possible to specify to filter dates that are equal to a certain date (On), from a certain date (From) and to a certain date (To).
Combining the From and To option is possible to establish a period in time.
Combining From or to with On is not possible, since From and To already contain the boundary-date.

By default, the "Show Unknown" checkbox is selected. This means that by default, all rows of the list where the value is unknown, are shown.
The checkbox "Show All" can be used to quickly show the complete known content of the column again, so it will clear the provided filter values for this column.

Datetime filtering works the same as date filtering, with the addition of a timestamp HH:mm.

To get a better understanding of aggregates take a look at: Example project Persistency management.

Some messages that this container needs should be configured in the message.properties. These can be found here: Customerdata Client component