Just read that Pentaho aqcuired Webdetails, the CDE -dashboard- developer company, last April’s 22th. o.O

More info at Pentaho’s site: http://events.pentaho.com/Webdetails.HTML
I gues it is now Hexaho
Just read that Pentaho aqcuired Webdetails, the CDE -dashboard- developer company, last April’s 22th. o.O

More info at Pentaho’s site: http://events.pentaho.com/Webdetails.HTML
I gues it is now Hexaho

Its great to notice how many people is trying out Pentaho (and hope succeding using the software and finding it usefull in a business way) and visiting this site. Thanks for reading!
[EDIT: So sorry for not checking this out first, but this is not for us.
Community Edition is not allowed to play. So skip this one.
I will not delete it. It will be a reminder to look for an alternative on 2013.]
This is just a reminder for you to visit the event-page in which Pentaho is giving away visualization plug-ins for your Pentaho BI Server.
So far they have a ‘sunburst’ tool which is a double level pie graph and a timeline zoom graph.
(click on the image or open the link)
All they ask for is feedback about improvement or additional ideas.
Next one will be on December 19th, 02012
[This is the third edit -15th January 2013-on this post I think this is the final version so everything works]
On November 29, Pentaho (dmoran specifically) published on sourceforge the new versión of the Pentaho BI Server 4.8. That is just a few days behind the Enterprise Edition announcement, that is great news for us.
Also was made available the Data Integration, Pentaho Metadata, Report Designer applications that you should be able to update following the Tools Update post.
The most notorious inprovement in the PUC is a toolbar button to install, upgrade or delete the Saiku or C*Tools plug-ins, its called ‘The Pentaho Marketplace’. If you click on it you will see this dialog:

If you’re server is connected to the internet you just need to click on the buttons to upgrade or install plugins!, This is the success dialog:

The following instructions should work from upgrading the 3.5-3.10 server if you installed acording to this series, that’s the installation and MySql-DB post. If you made further modifications or want to do the things the ‘best practice way’ then you should do a ‘diff’ for the configuration files, at least the ones mentioned.
If you need details about the instructions refer to each post where it is explained in detail.
Part I: BI Server Demo Install
Just like in the first post:
Be patient it may take a few minutes
Part II: Update Plugins
[Edit: JP -in the comments- posted that this step avoids an error on dropdown parameters that happens on some systems. As it works, I suggest you follow his advice.]
If your server is without internet access, follow the C*Tools and Saiku manual install instrucctions.
Part III: Upgrade your DB and Connections
Lets update the database config files (the same ones that we modified on post 2). Open a file explorer with the biserver-ce-old and the biserver-ce, as we will be copying files from the first one to the second, here is the list.Be carefull not to overwrite the wrong ones.
The following modifications may vary and are optional, they were mentioned in Post 5 – Your Server:
Part IV: Copy your Solution Folders
That’s it, start your server, you’re on 4.8 now. Now you’ll need to use your own user-password.
PD. Remember to reload the settings on the browser with the menu ->Tools -> Refresh and execute all the options, and clean your browser cache.
If you followed the articles about installing Pentaho (CE) applications in this blog, now is the opportunity to upgrade them as the have been posted on sourceforge on Monday (5/7/2012) with these quick instructions.
Part I
You need to go to http://sourceforge.net/projects/pentaho/files/ for your tar.gz or zip files.
Be carefull I couldn’t save a transformation after an error, and an warning about saving was generated after a timeout from a database. That happened to Kettle a few versions before (2.5) I think but I will keep using this and previus versions for a while.
The easy way to avoid it is to copy the files from Kettle:Part II
Now go to http://sourceforge.net/projects/mondrian/files/
Notes
Now only the BI Server and the Studio Designer needs to be upgraded. I will edit this for the BI server as it is a bit complcated. The Design Studio hasn’t been posted yet.
Keep both folther the new and -old for a while. When you feel confident about your new software then erase the -old directories.
To Do
The idea to build this dashboard comes from joining Stephen Few’s spec [pdf], an excelent implementation from Slawomir Chodnicki and finding out that the C*Tools (Webdetails dashboard project) has published a Bullet Graph widget from the Protovis Library that is easier to use and customize.

