Web services can now be run in asynchronous mode; a higher
level API makes specifying workbook template
instantiations much more concise and easier to manage.

Modeler-js applications will receive a number of features
automatically, such as right-click menu for quick access to
various functionalities, as well as new display options
for images, booleans, and strings.

What's New

Database

Pages with little data not only impact database performance
negatively, but also unnecessarily waste disk space. We
improved the handling of such underfull btree pages such that
they no longer occur. This improvement significantly improves
the performance of database workloads that have random
insertions or updates. The duration of transactions with
random insertions will significantly improve. Disk usage is
also reduced consequently.

Services Framework

Asynchronous services: long running services can now be run asynchronously.
In the asychronous mode, services can continue running server-side without the need for an open connection
between client and server, therefore minimizing the risk of
transaction aborts due to connection timeouts.

Please refer to the
Asynchronous Services chapter in the reference manual for a more detailed
overview of this feature.

Tabular Data Exchange (TDX) now supports int128 types bound to string columns.
Furthermore, it supports a new column format called uuid that accepts
UUID strings and can be bound both to string as well as
int128 types.

Measure Service

The measure service can now infer a default hierarchy for
a dimension if the dimension is linear
(where there is bottom level, and there are unique level
mappings to each parent level).

Default value inference improvements for CubiQL:

A CubiQL expression can now have a default value,
yet still be considered for inlining.

Default value inference will now propagate default values through
many more kinds of CubiQL expressions.

Note

If you encounter a situation where an expression does not
receive a default value, let us know and we can investigate
whether the use case can be supported.

Workbook Services

A higher level API is now available for developers to more easily
configure the creation of workbooks from templates.

The list of measures included in a workbook can now be configured
through the new measure_access attribute in the
Workbook and WorkbookTemplate configuration message.
The configuration of measures through the measures field in the
Workbook message is no longer supported.

Note

Right-click menu:
Commonly accessed functionalities such as copy, paste,
sort, etc., are now also available through right-click
on mouse. The menu options are context-sensitive:
depending on the placement of the mouse when right-click
is initiated, different options are enabled.

Example 3.

The figure below illustrates all the options that are now available
in a central place, only one right-mouse click away.
In earlier versions, these options were available in various places
throughout the UI, such as the settings
cogwheel, or as a right-click option on a level pill.

Charting Improvements:
We've added the following improvements to the chart mode of the grid:

It is now possible to configure charts where multiple measures
appear side-by-side. In previous releases we only supported
stacked bar charts when there were multiple measures to display.

Limitations

Note that stacked bar charts are currently not
supported, nor the ability to use different colors for
different measures. We expect to add these
capabilities in an upcoming release.

It is now also possible to use the name of Measures as a "column".
For instance, in the chart above, the name of measures each became a column, nested inside
a Region. In previous releases, Measures only indicated the measure
values.

By placing the Measures pill on an axis, e.g. the
columns, the following is rendered:

Measure names are displayed on the axis.

Measure values are displayed on the opposing axis.

As a comparison to the chart above, in the example below we swapped
the order of the Measures and the Region
pills. As a result, we now get a column for each measure
name (Returns and Sales),
and then one more column per region nested inside.

Various new formatting options:

Image formatting option:
Images can now be displayed directly within the grid, by
using the new image formatting option for
string. Note that the value of the cell is expected to hold
the URL of the image.

Example 4.

The figure below illustrates in the "Sku Photo (image)" column
how an image can be displayed inlined in the grid. The column to its
right, called "Sku Photo", shows how the same image is displayed
using the mouseover formatting option,
which used to be the main
displaying option for images in past releases.

Dropdown formatting option for booleans:
It is now possible to display boolean measures as a dropdown,
instead of a checkbox. Dropdown formatting allows users to clearly distinguish
true, false, or no value at all. This option only makes
sense for boolean measures without default values. To display the measure
as a dropdown, the Format property of the measure
needs to be configured as booleandropdown in the
measure configuration file. The default display behavior for
booleans remains a checkbox.

Example 5.

The figure below illustrates both display options for booleans.
In the column to the left, the measure is formatted using the
default formatting option, while the measure to the right is
formatted using the new booleandropdown formatting
option.

Wrap Text formatting option for strings:
Strings can now be formatted such that the text is wrapped to a new line,
if the cell is not wide enough to display the complete string. This feature
simplifies long text viewing and editing.

To display the string as wrapped text, the Format property of the
measure needs to be set to wrapped-text in the measure configuration
file.

Example 6.

In the example below we display two measures of type string. The measure
in the first column is formatted as wrapped text, while the measure
in the second column is formatted using the default formatting option
for strings,

Note

Note that the width and height of a cell does not automatically
change based on the size of the text.
Users need to resize the cell manually.

Collaboration support for distributed deployments:
In past releases, collaboration was only supported on single node
deployments. We have removed this restriction in this release.

Note

Applications in distributed setting need to configure two additional parameters:

The broadcast service has to be configured in the application's
front end server. The example below illustrates how this can be done.

The URL for the broadcast service should be set in the new
broadcastUrlPrefix property in the application
configuration object that is input to the
AuthenticatedModelerController object.
Below you can find an example on how to set the broadcastUrlPrefix
property.

NOTE: this script will set all the necessary
environment variables. You might want to add this command to your
.bashrc.

Upgrade Information

To upgrade the application sheet JSON configurations,
as well as the workbook JSON configurations,
you can simply run the following command:

$ migrate-modeler 4.3.15 4.3.16

Due to an internal upgrade of modeler-js to React 15, all html pages will need
to be updated. Since Modeler-js applications today all write
some of their own Javascript code to hook into modeler-js,
the upgrade could not get automated.
Please refer to the
React documentation for the upgrade instructions and get in touch
with us if you have any questions or problems!