Monthly Archives: October 2010

Supporting the old population – BI-Server 3.5.2 and 3.6.0

Now that the end of the traditional calendar year is near and Samhain is fast approaching, it is time to take care of the dead corpses of the old and existing production installations out there.

Personally, I am a big fan of instant upgrades. As soon as a new release is out, upgrade. Agreed, I am biased as every old installation means I have extra trouble with support and bug reports. Every old installation gone means less work for me. Isn’t that cool?

But there are those boring people with arguments like “cant upgrade a tested installation that is in production” and “never change a system that already works”. As those people also fall into the category of being “honourable Pentaho customers”, I quell the urge to scream “Get over it, what’s live without a bit of risk and fun”.

Pentaho Reporting 3.7.0 release ante portas

So here is my personal take on that problem. Note that my preference does not affect your support plans or dictates what Pentaho as company can and will do or can and will support. It just affects what I do in regard to feature and support requests that come to me via the open channels like the forum, e-mail or personally addressed blackmail.

This release will be out somewhere this year. Note how carefully I avoid any specific dates. It will be released when it is finished or when our Sales and Marketing team grow tired of waiting and invade the developer dungeon to get hold of the treasure.

Pentaho Reporting 3.7.0 will resurrect the dead BI-Server corpses

After that release I will branch the 3.7 codeline to retrofit it into the BI-Server 3.5.2 and 3.6.0 codebase. At the end of that process we will be able to upgrade the existing BI-Server 3.5.2 and 3.6 installations with the new reporting engine.

The server will still be mainly 3.5.2 code, as I do not plan to touch any of the BI-Server’s core projects. The “reporting-plugin” and the “pentaho-reporting-classic-engine” will be the only things that change.

The automatic parameter discovering in PRD for Drill-Linking will only be supported for links to reports. XActions and Analyzer do not support the correct parameter format and I dont feel tempted to mess with their sources (and potentially break things on the way). However, when you know the parameter names, you can always add the parameter to the “Manual Parameter” section of your Drill-down definition.

All other reporting related features will work as if you had a BI-Server 3.7.0 release.

Let the dead corpses rest in peace: No support from me for 0.8.9 and 0.8.10

I will make no effort whatsoever to support BI-Server 3.5.0 or anything that uses the old 0.8.something reporting engines. That code is so old that even my local necromancer would have trouble getting that back to life. I ended all support for that some time ago and although I happily answer questions from time to time, I will not open up that code in my shiny and clean IDE. If you are still working with that code, consider to upgrade, or be prepared to work on the branch alone.

Pentaho Reporting 3.7-RC1: Now with Drill-Linking

Finally, after a long long time, we are once more close to release a new version of the Pentaho Reporting tools.

There are a couple of new things in this release, so lets start with the obvious one:


The Drill-Linking extensions give you a user-friendly way to define URLs that point to other reports or XActions and to parametrize those URLs properly. Earlier versions were not really fun to use in that respect. You had to memorize the long and ugly and complex URL of the XAction or Report and then you had to conjure up some formula magic to fill in your parameters. And for that, you need to remember all the quazillion various parameters that target report declared. And everything was fine as long as you did not attempt to pass multi-selection parameters, which open up a totally new hell of URL computation. And remember to URL-encode your parameters or you are in trouble as well. Arghh!

These days, this task is a lot easier. Open up the hyperlink editor by selecting your element and hitting “Format->Hyperlink..”. Select what kind of link you want to produce. Enter the target file name or target base URL. Add the parameters by hitting the green plus. Fill in all the parameter names and values. Done.

For XActions and PRPTs, hit the large blue “network” icon to refresh the parameter view and you will see all your declared parameters coming in. (Note: For GA, this will change to auto-populate, as manual work is soooo 1980!)

RC1-Caveat: Make sure you enter a correct formula in the parameter values. Just entering “hello” will result in a error, static strings must be quoted. For GA (and in the CI-builds) this is fixed already and the ordinary Excel semantic of editing cells and formulas applies: = starts a formula, ‘ starts a text and everything else will be automatically checked for its type.

Charts and images can finally have a image map to provide tooltips and links on hot areas of the generated image.

Tame your parameter and your BI-Server’s report viewer

The BI-Server viewer has become a lot smarter these days and you can now exercise tight control over the auto-submit checkbox (is it there, and what is its value), the available export types and much more.

In the next blog posting I will demonstrate how to limit the output types that are shown to the user to just a few ones.

For date parameter you are now able to specify the time-zone it should use. This removes a lot of ambiguity on what date or time you are actually specifying when selecting a date.

The post-processing and available values for your parameter are now also cleanly defined and thus make sure that every parameter uses the selected values of the preceding parameters for its work.

All power to the Charts

The new post-processing expression on the charts finally unlocks the full power of JFreeChart for the reporting engine. With that expression you gain raw access to the JFreeChart object. Sure, this is raw access, and thus not for everyone. Granny wont be willing to go down there, but all the consultants who need to “get a job done(tm)” will appreciate its power.