Final Dashboard
Components
We’ll need:
Building The Layout
Lets start a new CDE dashboard by a click on the CDE icon in the top toolbar: ![]()
Header Rows
The CDE Editor will open with ‘Layout’ selected. This is the asociated toolbar:

<h2>Sales Dashboard By Product Line</h2>
<div class="topRow1">Sales YTD</div> <div class="topRow2">Actual amount (horizontal bar) and Previuos Year (blue mark)</div> <hr class="topRowHR"/>
It should look like this.

Save in your development folder with a meaningfull ttitle (used by the BI menu system) and click Preview to see the headers. Close the dialog.
Parameter Row
Result Row
Save the final layout, that should look like this.

Important: If the message “Dashboard saved successfully” doesn’t appear, check your mofifications for errors. If you can’t fix it, exit and resume from the latest point saved.
To edit a dashboard, select it on the browse panel in the BI Server. Right click on it and then select Edit in the context menu.
Building Datasources and its Widgets
Three types of datasources:
SQL
Click on Data Sources ‘button’ in your top-right. The left side of the CDE will list all the connections the CDE can use to get data.
SELECT DISTINCT YEAR_ID FROM DIM_TIME ORDER BY YEAR_ID DESC
Click on Components ‘button’ in your top-right.
For the Month SQL, the set up is a little diferent as we need to set up a listener for changes on the Year select box and then pass that parameter to the Component and then the SQL datasource.
SELECT DISTINCT MONTH_NAME
FROM DIM_TIME
WHERE YEAR_ID=${pYear} ORDER BY MONTH_ID
If you click Preview you should see something like this.

MDX
Let’s define the query against the ‘Steel Wheels Sales’ cube as our Datasource. There are some links at the bottom of the article about MDX and sumary functions.
with
member [Measures].[Sales_Curr] as 'Sum(Ytd([Time].CurrentMember), [Measures].[Sales])'
member [Measures].[Sales_Prev] as 'Sum(Ytd(ParallelPeriod([Time].CurrentMember,1)), [Measures].[Sales])'
select
{[Measures].[Sales_Prev], [Measures].[Sales_Curr]} ON COLUMNS,
{[Product].Children} ON ROWS
from [SteelWheelsSales]
where [Time].[2005].[QTR2].[May]
And now the grid element to display our data.
For testing and format purposes the used query doesn’t change when the month or year are modified. Now we need to add listeners, the parameters in the component and the datasource to calculate the ‘quarter’ depending on the month.
Click on Components (you may be already there)
Click on Data Sources
where [Time].[2005].[QTR2].[May]
To:
where [Time].[${pYear}].[${pQtr}].[${pMonth}]
Click on Components
function Q (){
var vQtr='';
switch (pMonth) {
case 'Jan':
case 'Feb':
case 'Mar':
vQtr='QTR1'; break;
case 'Apr':
case 'May':
case 'Jun':
vQtr='QTR2'; break;
case 'Jul':
case 'Ago':
case 'Sep':
vQtr='QTR3'; break;
case 'Oct':
case 'Nov':
case 'Dec':
vQtr='QTR4'; break;
}
pQtr=vQtr;
}

Close the preview dialog.
ETL
In he last part we’ll use an ETL process and the Bullet Graph widget.
Start the PDI. Create a new transformation and save it in the demo/development folder with the name SalesDashboard.ktr.
This is the PDI transformation

Dashboard PDI Transformation


with
member [Measures].[Sales_Curr] as 'Sum(Ytd([Time].CurrentMember), [Measures].[Sales])/1000'
member [Measures].[Sales_Prev] as 'Sum(Ytd(ParallelPeriod([Time].CurrentMember,1)), [Measures].[Sales])/1000'
select
{[Measures].[Sales_Prev], [Measures].[Sales_Curr]} ON COLUMNS,
{[Product].Children} ON ROWS
from [SteelWheelsSales]
where [Time].[${pYear}].[${pQtr}].[${pMonth}]

