Labels

Apache Hadoop (3) ASP.NET (2) AWS S3 (2) Batch Script (3) BigQuery (21) BlobStorage (1) C# (3) Cloudera (1) Command (2) Data Model (3) Data Science (1) Django (1) Docker (1) ETL (7) Google Cloud (5) GPG (2) Hadoop (2) Hive (3) Luigi (1) MDX (21) Mongo (3) MYSQL (3) Pandas (1) Pentaho Data Integration (5) PentahoAdmin (13) Polybase (1) Postgres (1) PPS 2007 (2) Python (13) R Program (1) Redshift (3) SQL 2016 (2) SQL Error Fix (18) SQL Performance (1) SQL2012 (7) SQOOP (1) SSAS (20) SSH (1) SSIS (42) SSRS (17) T-SQL (75) Talend (3) Vagrant (1) Virtual Machine (2) WinSCP (1)

Friday, November 26, 2010

Creating Parameters in Pentaho Dashboard using SQL Query

We can parse SQl query in an Xaction file to create a parameter in Pentaho dashboard.
1. Create an xaction file like below:

<?xml version="1.0" encoding="UTF-8"?>
<action-sequence>
  <name>ListOperator.xaction</name>
  <title>%title</title>
  <version>1</version>
  <logging-level>debug</logging-level>
  <documentation>
    <author>Mahadevan</author> 
    <description>%description</description> 
    <help/> 
    <result-type>rule</result-type> 
    <icon>SQL_Datasource.png</icon>
  </documentation>

  <inputs>
      <FROM type="string">
      <sources>
        <request>FROM</request>
      </sources>
    </FROM>
    <TO type="string">
      <sources>
        <request>TO</request>
      </sources>
    </TO>
 </inputs>

   

  <outputs>
    <rule-result type="result-set"/>
  </outputs>

  <resources/>
 
  <actions>
    <action-definition>
      <component-name>SQLLookupRule</component-name>
      <action-type>Query For Operator Info</action-type>
     <action-inputs>
         <FROM type="string"/>
        <TO type="string"/>
       </action-inputs>  
      <action-outputs>
        <query-result type="result-set" mapping="rule-result"/>
      </action-outputs>
      <component-definition>
        <jndi>Telecount</jndi> 
        <query><![CDATA[select count(smskey) AS total, Operator AS Operators from vw_telecount
                            WHERE  Createddate >= ('{FROM}') AND Createddate <=('{TO}') 
                            GROUP BY Operator]]></query>
      </component-definition>
    </action-definition>

  </actions>
</action-sequence>

Step 2: Create an object for parameter in dashboard template as shown below:
ListOperators =
{
  name: "ListOperators",
  type: "selectMulti",
  solution: "PentahoDemo",
  path: "Dashboards/FilterA/List",
  action: "ListOperators.xaction",
  listeners:["startDate","endDate"],
  parameters: [["FROM","startDate"],["TO","endDate"]],
  parameter:"operators",
  htmlObject: "ListOperators_Object",
  size: "4",
  executeAtStart: true,
  preExecution:function(){},
  postExecution:function(){}
}

3. Call the object in your Dashbord template.

<td valign = "top"    style="width: 5%; text-align: left;"><span
                        style="font-family: Arial;">Operators:</span><br>
                </td>
                <td  valign = "top" style="width: 20%; text-align: left;">
                <div valign = "top"  id="ListOperators_Object"></div>

4. Update repository and open your dashboard, you can see the parameter.

Thanks
Mahadevan

1 comment: