Marketplace spotlight time! This time for an amazing contribution by our Italian friends from

Massimo Bonometto just blogged about the new BTable release, that I shamelessly report here:

Hats off, Massimo!


Repost from Massimo's blog post

In January 2017 a new BTable version has been released to Pentaho Community.
As always it is available from Pentaho Markeplace.

Note about BTable version numbering: Pentaho 7.0 uses an newer version of Spring platform. This is why we are forced to maintain 2 different versions of BTable. BTable 3.0 works with Pentaho 5.x and 6.x while BTable 3.6 is the one for Pentaho 7.x.
What's New?

In the following I'm going to give a brief description of the most important features introduced with this new version.

Styling And Alarms

We introduced the concept of BTable Templates. One template is a JSON file with .bttemplate suffix, that usually lives inside Pentaho Repository, whose structure is composed of 3 sections:

  • alarmRules: defines the alarm logic for each measure;
  • inlineCss: contains CSS statements added dynamically to one single BTable;
  • externalCss: similar to the previous one but uses externalCss file.

Alarm styling is based on CSS and gives developers the opportunity to create very nice results.

The Template is a BTable property and can be set inside CDE or changed in BTable Analyzer; that is developers can create, for example, many templates with different alarm logics and users can dynamically change templates in order to evaluate their effect.

It is possible to drive the default template for all BTables and default template for each Mondrian cube. Just create a new folder named /public/BTableCustom and add:

  • Default_Mondrian Catalog_Mondrian Cube.bttemplate (For example Default_SteelWheels_SteelWheelsSales): it is used as default for BTables on specific Mondrian cube;
  • Default.bttemplate: it is used as default when a specific template for cube is not found.

Show Table Option

I'm sure that most of you love to spend time adding filters to CDE dashboards. Well, I really hate it!!! (In particular when a customer asks to add one filter after I finished the dashboard). :-)
This is why I had the idea to use BTable just for filters selection. I find it really tricky.

In the BTable With Templates example I show you how you can add a BTable just for filter selection and then synchronize other 2 BTables.
The same can be easily done with other components based on MDX query.

Using BTable Filter Panel From External Applications
Sometimes it happens that in your custom application you need to work with dimension members selections (for example for profiling purposes). You can do it working directly on database but I found it very useful to create one way to do it through BTable Filters Panel. Basically you have the opportunity to invoke BTable passing an endpoint as parameter. When the user saves filters selections the endpoint is launched.
If you are curious about this, you can use comments to this post and I will do my best to explain it in details in another post.

Filter On Dimension Members
When the user selects one dimension inside Filter Panel the dimension member showed are filtered based on filter selections made for other dimensions. This is the default behaviour but can be optionally changed by users.

Show Toolbar Option
Now it is possible to show one toolbar with most common actions on top of BTable. Toolbar is active by default when you start from BTable Analyzer and viceversa for CDE dashboard.
Users can toggle the toolbar visibility.

Since its first version BTable has the command Reset to reload the initial state. Now we also added the Back button in the toolbar that gives the opportunity to move BTable to previous states.

Show Zeros Option
It is common in OLAP/MDX world to deal with NOT NULL option but it happens frequently that measures fields inside facts tables contain zeros values.
This option, active by default, deletes rows and columns when all values are nulls or zeros.

We made some improvements in order to speedup BTable rendering. I tested I'm able to list more then 300,000 rows in a reasonable amount of time.

New posts with further details will follow.