<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Carolinian Business Intelligence Extraordinaire</title>
	<atom:link href="http://blog.datamensional.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.datamensional.com</link>
	<description>Putting Intelligence in Business by making technology about business by Team Datamensional</description>
	<lastBuildDate>Tue, 20 Mar 2012 15:11:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Xaction Basics &#8211; FTPing a file</title>
		<link>http://blog.datamensional.com/2012/03/xaction-basics-ftping-a-file/</link>
		<comments>http://blog.datamensional.com/2012/03/xaction-basics-ftping-a-file/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 14:30:41 +0000</pubDate>
		<dc:creator>Benjamin Goewey</dc:creator>
				<category><![CDATA[BI Server]]></category>
		<category><![CDATA[Pentaho]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=278</guid>
		<description><![CDATA[Here is another little xaction that demonstrates the FTP capabilities of xactions. Just like the last one, make sure to save it in the workspace directory for Design Studio so that it displays properly when you try to edit it. &#8230; <a href="http://blog.datamensional.com/2012/03/xaction-basics-ftping-a-file/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here is another little xaction that demonstrates the FTP capabilities of xactions. Just like the last one, make sure to save it in the workspace directory for Design Studio so that it displays properly when you try to edit it.</p>
<p>Open the <strong><a href="https://my.syncplicity.com/share/g2rhhavlqh/ftp_a_prpt_report_w_parm">ftp_prpt_report_w_parm.xaction</a> </strong>file in Design Studio (Eclipse).</p>
<p>You will want to change the default values for each input.  Notice if you left it the way it was and ran it from PUC, you could change the default values to your FTP settings.  At first I tried to use an @ sign in the username from our Datamensional.com server, but the solution will not work with this.  It causes a problem because the output part of the .XACTION uses the @ sign to separate the username from the server name.  There may be a way to get around it through escape characters.</p>
<p>Go to your inputs in Design studio and change all the defaults for the following:</p>
<ul>
<li>reportname</li>
<li>ftp_host</li>
<li>user</li>
<li>password</li>
<li>directory</li>
</ul>
<p>Keep all others their default.  You will want to change the solution listed under Resources to one of your own reports as well</p>
<p>Save it to the solution directory in Design Studio.  In the BI Server, refresh the repository and double click on the .XACTION.  After completing successfully, you’ll see “Action Successful.” Log into the directory that you saved the FTP to, and it should be there.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/03/xaction-basics-ftping-a-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xaction Basics &#8211; Sending an Email</title>
		<link>http://blog.datamensional.com/2012/03/xaction-basics-sending-an-email/</link>
		<comments>http://blog.datamensional.com/2012/03/xaction-basics-sending-an-email/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 14:30:38 +0000</pubDate>
		<dc:creator>Benjamin Goewey</dc:creator>
				<category><![CDATA[BI Server]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Pentaho]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=272</guid>
		<description><![CDATA[There are moments when working with the BI server that you will desire functionality that isn&#8217;t necessarily available through the server itself or any plugin that is currently out there.  In these situations, you will need xactions, which can be &#8230; <a href="http://blog.datamensional.com/2012/03/xaction-basics-sending-an-email/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There are moments when working with the BI server that you will desire functionality that isn&#8217;t necessarily available through the server itself or any plugin that is currently out there.  In these situations, you will need xactions, which can be a little intimidating at first glance.  For this reason, we&#8217;ll provide some xactions that do some basic things for you to look at.  If you&#8217;d like to see a more in depth general introduction, check out this <a href="http://wiki.pentaho.com/display/COM/May+19,+2010+-+Mike+Tarallo+-+Using+xactions+to+distrib+content+via+EMAIL,+FTP+and+File+Systems">techcast by Mike Tarallo</a>.</p>
<p>If you are coming from a fresh install with the sample database, you should have no problem running this <a href="https://my.syncplicity.com/share/ktb0ttxlp4/email_a_prpt_file">.XACTION</a>.  The only changes you need to make is to change the receiving email address, and the report being sent.  You should receive an email from the email you have set on your BI server as a default.</p>
<p>Make sure to put the file in the workspace when you open it through Pentaho Design Studio, otherwise it will not display any values.  The XML can still be edited this way, however.</p>
<p>After making your modification, save it to the solution directory from Design Studio (Eclipse) and go to PUC and refresh your repository.</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XactionEmail1.png"><img class="alignnone size-full wp-image-273" title="XactionEmail1" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XactionEmail1.png" alt="" width="451" height="400" /></a></p>
<p>Then double click on the solution.  You should see the following default message that shows the Action Sequence (.xaction) was successfully executed:</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XactionEmail2.png"><img class="alignnone size-full wp-image-274" title="XactionEmail2" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XactionEmail2.png" alt="" width="612" height="169" /></a></p>
<p>This is not all that pretty and actually could be another message.  It is simply saying that it was completed successfully and that long number is the unique ID for the document just created in the content repository.  At the end it shows what format it was.</p>
<p>You can execute this step using a URL into another application, another part of the suite, inside of PRD, or CDF.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/03/xaction-basics-sending-an-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing Pentaho&#8217;s Default Email Server to a Gmail Account</title>
		<link>http://blog.datamensional.com/2012/03/changing-pentahos-default-email-server-to-a-gmail-account/</link>
		<comments>http://blog.datamensional.com/2012/03/changing-pentahos-default-email-server-to-a-gmail-account/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 14:30:41 +0000</pubDate>
		<dc:creator>Benjamin Goewey</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=265</guid>
		<description><![CDATA[Since we use gmail for our company email, we found it to be a bit trickier to enter the information through Enterprise Console unless you update your password.  To get around this, we edited the server\biserver-ee\pentaho-solutions\system\smtp-email\email_config.xml file as shown below.  &#8230; <a href="http://blog.datamensional.com/2012/03/changing-pentahos-default-email-server-to-a-gmail-account/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since we use gmail for our company email, we found it to be a bit trickier to enter the information through Enterprise Console unless you update your password.  To get around this, we edited the <strong>server\biserver-ee\pentaho-solutions\system\smtp-email\email_config.xml</strong> file as shown below.  Make note to change it to your own email and password.</p>
<p>&nbsp;</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="638">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;&nbsp;</p>
<p>&lt;email-smtp&gt;</p>
<p>&lt;!&#8211; The values within &lt;properties&gt; are passed directly to the JavaMail API.</p>
<p>For a list of valid properties see http://java.sun.com/products/javamail/javadocs/index.html &#8211;&gt;</p>
<p>&lt;properties&gt;</p>
<p>&lt;!&#8211; This is the address of your SMTP email server for sending email. e.g. smtp.pentaho.org &#8211;&gt;</p>
<p>&lt;mail.smtp.host&gt;smtp.gmail.com&lt;/mail.smtp.host&gt;</p>
<p>&lt;!&#8211;  This is the port of your SMTP email server. Usually this is 25. For GMail this is 587 &#8211;&gt;</p>
<p>&lt;mail.smtp.port&gt;587&lt;/mail.smtp.port&gt;</p>
<p>&lt;!&#8211;  The transport for accessing the email server. Usually this is smtp. For GMail this is smtps &#8211;&gt;</p>
<p>&lt;mail.transport.protocol&gt;smtp&lt;/mail.transport.protocol&gt;</p>
<p>&lt;!&#8211;  Usually this is &#8216;false&#8217;. For GMail it is &#8216;true&#8217; &#8211;&gt;</p>
<p>&lt;mail.smtp.starttls.enable&gt;true&lt;/mail.smtp.starttls.enable&gt;</p>
<p>&lt;!&#8211; Set to true if the email server requires the sender to authenticate &#8211;&gt;</p>
<p>&lt;mail.smtp.auth&gt;true&lt;/mail.smtp.auth&gt;</p>
<p>&lt;!&#8211;  This is true if the email server requires an SSL connection. Usually &#8216;false&#8217;. For GMail this is &#8216;true&#8217; &#8211;&gt;</p>
<p>&lt;mail.smtp.ssl&gt;true&lt;/mail.smtp.ssl&gt;</p>
<p>&lt;!&#8211;  Output debug information from the JavaMail API &#8211;&gt;</p>
<p>&lt;mail.debug&gt;false&lt;/mail.debug&gt;</p>
<p>&lt;!&#8211; For GMail this is &#8216;false&#8217; &#8211;&gt;</p>
<p>&lt;mail.smtp.quitwait&gt;false&lt;/mail.smtp.quitwait&gt;</p>
<p>&lt;/properties&gt;</p>
<p>&lt;!&#8211; This is the address of your POP3 email server for receiving email. e.g. pop.pentaho.org &#8211;&gt;</p>
<p>&lt;!&#8211; It is currently not used &#8211;&gt;</p>
<p>&lt;mail.pop3/&gt;</p>
<p>&lt;!&#8211; This is the default &#8216;from&#8217; address that emails from the Pentaho BI Platform will appear to come from e.g. joe.pentaho@pentaho.org &#8211;&gt;</p>
<p>&lt;mail.from.default&gt;system@datamensional.com&lt;/mail.from.default&gt;</p>
<p>&lt;!&#8211; This is the user id used to connect to the email server for sending email</p>
<p>It is only required if email-authenticate is set to true</p>
<p>This is never sent or shown to anyone &#8211;&gt;</p>
<p>&lt;mail.userid&gt;system@datamensional.com&lt;/mail.userid&gt;</p>
<p>&lt;!&#8211; This is the password used to connect to the email server for sending email</p>
<p>It is only required if email-authenticate is set to true</p>
<p>This is never sent or shown to anyone &#8211;&gt;</p>
<p>&lt;mail.password&gt;password&lt;/mail.password&gt;</p>
<p>&lt;/email-smtp&gt;</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>In the Admin/Enterprise Console, it should look something like this:</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/03/PentahoGmailServer.png"><img class="alignnone size-full wp-image-266" title="PentahoGmailServer" src="http://blog.datamensional.com/wp-content/uploads/2012/03/PentahoGmailServer.png" alt="" width="985" height="684" /></a></p>
<p>default email address:  system@datamensional.com</p>
<p>User ID:  system@datamensional.com</p>
<p>SMTP Host:  smtp.gmail.com</p>
<p>SMTP Port:  587</p>
<p>SMTP Protocol:  smtp</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/03/changing-pentahos-default-email-server-to-a-gmail-account/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fusion Charts in Pentaho Report Designer</title>
		<link>http://blog.datamensional.com/2012/03/fusion-charts-in-pentaho-report-designer/</link>
		<comments>http://blog.datamensional.com/2012/03/fusion-charts-in-pentaho-report-designer/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 15:30:39 +0000</pubDate>
		<dc:creator>Benjamin Goewey</dc:creator>
				<category><![CDATA[Pentaho Report Designer]]></category>
		<category><![CDATA[Reporting]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=228</guid>
		<description><![CDATA[For those of you looking to add a little something extra to your Pentaho Report Designer reports, here are some steps to allow FusionCharts to be inserted directly into the report.  Of course, this is very format specific, and will &#8230; <a href="http://blog.datamensional.com/2012/03/fusion-charts-in-pentaho-report-designer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For those of you looking to add a little something extra to your Pentaho Report Designer reports, here are some steps to allow FusionCharts to be inserted directly into the report.  Of course, this is very format specific, and will only work with HTML.</p>
<h3>Download, Setup, and Test on Pentaho Server</h3>
<p>Begin by going to this link:</p>
<p><a title="http://www.fusioncharts.com/free/download/" href="http://www.fusioncharts.com/free/download/">http://www.fusioncharts.com/free/download/</a><a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts11.png"><img class="alignnone size-full wp-image-245" title="FusionCharts1" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts11.png" alt="" width="832" height="535" /></a></p>
<p>Find the FusionChartsFree.zip archive file.  Extract to your Pentaho install directory (ours was called pentahoSandbox):</p>
<p>C:/Program Files/pentahoSandbox/server/biserveree/tomcat/webapps/pentaho/<strong>FusionChartsFree/ </strong></p>
<p><a title="http://localhost:8080/pentaho/FusionChartsFree" href="http://localhost:8080/pentaho/FusionChartsFree">http://localhost:8080/pentaho/<strong>FusionChartsFree</strong></a></p>
<p>This puts it in the web directory so other Pentaho solutions can access it and it&#8217;s also protected by the same security under the Tomcat server.</p>
<p>Now you should test that you can run a Fusion Chart from this directory.  Go to this web address to test a Fusion Chart on Pentaho&#8217;s BI Server:</p>
<p><a title="http://localhost:8080/pentaho/FusionChartsFree/Code/MyFirstChart/ChartJS.html" href="http://localhost:8080/pentaho/FusionChartsFree/Code/MyFirstChart/ChartJS.html">http://localhost:8080/pentaho<strong>/FusionChartsFree/Code/MyFirstChart/ChartJS.html</strong></a></p>
<p><strong>Your result should look like this:<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts21.png"><img class="alignnone size-full wp-image-246" title="FusionCharts2" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts21.png" alt="" width="586" height="584" /></a></strong></p>
<h3>Pentaho Data Integration (PDI) Transformation to create Fusion Data source</h3>
<p>Fusion charts as well as most Adobe Flash based charts including Flex use XML as their data source.  The transformation needed allows you to create the properly formed XML document dynamically from any SQL data source.  We will use the sample database that ships with Pentaho.  Ultimately, we will link this transformation as a data source to PDI and it will dynamically create an XML file from the SQL input changes coming from PRD.</p>
<p><a href="https://my.syncplicity.com/share/kbkcpe14kt/PDI_XML_FUSION">See the code in the .ktr file</a><a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts31.png"><img class="alignnone size-full wp-image-247" title="FusionCharts3" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts31.png" alt="" width="697" height="296" /></a></p>
<ol>
<li>Table input: Create a query like the below when starting to create your transformation.  This will eventually be turned into an XML file that Fusion charts can read.  Use this SQL to start without the Where clause so you return results.  <strong><span style="text-decoration: underline;">Add the where clause later with the question mark in a later step.  </span></strong></li>
<li>Select values: This step prepares some of the data as place holders for the XML document and changes some of the Uppercase to lowercase.</li>
<li>Add XML from set: This creates a “set” XML tag and makes all the other columns to  attributes of this tag.</li>
<li>Generate Rows: This generates the graph XML node as well as all of the attributes of that node.  These are static now, but you could potentially build this out and parameterize it so that the end-user could change various aspects of the chart.</li>
<li>Doc Template: This is the same step as step 3.  This creates the basis for all the set nodes to attach to.  Right now it’s simply a one line tag of XML.  Fusion documents only have one graph tag anyway, and it’s always the highest level tag.</li>
<li>Join Graph to Set: This step ultimately joins the two nodes together.  The set node is the child to the graph node.  Each set represents a value on the graph.  They are joined by the graph.  This currently is what a typical XML document would be.</li>
<li>Text file output: This simply takes the XML and stores it as a file.  Another suggestion is to stream the XML file instead.  You may want to experiment with that.  I called my XML file something a little different so I could distinguish it from the other default data files.  I put it in the same directory for simplicity sake:
<ol>
<li>C:\Program Files\pentaho\server\biserver-ee\tomcat\webapps\pentaho\FusionChartsFree\Code\MyFirstChart\<strong>AddXMLStepData</strong></li>
<li>Note to make the file extension .xml.</li>
</ol>
</li>
<li>Run the transformation to ensure you get data and then launch the ChartJS.html created previously to ensure that the Fusion chart reads the data.</li>
<li>Get Variables: This step gets the variables that are set in the settings of the transformation.  This is how you would use them:
<ol>
<li>Go to Edit -&gt; Settings . . .  -&gt;  Parameters (tab)</li>
<li>Put in <strong>ParmProduct</strong> with a default value of ‘<strong>default’</strong>.</li>
<li>Now add the <strong>Get Variables</strong> step and connect it to the input step.</li>
<li>Name the field “Product” and then the parameter “ProductParm”  and make the type string.</li>
<li>Edit the table the input Step.  Add this line underneath the “From” Statement in the Table input step: WHERE &#8220;PRODUCTS&#8221;.&#8221;PRODUCTCODE&#8221;  = ?</li>
<li>Click  “replace variables in script”</li>
<li>Select in the drop down “Get variables from Script” and select the “Get Variables” step.</li>
<li>Test by running again.  You should get no errors, but you should have an empty data set since no product codes equal ‘default’</li>
</ol>
</li>
</ol>
<h3>Create Pentaho Report Designer (PRD) Document and integrate with Fusion Charts.</h3>
<ol>
<li>Open PRD</li>
<li>Create new JDBC query.  This query will be used to populate values in a “Product” filter under Data Sets on the right hand side.  Set the data source to the SampleData and use this as your query.  Use this SQL:
<p style="padding-left: 60px;">SELECT</p>
<p style="padding-left: 60px;">&#8220;CUSTOMER_W_TER&#8221;.&#8221;COUNTRY&#8221;,</p>
<p style="padding-left: 60px;">&#8220;ORDERFACT&#8221;.&#8221;TOTALPRICE&#8221;,</p>
<p style="padding-left: 60px;">&#8220;PRODUCTS&#8221;.&#8221;PRODUCTCODE&#8221;</p>
<p style="padding-left: 60px;">FROM</p>
<p style="padding-left: 60px;">&#8220;PRODUCTS&#8221; INNER JOIN &#8220;ORDERFACT&#8221; ON &#8220;PRODUCTS&#8221;.&#8221;PRODUCTCODE&#8221; = &#8220;ORDERFACT&#8221;.&#8221;PRODUCTCODE&#8221;</p>
<p style="padding-left: 60px;">INNER JOIN &#8220;CUSTOMER_W_TER&#8221; ON &#8220;ORDERFACT&#8221;.&#8221;CUSTOMERNUMBER&#8221; = &#8220;CUSTOMER_W_TER&#8221;.&#8221;CUSTOMERNUMBER&#8221;</p>
</li>
<li> Go to Parameters in the data pane and right click and then select add parameter.</li>
<li>Call your new parameter ParmProduct and fill it out like so and click OK.<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts42.png"><img class="alignnone size-full wp-image-249" title="FusionCharts4" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts42.png" alt="" width="870" height="565" /></a></li>
<li>Add a new data source by right clicking on the Data sets, and releasing on Pentaho Data Integration.<br />
<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts5.png"><img class="alignnone size-full wp-image-250" title="FusionCharts5" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts5.png" alt="" width="347" height="407" /></a></li>
<li>Select the PDI transformation you had saved previously to create your XML.</li>
<li>Select the table input as your data stream for your data.</li>
<li>Now click “Edit Parameters.”</li>
<li>Match the parameters on the far left side from PRD to PDI on the right like in the picture below:<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts6.png"><img class="alignnone size-full wp-image-251" title="FusionCharts6" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts6.png" alt="" width="909" height="282" /></a></li>
<li>Click OK.  On the right side, select the PDI “query” you just created and right click and select “Select Query.”  This ensures your main document is using that.</li>
<li>Drag COUNTRY and CL to the details band.</li>
<li>It’s recommended you unhide the “No Data” band so you can better understand if a problem comes up that it’s due to you selecting no data.  Drag a label there and write “No Data”.</li>
<li>Change the page setup to Landscape to better accommodate the size of the chart.</li>
<li>Drag the Report Header band so the height is at least 400 pixels to allow space for the chart.</li>
<li>Drag a label into the Report Header and expand it to the same size as the Report Header.</li>
<li>Make sure you are clicked on your text-field or label you dragged to the canvas.</li>
<li>Click on attributes.</li>
<li>Go to “append-body” under the HTML header.  Click on the ellipse for value and put this script or similar as an absolute directory within your localhost or remote if you want to access this from another machine.  I recommend doing it this way because it gets confusing when you preview from PRD or the BI Server because it references different directories and thus relative directories might change.  Your code will look similar to the one from the Fusion charts.  If you want to include JavaScript libraries and make them accessible by everyone, I recommend putting your code in the master-report append-body attribute.<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts7.png"><img class="alignnone size-full wp-image-252" title="FusionCharts7" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts7.png" alt="" width="1350" height="638" /></a>&lt;script language=&#8221;JavaScript&#8221; src=&#8221;http://localhost:8080/pentaho/FusionChartsFree/Code/FusionCharts/FusionCharts.js&#8221;&gt;&lt;/script&gt;&lt;/head&gt;&lt;h2 align=&#8221;center&#8221;&gt;Fusion Chart in PRD with PDI data source&lt;/h2&gt;&lt;div id=&#8221;chartdiv&#8221; align=&#8221;center&#8221;&gt;The chart will appear within this DIV. This text will be replaced by the chart.&lt;/div&gt;&lt;script type=&#8221;text/javascript&#8221;&gt;
<p>var myChart = new FusionCharts(&#8220;http://localhost:8080/pentaho/FusionChartsFree/Code/FusionCharts/FCF_Column3D.swf&#8221;, &#8220;myChartId&#8221;, &#8220;550&#8243;, &#8220;450&#8243;);</p>
<p>myChart.setDataURL(&#8220;http://localhost:8080/pentaho/FusionChartsFree/Code/MyFirstChart/AddXMLStepData.xml&#8221;);</p>
<p>myChart.render(&#8220;chartdiv&#8221;);</p>
<p>&lt;/script&gt;</li>
<li>Add a Page Header if you wish.</li>
<li>Click OK.</li>
<li>Before previewing to see the Fusion chart, remember you can only use the HTML preview.  It will not show up any other way.  To do this, click on the big green play button at the top and then select HTML.</li>
<li>Your finished product should look like this and you should be able to dynamically change it on the fly.<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts8.png"><img class="alignnone size-full wp-image-253" title="FusionCharts8" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts8.png" alt="" width="407" height="368" /></a></li>
</ol>
<p>You can also preview after publishing to the BI Server and you should get the same result and be able to dynamically change the chart by selecting another value in the drop down list.</p>
<p>&nbsp;</p>
<p>What it should look like:<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts91.png"><img class="alignnone size-full wp-image-255" title="FusionCharts9" src="http://blog.datamensional.com/wp-content/uploads/2012/03/FusionCharts91.png" alt="" width="763" height="671" /></a></p>
<h3>Recommendations &amp; Notes</h3>
<ul>
<li>Fusion charts will not work cross platform.  Relative paths are confusing when troubleshooting in PRD.  So that’s why I put the absolute address.  However I have noticed that when creating a new application folder the Fusion charts will not reference the application folder “pentaho.”  <strong><span style="text-decoration: underline;">You should decide which folder you want to demo the fusion charts in and update the path to those Fusion charts accordingly and make sure the contents are there.    </span></strong></li>
<li>Fusion charts are not supported officially by Pentaho Support though their implementation is common in CDF and on the BI Server.</li>
<li>CDF will soon have a built-in component for Fusion without needing an .xaction interface.</li>
<li>You can add more line detail by creating a sub report with another query that does not aggregate and link it to the primary parameters on the master report.</li>
<li>You can drag any other reporting elements to the canvas.</li>
<li><strong>You can create new Flash charts on the fly by doing the following (This is definitely advanced, but it can work!):</strong></li>
</ul>
<ol>
<li>Create a new transformation in PDI.  Use the Get File Names step.</li>
<li>Use it to read the names of the charts in the directory structure for the Fusion Charts on the Server.</li>
<li>Have it flow to a dummy step.  Save it.</li>
<li>Create a new data source in PRD and point it to the dummy step you just created.</li>
<li>Create a new Parameter called “ChartType.”</li>
<li>Use the new PDI data source as the source query for your ChartType.</li>
<li>Go to Append-query of the text-field that contains our JavaScript.</li>
<li>Go to formula.  The tricky part here is you’re going to use the formula functions to actually write the JavaScript string in the value column.</li>
<li>Use the message notation or other scripting option to basically swap out the chart loading function.  In the report example, you’d want to swap out this part: FCF_Column3D.swf with the chart type parameter.</li>
<li>Thus, your code should look something like this: “JavaScript String Value Beginning” + ${ChartType} + “JavaScript String Value End”</li>
</ol>
<ul>
<li>You can create additional inputs into PDI from PRD for the overall graph settings.  Currently, they are static as “Generate Rows” steps for the simplicity of this demo.  Thus, the user could have more control over how their chart looked.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/03/fusion-charts-in-pentaho-report-designer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Using XMLA in Pentaho Reporting</title>
		<link>http://blog.datamensional.com/2012/03/using-xmla-in-pentaho-reporting/</link>
		<comments>http://blog.datamensional.com/2012/03/using-xmla-in-pentaho-reporting/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 15:30:26 +0000</pubDate>
		<dc:creator>Gerrit Goewey</dc:creator>
				<category><![CDATA[Analysis Services (SSAS)]]></category>
		<category><![CDATA[Microsoft SQL Server]]></category>
		<category><![CDATA[OLAP]]></category>
		<category><![CDATA[Pentaho Data Integration]]></category>
		<category><![CDATA[Pentaho Report Designer]]></category>
		<category><![CDATA[XMLA]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=205</guid>
		<description><![CDATA[Anyone who has ever actually attempted it may have noticed that Pentaho Report Designer does not natively accept XMLA as a datasource.  It is still possible, and this little guide will step you through how to do this.  We used &#8230; <a href="http://blog.datamensional.com/2012/03/using-xmla-in-pentaho-reporting/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Anyone who has ever actually attempted it may have noticed that Pentaho Report Designer does not natively accept XMLA as a datasource.  It is still possible, and this little guide will step you through how to do this.  We used MSSQL 2008R2 with the standard Adventure Works example data loaded.  We used the Pentaho BI Suite EE 3.8, but the directions should remain the same for CE and more recent releases.</p>
<p>UPDATE: As Thomas Morgner pointed out, you don&#8217;t need to use PDI to bridge the gap between PRD and XMLA, <a href="http://www.sherito.org/2010/11/mondrian-xmla-and-olap4j-datasource.html">you can use OLAP4J</a>.  The PDI method can be generalized for almost any type of datasource and perform elaborate preprocessing as needed, so keep it in mind anyways.</p>
<h2>Set up MS OLAP XMLA Server as SOAP Web Service<br />
<strong></strong></h2>
<ol>
<li>First, copy all of the contents of the C:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\bin\isapi directory into the C:\inetpub\wwwroot\olap directory.  Create this if necessary.</li>
<li>Open the Server Manager by right clicking on Start-&gt;Computer and selecting Manage.  On the far left of this window, there should be the Console Tree. This can be opened by clicking on the gray button near the top of the window if it is not there.</li>
<li>Expand Roles by clicking on the plus sign next to it.  Below it should now be the Web Server (IIS) option.  If it is not there, it can be added by right clicking on roles and selecting Add Roles, and then clicking on the Web Server (IIS) checkbox when it shows up.</li>
<li>Either way, expand the Web Server (IIS) option and click on the Internet Information Services option below it.  There will now be a second selection tree next to it labeled Connections.</li>
<li>Expand the option that matches the name of the server, right click on Application Pools option below it, and select the add application pools option.  Set the name in the window that comes up to OLAP, and make the Managed Pipeline mode Classic.<br />
<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD11.png"><img class="alignnone size-full wp-image-207" title="XMLAinPRD1" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD11.png" alt="" width="369" height="253" /></a></li>
<li>Back on the Connections tree, expand the sites option. Next, expand the Default Web Sites Option below it, and then click on the OLAP option.  Of the icons that appear in the middle, double click on the Handler Mappings option.</li>
<li>Right click on any of the entries in the list and select the Add Script option.  In the window that pops up: under Request Path enter *.dll, under Executable enter C:\inetpub\wwwroot\olap\msmdpump.dll, and under Name enter OLAP.<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD2.png"><img class="alignnone size-full wp-image-209" title="XMLAinPRD2" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD2.png" alt="" width="393" height="322" /></a></li>
<li>Back in the Connections Tree, click back on OLAP to return to the previous screen of icons.  This time double click on the Authentication option, and make sure that the only entry in the list that is marked as enabled is the first one, Anonymous Authentication.  This will allow access to the connection without having to add extra authentication data to the query (it still requires authentication to access the server data).<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD31.png"><img class="alignnone size-full wp-image-210" title="XMLAinPRD3" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD31.png" alt="" width="298" height="72" /></a></li>
<li>Once all this is completed, it can be checked for response by going to the address of the dll, such as <a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">http</a><a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">://</a><a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">localhost</a><a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">/</a><a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">olap</a><a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">/</a><a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">msmdpump</a><a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">.</a><a href="http://www.google.com/url?q=http%3A%2F%2Flocalhost%2Folap%2Fmsmdpump.dll&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNG_grr11qALmq1mkct8AAwSdc6o1g">dll</a> which will give a SOAP response error.</li>
<li>It can also be tested through the SQL Management Studio by entering the address as the server name when connecting to a server.  All of the same options will be available as if accessing the server directly.</li>
</ol>
<p>&nbsp;</p>
<h2>Connecting Microsoft OLAP to Pentaho Data Integration (KETTLE)</h2>
<ol>
<li>Open Pentaho Data Integration (PDI).</li>
<li>Go to File &#8211;&gt; New Transformation</li>
<li>Click on the “Design” Tab if not currently selected.</li>
<li>Now look for the OLAP step.
<ol>
<li>One way to do this is to browse under the folder “Input” on the left and find the “OLAP Input” or alternatively click in the search box at the top and type in “OLAP Input”</li>
<li>Drag the step to the right and side onto the canvas.</li>
</ol>
</li>
<li>Double click on the OLAP Input Step.</li>
<li>FIll in the below.  We have created anonymous login for simplification of this POC.  We recommend that set up the security appropriately in production.  We’ve also included a sample MDX query that should return 50 lines for testing purposes.<strong>MDX Query</strong>:</li>
</ol>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="624">SELECT{[Measures].[Internet Sales Amount]}</p>
<p>ON 0,</p>
<p>[Date].[Calendar Year].[Calendar Year].MEMBERS</p>
<p>*</p>
<p>TOPCOUNT(</p>
<p>[Product].[Product].[Product].MEMBERS</p>
<p>,10, [Measures].[Internet Sales Amount])</p>
<p>ON 1</p>
<p>FROM [Adventure Works]</td>
</tr>
</tbody>
</table>
<p><strong>Configure OLAP input:<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD4.png"><img class="alignnone size-full wp-image-211" title="XMLAinPRD4" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD4.png" alt="" width="570" height="510" /></a></strong></p>
<ol>
<li>Now do a search for “Text file output” on the left or browse for it under the output folder.</li>
<li>Drag it onto the the canvas on the right.</li>
<li>Click on your newly named OLAP Input called MSOLAP now and hold down the shift key.</li>
<li>Drag an arrow while still holding left click and shift and connect it to the Text File output step and release the Shift and left click button.</li>
<li>Double click the “Text file output” and set it to a local file system like: C:\Users\Administrator\Documents\MSOLAP Output</li>
<li>Go to File &#8211;&gt; Save As and save your transformation as MSOLAP.  Click the green “Run” button that looks like a play button.</li>
<li>You should have a successfully exported data from MSOLAP to a text file (you’ll know if you don’t see any error messages and it says Finished! at the bottom).</li>
</ol>
<h2>Using Pentaho Report Designer (PRD) to report from Microsoft OLAP</h2>
<ol>
<li>Open Pentaho Report Designer</li>
<li>Click on the “Data” tab on the right.</li>
<li>Right click on “Data Sets” on the right.</li>
<li>Go to Pentaho Data Integration.</li>
<li>Browse for MSOLAP.ktr and click Open.</li>
<li>In the name field, call it “MSOLAP.”</li>
<li>Select the MSOLAP step.</li>
<li>Click Preview to verify that it will work.</li>
<li>Click OK.  You should see three columns under Data sets under MS OLAP as a data source.  They are: Column0, Column1, [Internet Sales Amount].</li>
<li>Drag each column on the “Details” band of the report.<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD5.png"><img class="alignnone size-full wp-image-212" title="XMLAinPRD5" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD5.png" alt="" width="834" height="596" /></a></li>
<li>Now go back to Pentaho Data Integration and open MSOLAP.ktr from the last section.</li>
<li>Delete the text output step.  Find the dummy step on the left and drag it to the canvas and connect them with a hop as shown in the picture:<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD6.png"><img class="alignnone size-full wp-image-213" title="XMLAinPRD6" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD6.png" alt="" width="512" height="285" /></a></li>
<li>Go back to PRD.  Click on the preview button.  It looks like a giant eyeball in the top left hand side.</li>
<li>If you see no errors and about 2 pages of detail data (and 50 lines of data), you have successfully queried Microsoft OLAP from Pentaho report designer.</li>
<li>If you’d like to publish this to the BI Server, make sure that the PDI transformation file (.ktr) is accessible by the BI Server to use in the transformation whether by file system or stored in the PDI repository.<a href="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD7.png"><img class="alignnone size-full wp-image-214" title="XMLAinPRD7" src="http://blog.datamensional.com/wp-content/uploads/2012/03/XMLAinPRD7.png" alt="" width="357" height="623" /></a></li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/03/using-xmla-in-pentaho-reporting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing and configuring phpCAS</title>
		<link>http://blog.datamensional.com/2012/03/installing-and-configuring-phpcas/</link>
		<comments>http://blog.datamensional.com/2012/03/installing-and-configuring-phpcas/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 15:30:53 +0000</pubDate>
		<dc:creator>Gerrit Goewey</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CAS]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=198</guid>
		<description><![CDATA[Since CAS is capable of integrating applications made in many different languages, you may want to take the time to get everything you can authenticating through it.  Every different language needs a separate client though, which needs to be installed &#8230; <a href="http://blog.datamensional.com/2012/03/installing-and-configuring-phpcas/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since CAS is capable of integrating applications made in many different languages, you may want to take the time to get everything you can authenticating through it.  Every different language needs a separate client though, which needs to be installed and configured.  The official client for PHP is phpCAS.  The instructions I have here were originally done in 3.4.8 of CAS and 1.2.2 of phpCAS on the 11.04 version of Ubuntu.  If you&#8217;re using a different flavor of linux the commands may differ slightly, and if you&#8217;re using Windows, all of the example directories and commands will probably be different.  I will make notes where applicable.</p>
<p>Requirements:</p>
<ul>
<li>A CAS server accessible through https.  It may be possible to get phpCAS to work without it, but it is safer and probably easier just to set up the https.</li>
<li>A webserver such as Apache, but any that will be capable of running PHP will do.</li>
<li>PHP5 with cURL installed on the machine.</li>
</ul>
<p>Directions:</p>
<ol>
<li>The easiest way to install is through PEAR with the command “<strong>pear install </strong><a href="http://downloads.jasig.org/cas-clients/php/current.tgz"><strong> </strong></a><strong>http://downloads.jasig.org/cas-clients/php/current.tgz</strong>”.  If PEAR is not already installed, it will tell you the command needed to install it.  If on Windows or a flavor of linux that does not provide a command to install PEAR, a manual install would probably be easier.  Just download from the link in the command above and extract somewhere logical (if you&#8217;re on Windows, you&#8217;ll need something like 7zip to open the .tgz) and add the include_path to your php.ini file.</li>
<li>Go to the directory web pages are served from for that server (<strong>/var/www/</strong>) and copy <strong>config.php</strong> and <strong>example_simple.php</strong> from the examples directory provided with phpCAS’s documentation (<strong>/usr/share/php/doc/CAS/docs/examples</strong>).  Other examples can be copied if desired, but this is all that is necessary to test the connection.</li>
<li>Modify Config.php to reflect the setup of the machine it is install on.  This file is included in all of the example files, so you should only need to change this once.  For a typical machine, the following changes were made:</li>
<ul>
<li><strong>$phpcas_path = ‘/usr/share/php’;</strong></li>
<li><strong>$cas_host = ‘localhost’;</strong></li>
<li><strong>$cas_context = ‘/cas-server-webapp-3.4.8’;</strong></li>
<li><strong>$cas_port = 8443;</strong></li>
</ul>
<li>In a web browser, go to <a href="http://localhost/example_simple.php">http</a><a href="http://localhost/example_simple.php">://</a><a href="http://localhost/example_simple.php">localhost</a><a href="http://localhost/example_simple.php">/</a><a href="http://localhost/example_simple.php">example</a><a href="http://localhost/example_simple.php">_</a><a href="http://localhost/example_simple.php">simple</a><a href="http://localhost/example_simple.php">.</a><a href="http://localhost/example_simple.php">php</a> to test the server. It should redirect you to the CAS login page and then return you once logged in.  If you were already logged in through another app, it will automatically take you to the requested page.</li>
</ol>
<p>While it may not seem like much as it is, the examples included with phpCAS will give you a good basis for using this client with your own PHP applications.  Do keep in mind that Single Sign On with CAS does not mean Single Sign Off, so always log out of your applications separately.  Also remember that Authentication and Authorization are separate concepts and CAS will only decide if a valid username and password were provided.  It is up to your application to determine if that username should have access.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/03/installing-and-configuring-phpcas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting Up Logging Tables for PDI both Locally and on Server</title>
		<link>http://blog.datamensional.com/2012/02/setting-up-logging-tables-for-pdi-both-locally-and-on-server/</link>
		<comments>http://blog.datamensional.com/2012/02/setting-up-logging-tables-for-pdi-both-locally-and-on-server/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 12:30:30 +0000</pubDate>
		<dc:creator>Benjamin Goewey</dc:creator>
				<category><![CDATA[Data Integration]]></category>
		<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[Pentaho Data Integration]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=183</guid>
		<description><![CDATA[When running an ETL in Pentaho Data Integration (Kettle), logging is normally done in a log file on the local system.  When running an ETL through Carte or the BI server, it will add the information to their own separate &#8230; <a href="http://blog.datamensional.com/2012/02/setting-up-logging-tables-for-pdi-both-locally-and-on-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When running an ETL in Pentaho Data Integration (Kettle), logging is normally done in a log file on the local system.  When running an ETL through Carte or the BI server, it will add the information to their own separate local log file.  These directions will allow the log information to be placed in a centralized database, keeping them all visible in one place, and also enabling PDI&#8217;s powerful performance monitoring.  This was originally created using Pentaho 3.8 and an Oracle 11g database.</p>
<h1>Find the kettle.properties file</h1>
<p>You’ll want to modify your kettle.properties file which is in the user folder of both Linux and Windows.   Spoon, Carte, and the BI Server will all look in the same place.  Find your  kettle.properties in these locations depending on your OS:</p>
<ul>
<li><strong>Windows:  C:\&lt;User&gt;\.kettle\kettle.properties</strong></li>
<li><strong>Linux: /home/&lt;User&gt;/.kettle/kettle.properties </strong></li>
</ul>
<p>The .kettle folder might be hidden.   Open with a great Text Editor like Notepad++</p>
<h1>Setting up the connections to your Database</h1>
<p>Ensure that you have full access to do inserts and create tables.  It’s recommended you set up your connections on your BI Server and/or Carte as JNDI connections.  Ensure you have the proper JDBC drivers locally as well as on the servers.</p>
<p>Make sure that they have the same connection name.   See the directions on how to setup a local JNDI connection in Spoon.  You could potentially just store the connection information within the Spoon job as well and not setup Server based connections and avoid JNDI altogether.  Though that would make it more difficult to pool connections and switch from Development and then production environments.</p>
<h1>Adding the Variables:</h1>
<p>Because of a bug in Pentaho, <strong><span style="text-decoration: underline;">you should not fill in any variable related to Schema</span></strong>, especially if it’s implied what the default schema is.  Add the following to your kettle.properties on both your server and local machine you use Spoon on:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="638">KETTLE_TRANS_PERFORMANCE_LOG_TABLE=trans_performance<br />
KETTLE_CHANNEL_LOG_DB=OracleDB_Connection<br />
KETTLE_JOB_LOG_DB=OracleDB_Connection<br />
KETTLE_LOG_SIZE_LIMIT=<br />
KETTLE_TRANS_LOG_TABLE=trans<br />
KETTLE_TRANS_ROWSET_SIZE=0<br />
KETTLE_TRANS_PERFORMANCE_LOG_DB=OracleDB_Connection<br />
KETTLE_MAX_LOG_TIMEOUT_IN_MINUTES=10<br />
KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=N<br />
KETTLE_JOB_LOG_TABLE=job<br />
KETTLE_JOBENTRY_LOG_DB=OracleDB_Connection<br />
KETTLE_MAX_LOG_SIZE_IN_LINES=10000<br />
KETTLE_CHANNEL_LOG_TABLE=channel<br />
KETTLE_TRANS_LOG_DB=OracleDB_Connection<br />
KETTLE_JOBENTRY_LOG_TABLE=job_entry<br />
KETTLE_STEP_LOG_DB=OracleDB_Connection<br />
KETTLE_STEP_LOG_TABLE=step<br />
KETTLE_STEP_PERFORMANCE_SNAPSHOT_LIMIT=0</td>
</tr>
</tbody>
</table>
<h1>Testing Logging to Database on Spoon</h1>
<p>Save your file locally first in on the specified .kettle folder depending on your OS.  Make sure you shut down Spoon if it’s not shut down already.  Then reboot the application.</p>
<p>Check to see that your Kettle.properites file was properly loaded.  Go  to Edit  Edit the Kettle Propreties File.  You should see variable names on the left correspond to the values on the right you just edited in the file.  If you don’t see any values filled out, you’ve got your file in the wrong place.  The picture below actually shows a file with empty log variables.   You could optionally fill in the values here or go back to your file.  Either way, you’ll have to restart Spoon after making your modifications.</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/LogTables1.png"><img class="alignnone size-full wp-image-184" title="LogTables1" src="http://blog.datamensional.com/wp-content/uploads/2012/02/LogTables1.png" alt="" width="745" height="757" /></a></p>
<h1>Set up your Jobs and Transformations for Logging</h1>
<p>Next, open a Job you want to log into your logging tables.   Go to Edit and then Settings.  Click on the logging tab.  There are three sections each representing a different logging table for jobs.  Make sure for each section all the appropriate fields are selected<strong> <span style="text-decoration: underline;">and that you fill out all the appropriate environment variables you defined in the kettle.properties file</span></strong>.  Most people will pick all of them.  If you haven’t done so already, click on the SQL button.  It will create all necessary tables for all sections.</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/LogTables2.png"><img class="alignnone size-full wp-image-185" title="LogTables2" src="http://blog.datamensional.com/wp-content/uploads/2012/02/LogTables2.png" alt="" width="744" height="752" /></a></p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/LogTables3.png"><img class="alignnone size-full wp-image-186" title="LogTables3" src="http://blog.datamensional.com/wp-content/uploads/2012/02/LogTables3.png" alt="" width="744" height="752" /></a></p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/LogTables4.png"><img class="alignnone size-full wp-image-187" title="LogTables4" src="http://blog.datamensional.com/wp-content/uploads/2012/02/LogTables4.png" alt="" width="744" height="752" /></a></p>
<p>Now open a transformation, and go through exactly the same motions as a job.  Notice there 4 sections instead of three.  Make sure everything is checked and that all tables are created.</p>
<h1>Moving your Logging to Carte or BI Server</h1>
<p>This assumes that you have created a JNDI connection in Spoon with the same name as the connections on your server.  Also, you’ve verified the connections work and have all the appropriate database drivers.</p>
<p>Make sure you move the kettle.properties file you’ve already configured locally to the server in the appropriate user folder and the .kettle folder as illustrated above.  You’ll have to shutdown and restart the server since you are adding new environment variables to the server instance.</p>
<p>Now that everything is configured locally, on the sever and  we’ve made the appropriate changes to the solution files, we can move the solutions to the server.  Simply move them to Carte or for the BI Server, move the solution files with corresponding XACTIONs that execute the solution files.  You’ll have to refresh the repository as necessary.</p>
<p>Execute the solutions on the server.  All logging should go to the exact same place locally as well as remotely.</p>
<h1>Hot Tip:</h1>
<p>Make a template for both Job and Transformation files with all the appropriate logging configuration setup.  This way you don’t have to make them over and over again.  If you have one job executing other jobs, it will pick up the logging of the children jobs.  If executed alone, it will not.  The master job will not pick up the transformation logging unless specified in the file itself.</p>
<h1>Extra Hot Tip: Kinda a big deal if your tables begin to lock:</h1>
<p>Since PDI is designed to be platform agnostic, the logging table mechanism attempts to find a happy medium between all databases.  However, there are some database specific things up you must do especially if you&#8217;re processing a lot of data to avoid concurrency issues and you may get a table lock.  We ran into this problem with Oracle 11g when processing about 8000 rows/s through PDI.   Matt Casters, the founder of the Kettle project, <a href="http://wiki.pentaho.com/display/EAI/Configuring+log+tables+for+concurrent+access?showComments=false">has a Pentaho Forum post that shows you how get around the concurrency table lock issue using both Oracle and MySQL on this Pentaho Forum post.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/02/setting-up-logging-tables-for-pdi-both-locally-and-on-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Differences in Private versus Public Schedules using Pentaho User Console</title>
		<link>http://blog.datamensional.com/2012/02/differences-in-private-versus-public-schedules-using-pentaho-user-console/</link>
		<comments>http://blog.datamensional.com/2012/02/differences-in-private-versus-public-schedules-using-pentaho-user-console/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 12:00:16 +0000</pubDate>
		<dc:creator>Benjamin Goewey</dc:creator>
				<category><![CDATA[BI Server]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Pentaho]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=169</guid>
		<description><![CDATA[We get a lot of questions about the scheduling mechanism within the Pentaho BI Server and the differences between Public and Private Schedules. Update: Michael D&#8217;Amour of Pentaho informed me that the scheduling mechanism will be completely re-written in the Sugar release &#8230; <a href="http://blog.datamensional.com/2012/02/differences-in-private-versus-public-schedules-using-pentaho-user-console/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We get a lot of questions about the scheduling mechanism within the Pentaho BI Server and the differences between Public and Private Schedules.</p>
<p><strong>Update:</strong> Michael D&#8217;Amour of Pentaho informed me that the scheduling mechanism will be completely re-written in the Sugar release which is the next generation of the Pentaho Suite.  The data below is still relavent for most or all versions 3.x and 4.x.  <a href="http://michaeldamour.blogspot.com/2011/11/scheduling-and-workspace-in-sugar.html">You can read more about the next version of scheduling</a>.</p>
<p>The information provided below was tested with the 3.8 Suite on the Pentaho BI Server (which I believe is the 3.8 BI Server).  The module is virtually the same in the new 4.1 Suite (not to be confused with the BI Server version, which would be 3.10 in this case).  If you notice any differences let me know.  I have not seen any differences between these two versions with scheduling.</p>
<p>If you have appropriate access, you can simply right click and go to schedule to schedule your own job by simply right clicking on the solution file in the Pentaho User Console (PUC).  You can run these under your username, so others should not be able to see these jobs unless they are administrators.</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic1.png"><img class="alignnone size-full wp-image-172" title="PrivateVsPublic1" src="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic1.png" alt="" width="383" height="333" /></a></p>
<p>You can view your schedules in the work space.  If they have already completed, you can view the return information from the XACTION (if that’s what you were running).  Click on the yellow icon at the top.  See below:</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic2.png"><img class="alignnone size-full wp-image-173" title="PrivateVsPublic2" src="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic2.png" alt="" width="1068" height="754" /></a></p>
<p>Notice how public schedules can be created as well and all users could see those schedules.  Notice how the PentahoSystemVersionCheck Job is actually private if viewed in the Enterprise/Admin Console (a.k.a. PEC or PAC).  However, since I’m logged in as Joe, and Joe is in the Admin role, I can view both Private schedules and all other schedules that any user creates.</p>
<p>Notice below that the Test Private Schedule I have below.  No other user should see it except the admin in PUC.  I have this running every three minutes just to ensure it works:</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic3.png"><img class="alignnone size-full wp-image-174" title="PrivateVsPublic3" src="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic3.png" alt="" width="976" height="241" /></a></p>
<p>If you click the checkbox next to the schedule you want to modify or if you’re creating a new one, there is a checkbox to make it public or private.  By default, it is private.  At the time of this writing, I have not been able to get a private job to work with Community Edition on the client’s site.  Though a public schedule or user created schedule will work.</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic4.png"><img class="alignnone size-full wp-image-175" title="PrivateVsPublic4" src="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic4.png" alt="" width="573" height="590" /></a></p>
<p>Note: you are not able to change a private schedule to a public schedule because it will not replace the old one.</p>
<p>If you right click on a solution file and go to Properties, you can then click on the Advance tab in the pop-up.</p>
<p>There you will see a list of public schedules and manipulate them to attach to your files:</p>
<p><a href="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic5.png"><img class="alignnone size-full wp-image-176" title="PrivateVsPublic5" src="http://blog.datamensional.com/wp-content/uploads/2012/02/PrivateVsPublic5.png" alt="" width="444" height="474" /></a></p>
<p>You should now be able to test your schedules.  I recommend trying to use a quick running report or an xaction that executes a transformation or job with an email step or output to a text file. This way, the scheduled job runs quickly and you get results back quickly with a log of what’s wrong with your PDI job or report if executing one from an xaction.</p>
<p>Let us know if you have questions or comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/02/differences-in-private-versus-public-schedules-using-pentaho-user-console/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pentaho SSO with CAS and LDAP: Tips and Notes</title>
		<link>http://blog.datamensional.com/2012/02/pentaho-sso-with-cas-and-ldap-tips-and-notes/</link>
		<comments>http://blog.datamensional.com/2012/02/pentaho-sso-with-cas-and-ldap-tips-and-notes/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 22:23:14 +0000</pubDate>
		<dc:creator>Gerrit Goewey</dc:creator>
				<category><![CDATA[BI Server]]></category>
		<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[CAS]]></category>
		<category><![CDATA[LDAP]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=163</guid>
		<description><![CDATA[After hearing various comments and setting up some more production implementations, I figured I would share some tips beyond the straight setup here. I will reserve the other post for keeping the basic instructions and use this one for any &#8230; <a href="http://blog.datamensional.com/2012/02/pentaho-sso-with-cas-and-ldap-tips-and-notes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After hearing various comments and setting up some more production implementations, I figured I would share some tips beyond the straight setup here. I will reserve <a title="Pentaho SSO Setup using CAS and LDAP" href="http://blog.datamensional.com/2011/07/pentaho-sso-setup-using-cas-and-ldap/">the other post</a> for keeping the basic instructions and use this one for any additional notes as I come across them.</p>
<h1>Version compatibility</h1>
<p>Many people seemed to have trouble with the directions using more recent versions of the software than this was made on.  I have successfully connected Pentaho 4.1 to CAS 3.4.11 following these directions, so they will most likely remain valid until Pentaho implements a more recent version of Spring Security (which would probably be Pentaho 5 at the earliest).  The only part of the install that is absolutely version specific is the <strong>spring-security-cas-client-2.0.5.RELEASE.jar</strong> file.  A later version of this jar will not work.</p>
<p>The difficulty connecting that many people seem to have most likely comes from <strong>applicationContext-spring-security.xml </strong>file.  Since the directions were made with a specific version of CAS, all of the URL references in it are made to the &#8220;http://localhost:8080/cas-server-webapp-3.4.8/&#8221; version of the webapp.  Since you can technically name the webapp anything, these URL references need to be changed to match, such as &#8220;http://localhost:8080/cas-server-webapp-3.4.11/&#8221; for the current version.</p>
<h1>Security</h1>
<p>While CAS will complain on its login page about not using SSL, I am as of yet to find a version that will actually not allow pentaho login. This does not mean that certain setups will not run into this problem, and many other CAS clients require SSL connections  Either way, setting up your server to use SSL is always a good idea.  The instructions apache provides (http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html for the version of tomcat pentaho uses) should be sufficient for setting this up, and remains mostly consistent between later versions of tomcat.</p>
<p>Again changes need to be made to the <strong>applicationContext-spring-security.xml</strong> file&#8217;s URLs, this time make sure to change the &#8220;http://localhost:8080&#8243; to the equivalent secure URL such as &#8220;https://localhost:8443&#8243; to make sure it actually uses the SSL.</p>
<h1>XML Encoding</h1>
<p>This is something that I&#8217;m sure some people have run into before, namely that when copying the XML over it sometimes cannot be read by the server.  The primary cause of this is due to the XML file requiring UTF-8 encoding, and many text editing programs (especially in Windows land) tend to automatically save to more modern text encodings.  So When editing these files, make sure to force UTF-8 encoding when you save.</p>
<h1>Authentication vs Authorization</h1>
<p>CAS like its spelled out name implies is designed to handle authentication, i.e. verifying a valid username and password combination.  This does not include authorization, i.e. checking if a user is actually allowed to access something.  Authorization is handled on the client end, in this case Pentaho.  Any time a user successfully logs in to CAS but does not have any authorization in pentaho, they will be redirected to the default public/casFailed page which does not exist by default.  As usual, this can be changed in the <strong>applicationContext-spring-security.xml</strong> file.</p>
<p>Normally both are handled in Pentaho, with authentication handled in the <strong>applicationContext-spring-security.xml</strong> that is modified as part of the CAS integration, and also in another file that is imported through the <strong>pentaho-spring-beans.xml</strong> file, the default being called <strong>applicationContext-spring-security-hibernate.xml</strong>. After CAS is integrated, this imported file is mostly ignored, as CAS is bypassing all of the beans in it.</p>
<p>Authorization is handled primarily by another file imported through the <strong>pentaho-spring-beans.xml</strong> file called <strong>applicationContext-pentaho-security-hibernate.xml</strong> by default.  Like the similarly named file mentioned previously, there are a number of alternate versions that can be used instead of the default hibernate version, such as -jdbc (checks against a database query), -ldap (checks against an ldap server), -memory (checks against data written directly in the XML file).</p>
<p>I haven&#8217;t fully explored all of the possibilities those different authorization options may provide, so it is very possible that there is an elegant solution available in modifying those files.  If the user base for a pentaho deployment is not especially large and/or does not change often, updating user permissions by hand may be a more cost effective solution than spending hours coming up with a custom solution.  When confronted with this same problem with a client who had potentially thousands of users, I went to the Pentaho developer&#8217;s multipurpose tool:  PDI.</p>
<p><a title="HibernateNewUsers.ktr" href="https://my.syncplicity.com/share/vsnfjxpuvh/update_miles">This ETL</a> is designed to check the USERS table found in the hibernate database that Pentaho CE comes with against an LDAP server and make comparisons for any new users, which it then adds to the Hibernate database with the basic Authenticated role.  The main advantage of this technique is that it is not difficult to implement against any size, and can be scheduled to run regularly to keep the records up to date.  It also allows the Admin Console to still be used to add additional roles to the users.  The main disadvantage is the fact that there will always be a time delay until its next scheduled run or the next time someone manually does so.  It also lacks flexibility, as it grants the same permission to every user it adds, so still requires human intervention to make users an admin or some other role. This could probably be overcome with further development and more precise deployment specifications from a client, and in its current form is still very effective at authorizing large groups of users at once.</p>
<p>&nbsp;</p>
<p>If there are any other solutions out there, or other comments about these or any other issues, let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2012/02/pentaho-sso-with-cas-and-ldap-tips-and-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerPivot and Production Processes</title>
		<link>http://blog.datamensional.com/2011/09/powerpivot-and-production-processes/</link>
		<comments>http://blog.datamensional.com/2011/09/powerpivot-and-production-processes/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 14:19:49 +0000</pubDate>
		<dc:creator>John Crites</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.datamensional.com/?p=150</guid>
		<description><![CDATA[I am a strong advocate of Microsoft Excel and PowerPivot for the analysis and organization of information.  While it may seem odd to many, Microsoft should be applauded for the newest release of Excel and, in particular, the free add-on &#8230; <a href="http://blog.datamensional.com/2011/09/powerpivot-and-production-processes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I am a strong advocate of Microsoft Excel and PowerPivot for the analysis and organization of information.  While it may seem odd to many, Microsoft should be applauded for the newest release of Excel and, in particular, the free add-on of PowerPivot enabling the business intelligence like crunching of information.  I’m impressed.  As with most good things, there’s a caution that comes with this new tool.</p>
<p>I’ve had the implications of poor internal controls beat into me many moons ago when I managed an IT Auditing group for an international firm.  As a result, I can’t shake the butterflies when I see organizations relying on these tools for complex and manually intensive data analysis and reporting.  Splitting large files into chunks of under one million rows for PowerPivot and combining the reporting results on the back can introduce an opportunity for inconsistency.  Combining that with the manual intervention necessary to integrate multiple data sources compounds the risk of inconsistencies; particularly if the individual with all the knowledge of manual manipulation is not available for whatever reason.  Ouch.</p>
<p>To be clear, I am not discouraging the use of Excel and PowerPivot.  They are excellent tools and I use them quite effectively on an ongoing basis.  However, if you need a repeatable, reliable process to generate information used in key decisions, get yourself a production worthy tool.  Spend your time utilizing the information as opposed to manually crunching it.  The number of affordable solutions that can solve your production challenges might surprise you.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datamensional.com/2011/09/powerpivot-and-production-processes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

