Pentaho Tools :

Pentaho C-Tools(CDE,CDF,CDA),Pentaho CE & EE Server,OLAP-Cubes,Analysis using Pivot4J, Saiku Analytics, Saiku Reporting, Ad-hoc Reporting using Interactive Reporting Tool,Dashboards,Reports using PRD, PDD,Data Integration using Kettle ETL,Data Mining usign WEKA,Integration of Servers with Databases,Mobile/iPad compatible Dashboards using Bootstrap Css,Drilldown dashboards,Interactive Dashboards

Sunday 15 September 2013

Display Single Value of query result on Pentaho CDE dashboard - Query Component Example in CDE

A requirement make you go in depth of subject... The same happened with me to work out this awesome functionality of Pentaho CDE...

Requirement :   
Display aggregate value of some column on Dashboard.
Or
The usage of Query Component in Pentaho CDE.

Environment:
Pentaho BI server stable 4.8
C-Tools: CDE,CDA,CDF  latest version : v13.09.10
Database : Sample data (HSQL db) - installed with pentaho directly. 


Approach:
Step 1: Lay Out section
Design your dashboard as shown in below picture with rows and columns and with the addition of HTML code.
Step 2: Data sources Panel Section
N
In the properties : 
Name: sampledata_count_value
Jndi: SampleData
Query: select count(customernumber) as count_cust from customers
NOTE: don't go for any Output Options and Columns until and unless if you have any requirement in your dashboard

Step 3: Components Panel Section
As shown in figure , from left side of the panel select " Query Component" and then give the properties
Name: value_of_count ( You can give your favorite name)
Result Var: define a variable of your choice(It's just giving a name)
Next, In the advanced properties of "Query Component" .write the below code in "Post Execution"
Code:
function fun() {
document.getElementById('value').innerHTML = myresult;
}


In the above code:
'value' is the name of the Name of the Column in the lay out section where you want to display the count value.
myresult is the name of the "Result Var" property. 



OUTPUT:
Save the dashboard and see the preview.
The sample output is shown below.

122 is the value of the query.. A single value of the result set is displayed using the Query Component and Post Execution code of the component.


Thanks,
Sadakar
BI developer

9 comments:

  1. Hi This is not working in my case, the exact same steps I followed. I am using 8.2 commnuty version Has anything changed in recent updates? Amy clue??

    ReplyDelete
  2. hi... this is not working in my case,i followed the same steps but it does not.

    ReplyDelete
  3. I'm using 8.3, query component works with something like this.

    function fun() {
    document.getElementById('value').innerHTML = dashboard.getParameterValue('myresult');
    }

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. Não funcionou estou utilizando a versão 8.3

      Delete
  4. Não funciona estou utilizando a verção 8.3

    ReplyDelete
  5. My case also not working. Anyone have idea about this?

    ReplyDelete
    Replies
    1. Insira essa função no seu pos fetch, substitua "resultado" pelo seu Result Var

      function fun(resultado) {
      document.getElementById('mapa_2').innerHTML =resultado.resultset;
      }

      Delete