var rowOut = getOutputRowMeta(); newRow = createRowCopy(rowOut.size()); var ProductLine = rowMeta.getString(newRow, 0); var Actual = rowMeta.getNumber(newRow, 1); var Previous = rowMeta.getNumber(newRow, 2);


var Maximum=0.0;
var Mark1=0.0;
var Mark2=0.0;
if ( (Max1!=null) || (Max2!=null) )
if ( Max1 > Max2 )
Maximum = Max1;
else
Maximum = Max2;
if (Maximum!=0.0) {
if (Maximum>=1.0) {
Maximum = Maximum / 10.0;
Maximum = ceil(Maximum) * 10.0;
} else {
Maximum = Maximum / 1.0;
Maximum = ceil(Maximum) * 1.0;
}
Mark1=Maximum*0.7;
Mark2=Maximum*0.9;
}





Selecting this last step and previewing the output you get.

You can close the PDI.
Bullet Graph
Back to the CDE Editor.
Click on Data Sources
Click on Components
Save and preview. We are almost finished

Fine Formatting
There are three formating options in the CDE
To work with the CSS or DOM elements we add a resource file:
#header { margin-top:1em; }
h2 { font-size:1.4em; padding-top:7px; padding-left:1em; height:1.6em; }
.topRow1 { font-size:1.2em; font-weight:700; margin-left:1em; }
.topRow2 { font-size:1em; margin-left:1em; }
hr.topRowHR { height:2px; width:900px; color:red; }
#ParamRow { font-size:0.9em; vertical-align:bottom; margin-bottom:2em; }
#ParamRow select { font-size:0.9em; vertical-align:top; }
#ParamRow input { font-size:0.9em; vertical-align:top; }
#nResultTable { margin-top:2em; }
table tr.even, table tr.odd{ background-color: white; }
table thead th { border-bottom: 1px solid #CCC; background-color: #fff; }
table tbody td.number, th.number{ text-align: right; }
table tbody td.string, th.string{ text-align: left; }
table tfooter td { background-color: white; }
.ui-widget-header { background: white; color: white; border-bottom:0px none; border-top:1px grey solid; border-left:0px none; border-right:0px none;}
Save it in the demo/development folder as Dashboard.css
This will be the result

We can modify the Graph if we access its properties, in this case the ‘Extension Points’. Lets change the Marker shape and color.
Click on Components
Note:
Check posible values for Extension Points at CCC (Bullet Chart) and Protovis sites.
In the CCC (Bullet Chart) page check the keyword to access: base, mark, measure, title, rule, range. In the rest of the document and examples look for the second part: font, shape. Join them with an undescore: bulletMarker_lineWidth.
Or if you want to change the color of the inner bar, you could try:
Arg: bulletMeasure_fillStyle, Color: green or #0F0
You can use other properties to change the appearence, for example the tooltip to show the value of a value can ve modified.
Click in the Advanced Properties of the Graph, in Value format:
function f(value){return ('$'+sprintf("%.1f", value)+'m')}
The final product should be the initial dashboard image.
.
Additional Links
To Do
The Pentaho BI demo has an example of what will be built. In the ‘Browse’ panel click on bi-developer and in ‘Files’ panel open the Bubble chart report.

Bubble Report in the BI demo
Report Specification
[If you're just interested in learning to build the report, you can skip this section]
The report is defined by an .xaction (you can right-click on the file and check properties):
[Pentaho/biserver-ce/pentaho-solutions/]
bi-developer/reporting/report-charts/bubble-charting.xaction
To find out our data source, data, graph size, etc. we’ll browse the .xaction file. Then we’ll use the Pentaho Report Designer (PRD) to build a more interactive version that will prompt for parameters. And is easier to build.
We have at the top, the documentation ‘section’:
<?xml version="1.0" encoding="UTF-8"?> <action-sequence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <name>bubble-charting.xaction</name> <title>%title</title> <version>1</version> <documentation> <author/> <description>%description</description> <icon>PentahoReporting.png</icon> <help>This action-sequence was generated by the Report Design Wizard. To edit this action-sequence use the Pentaho Design Studio.</help> <result-type>report</result-type> </documentation>
Define an input string variable output-type with value ‘html’ and output report of type content
<inputs> <output-type type="string"> <default-value>html</default-value> <sources> <request>type</request> </sources> </output-type> </inputs> <outputs> <report type="content"> <destinations> <response>content</response> </destinations> </report> </outputs>
In the resources section there is a reference to a file of type ‘solution’: bubble-charting.xml that will define the chart.
<resources> <!-- use this section to identify any files that the component needs to execute the report --> <report-definition> <solution-file> <location>bubble-charting.xml</location> <mime-type>text/xml</mime-type> </solution-file> </report-definition> </resources>
Then a sequence of actions: the SQL-lookup gets the data from a SQL query using a jndi connection to SampleData that puts the result in the object result-set with four columns: department, actual, budget and variance (its really just the difference of actual-budget), all are sums of columns from the table cuadrant-actuals that do not have departments that start with ‘Prof%’.
<actions> <action-definition> <component-name>SQLLookupRule</component-name> <action-type>rule</action-type> <action-inputs/> <action-outputs> <rule-result type="result-set"/> </action-outputs> <component-definition> <jndi>SampleData</jndi> <query><![CDATA[select DEPARTMENT, sum(actual) as ACTUAL, sum(budget) as BUDGET, sum(variance) as VARIANCE from QUADRANT_ACTUALS WHERE NOT department like 'Prof%' GROUP BY department]]></query> </component-definition> </action-definition>
Then the output is used in the chart component. The output-type was defined as ‘html’ and the data is in the object ‘result-set’. The chart was also specified in the .xml file.
<action-definition> <component-name>JFreeReportComponent</component-name> <action-type>report</action-type> <action-inputs> <output-type type="string"/> <data type="result-set" mapping="rule-result"/> </action-inputs> <action-resources> <report-definition type="resource"/> </action-resources> <action-outputs> <report type="content"/> </action-outputs> <component-definition/> </action-definition> </actions> </action-sequence>
If you read the .xml graph file you’ll see specification for several elements: headers, footers, functions, series definitions, fonts, axes ranges, groupings, chart sizes, colors and data grid. If you want to use the fancy graphic capabilities of the library JFreeChart library check: Chart usage and Bubble chart specs.
Using the Pentaho Report Designer
Start the PRD and a new report:
Lets take an incremental way to build the report that let us test and see how the report grows and how it becomes beautiful.
Report
Just an SQL is needed for the report so well select a JDBC connection but you here can choose from MDX o PDI (ETL transformatoion) or several other sources.

We’ll just need the recods for our report but you can define also parameter queries and subreport sources.
select DEPARTMENT, sum(actual) as ACTUAL, sum(budget) as BUDGET, sum(variance) as VARIANCE from QUADRANT_ACTUALS WHERE NOT department like 'Prof%' GROUP BY department


It’s a good time to save the report, it will let you go back to a known point in case you don’t like a change or save progress. The PRD is stable but you can never be too cautious.
Lets see the data in the actual output
Set Style for the output columns

Set Format for the currency columns
Add text labels for titles, column headers, etc.

Preview the report

Bands
Now that you are familiar with objects and its attributes. An additional concept you need to know is the band-structure of the report.
Select the Structure tab in the upper panel.

Example 1: The ‘No Data’ Band.

Example 2: Alternating colors on Details.
Lets check the function that was added and change color
Preview your report and save.
The Chart
The JFreeChart library is used in the PRD, but we can use the properties to set options, thats is settings. We just need to add the chart object.
into the Header band.

You have compleated your report. If you reload the solutions on the BI server you will be able to run it from the menu.
Add a Parameter
To add a parameter for the user to filter data we need do three things:
1. Add a query that list the available departments
SELECT DISTINCT DEPARTMENT FROM QUADRANT_ACTUALS ORDER BY DEPARTMENT;
2. Add the parameter for the user selection

3. Modify the query to use the parameter
Finishing Touches
Lets add the department in the report so you can see what was the query if printed. Just drag de pDept parameter to the Report Header. Add a Label ‘Parameter Excluded:’
If you test the report in the BI server you’ll see that a parameter for output was added as well as an auto-submit checkbox. Lets asume we just want one html page:
This is how it looks:

Bubble Chart Report in the BI Server