A chart without a series name will finally auto-generate one. This simple change removes one of the major stumbling blocks for new users and makes sure you get to your results faster.

Index and Table-Of-Contents

The index and table-of-contents feature that I prototyped some time ago got a good and hard trashing and hardening by Gunter Rombauts and thus finally carries the seal of “approved for daily use”. (Note: Some of the fixes are only in the CI version.)

New formula functions

  • MULTIVALUEQUERY: Queries a array of values from a datasource
  • SINGLEVALUEQUERY: Queries a single of value from a datasource
  • MPARAMETERTEXT: produces a HTTP/HTML multi-selection parameter prompt
  • PARAMETERTEXT: produces a HTTP/HTML single-selection parameter prompt
  • QUOTETEXT: encodes any text as XML, JavaScript, HTML or formula string
  • DATETIMEVALUE: casts/converts a value into a timestamp
  • ARRAYLEFT, ARRAYRIGHT, ARRAYCONCATENATE, ARRAYMERGE: Simplifies the use of arrays and multiselection parameters
  • WEEKDAY, YESTERDAY: convenience functions to make working with dates easier
  • DRILLDOWN: Create a drill-down URL. Yes, thats the same stuff you could define in the UI.

Bugs, squashed, fried and on a delicious dish

I personally fried a large amount of bugs in this release. Those buggers got on my nerves and that is not healthy at all. Several layouter bugs have hit the grave so that subreports in conjunction with the keep-together feature behave sane now.

So what are you waiting for?

Go and grab your fresh copy of Pentaho Reporting from Sourceforge or a smokin’ fresh build from our Hudson-CI system.

Community meetup fall out: Now there are some new features in the PRD queue ..

I has been a long long time since the community meeting and I guess it is time to actually punch in all the suggestions and feature requests that lured on hastly scribbled notes into the more formal JIRA system.

Remember: if you feel particularly strong about one of those issues, vote for it. If you feel extra ordinarily strong about it and have a support contract, nag your support contact at Pentaho to add your case number to the JIRA-case. This ensures that the triage meeting gives that case a higher priority.




As a reporting user I want to be able to
sort data from within the report


As a reporting user I want to store scripts
in a shared external location so that all reports use the same version of the scripts


As a reporting user I want a predefined
JavaScript library for common tasks in HTML reports ..


As a reporting user I want to use PDF as
vector-image in my reports


As a reporting user I want to use the
OpenSteetMap component in my reports


As a reporting user I want to assign style
by element type or classes instead of styling every element manually


As a reporting user I want to be able to
define styles as CSS files


As a reporting user I want to enable/disable
and show/hide parameters based on previous parameter values


As a reporting user I want to have a AdHoc
reporting tool that uses the Xul-wizard so that I have the same features in PRD, BIServer and Agile-BI


As a reporting user I want to have a Adhoc
reporting tool that uses and generated PRPT files.


As a reporting user I want to be able to
drag-n-drop elements between bands


As a reporting user I want to have a command
line tool to run reports from a shell script


As a reporting user I want to have
parametrized datasources


As a reporting user I want to be able to
switch subreports between inline and banded mode


As a reporting user I want to be able to
provide parameter values for the design-time use


As a reporting developer I want to celebrate
the fact that we have 3000 JIRA cases.


As a reporting user I want to feed all
charts from a single generic datasource


As a reporting user I want to merge the
“legacy”, “banded” and “denormalized” OLAP datasources into a single one.


As a reporting user I want to have a
function that merges manual changes in a wizard generated report back into the wizard definition


As a reporting user I want to have the
ability to have a remainder-width element for row layout bands


As a reporting user I want to have style
properties that allow me to crop images on the fly


As a reporting user I want to have a
lightweight image editor in PRD to crop and scale images before embedding them


As a administrator deploying PRD I want to
have documentation on how to customize the distribution


As a reporting user I want to use CCC
(community chart components) aka Protovis in my reports


As a reporting user I want to use CDA as a


As a reporting user I want to edit subreport
parameters from the tree ..


As a reporting user I want to have a smarter
copy-paste feature ..


As a reporting user I want to copy
master-reports and paste them as subreports ..


As a reporting user I want to have a CDA
style data staging and caching that aggressively caches the query results …


As a reporting user I want to have query
caching integrated into the Hadoop-JDBC driver so that repeated queries have a better response time ..


As a reporting user I want to have a
auto-header feature for fields defined in the details band ..


As a reporting user I want to have a easy UI
to define CDA files and thus simple transformations on query results ..


As a reporting user I want to use JPEG2000,
BMP and TIFF images in a report


As a reporting user I want to have the
option to automatically convert images into a format that PRD understands ..


As a reporting user I want to be able to add
images to a report by drag-and-drop from the explorer/finder …


As a reporting user I want to have
documentation on what image formats are supported in the reporting engine


As a reporting user I want to have a demo
that shows how to use the SingleValueQuery and MultiValueQuery function

This list is probably not even complete. So if you encounter something new or see something that does not feel right, remember to file a JIRA case for it.

No case, no fix!