LogicBlox 4.3.5

Release Date: December 2nd 2015

What's New

modeler-js User Interface Components

Collaboration:
modeler-js components now support multi-user collaboration,
where each user will see the results of actions and edits made
by other users in the same workbook,
within a configurable amount of time (the default is 6 seconds).
Cell changes made by other users will appear green briefly,
whereas an action triggered by other users will
cause a notification window to appear. Figure 1 shows an example of the notification window,
where the user is notified that "user1" has triggered
the action "Set Timestamp". The action will be disabled for all active users
in the workbook until the re-querying of updated data is made.

Figure 1.

Note that if a user is editing the same cell that others are also editing,
her cell will not be updated with new values. In this situation,
the last writer wins.

To activate a collaboration feature, a collaboration
section has to be defined inside the modelingFeatures section.
The collaboration update interval can be configured as follows:

Export to Excel:
It is now possible to export the contents of a sheet to a Microsoft Excel file.
The new Export to Excel option is available in the sheet's config
pop-up menu that can be accessed by clicking on the cogwheel located at the bottom right side of a sheet.
The export process runs in the background; users receive a notification once the export has completed.
The file is automatically saved in the Downloads folder that is configured for the browser.

Example 42.

Figure 2 shows an example sheet with various aggregations (aggregations are
being displayed with a light blue background). Figure 3 shows how the
corresponding exported file in MS Excel would look like.

Figure 2.

Figure 3.

Logout Notification:
After some time of being idle the user will be notified via a pop-up
message that her session is about to close, as shown in Figure 4.
She can choose from one of two
possible options: continue the session or close the session.
If neither of these options is selected, the user will be logged out
automatically after the timer runs out.

Figure 4.

Developers can configure the time until the notification message,
as well as the time until the automatic logout. The default values are
1800 seconds for the idleNotificationTime
and 60 seconds for the idleLogoutTime.

The idle notification time and the idle logout times can be configured as follows:

afterAction Event:
After each action is executed, an afterAction event is emitted, that
applications can listen to. This feature allows developers to
configure JavaScript functions to be executed after an action.

Formula Editor:
We have improved the formula editor to allow the inspection of rules.
Opening the formula editor will display the formulas for all
metrics on the visible measures axis that have formulas.
If a metric that is used in a formula is not yet on the grid,
clicking on its name will automatically add it.

Below is an example on how to enable the formula editor via the html files.
The formula editor can be found under the cogwheel located at the bottom
right side of a sheet, if the ruleEditor setting is enabled.

modelingFeatures: {
...
ruleEditor: true
...
}

Example 43.

In the example below a sheet is being displayed with the EDB measures
Sales and Returns and the IDB measure
NetSales. The formula editor shows the primary formula
as well as the 2 inverse formulas. Via the formula editor, developers
can inspect all the formulas as well as update the inverse rules.

Figure 5.

Measure Service

Support for min/max/sort
aggregations on entity-valued expressions.
In order for an entity to be used for min/max/sort aggregations, it must have:

A predicate that maps the entity to a primitive type.

The entity must back a unique level in the measure service meta model,
and must have an order attribute using the ordering predicate.

Example 44.

If Day is an entity type, it should have a predicate that orders Day’s

Day_index[d] = index -> Day(d), int(index).

The entity Day must back a level Calendar.Day
and the predicate Day_index must back the attribute
Calendar.Day.order.

Services Framework

TDX imports now return an HTTP Header called x-blox-tdx-import-errors
that contains "true/false" indicating whether there were import errors.
This is only available if allow_partial_import is true
(otherwise any error would make the request fail completely). This feature
is exposed to lb web-client import and lb-workflow,
to indicate via a warning message that there were import errors.
The new option --silent to the lb web-client import
command can be used to suppress the warning.

Note

Running this command is only permitted under authenticated mode, and there are a few restrictions:

Workspace-related commands like create and destroy are disallowed.

Transaction-related commands like transaction, abort, and commit are disallowed.
Instead, if the --transactional flag is passed,
then the script will be executed inside a (soft-commit write) transaction.
This flag is required for commands like addBlock or
exec which need to execute inside a transaction.

Please refer to the
Command Reference chapter in the reference manual for an extensive overview of
all the LogicBlox commands and their usage.

The new command lb list-blocks can be used to list all
active and inactive blocks installed in a workspace.

Please refer to the
Command Reference chapter in the reference manual for an extensive overview of
all the LogicBlox commands and their usage.

The log message about long-running rules is enhanced to include the changed predicate(s).

Corrected Issues

The issues listed below have been corrected since the 4.3.4 release.

Corrected a performance issue with default value rules when entity elements are added

Corrected an error when using default value values on pulse predicates

Corrected a performance issue with many concurrent requests on machines with many cores (e.g. 40)

Corrected some issues with regard to incremental maintenance.

It is not possible anymore to execute a write transaction on a mirror via the dlbatch command.

Trying to export a predicate column with type decimal with format type integer, TDX now returns
an exception, including hints on how to to use an import/export function to declare the exact conversion
to use (e.g. use decimal:round, decimal:floor or decimal:ceil to
get another decimal and then convert it into a string or float).

Resolved an issue that prevented browsing the meta service for protobuf services.

Measure Service:

Resolved an issue with the ambig aggregation over expressions with a non-zero default value.