Business intelligence manuel technique
A la fin de cette procédure, vous pourrez utiliser et paramétrer la solution de Business Intelligence Pentaho à votre guise.
Contents |
Installation composant Dawahouse démonstration
Incomplet, en cours de rédaction :
- Appliquer le patch sur ofbizNeogia:
Index: framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java
===================================================================
RCS file: /cvsroot/neogia/ofbizNeogia/framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java,v
retrieving revision 1.16
diff -u -r1.16 FreeMarkerWorker.java
--- framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java 19 Dec 2007 09:54:38 -0000 1.16
+++ framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java 29 Mar 2008 08:47:00 -0000
@@ -90,6 +90,7 @@
ftlTransforms.put("renderWrappedText", loader.loadClass("org.ofbiz.webapp.ftl.RenderWrappedTextTransform").newInstance());
ftlTransforms.put("menuWrap", loader.loadClass("org.ofbiz.widget.menu.MenuWrapTransform").newInstance());
+ ftlTransforms.put("dwhTransform", loader.loadClass("org.ofbiz.datawarehouse.taglib.ftl.TransformTagTransform").newInstance());
} catch (ClassNotFoundException e) {
Debug.logError(e, "Could not pre-initialize dynamically loaded class: ", module);
} catch (IllegalAccessException e) {
Installation penthao
télécharger pentaho 1.2 pour plus d'informations : tutorial
Paramétrage du datasource
- Création d'un fichier datasource exemple: demoNeogiaCompta-ds.xml dans le répertoire $PENTAHO_HOME/jboss/server/default/deploy/demoNeogiaCompta-ds.xml
exemple:
<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>DemoCompta</jndi-name> <connection-url>jdbc:mysql://localhost/demoNeogia</connection-url> <driver-class>org.gjt.mm.mysql.Driver</driver-class> <user-name>neogia</user-name> <password>neogia</password> <check-valid-connection-sql>select count(*) from ACCOUNT_FACT</check-valid-connection-sql> </local-tx-datasource> </datasources>
- Ajout de la partie suivante dans le fichier $PENTAHO_HOME/jboss/server/default/deploy/pentaho.war/WEB-INF/web.xml
<resource-ref>
<description>Demo Neogia Compta</description>
<res-ref-name>jdbc/DemoCompta</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- Ajout de la partie suivante dans le fichier $PENTAHO_HOME/jboss/server/default/deploy/pentaho.war/WEB-INF/jboss-web.xml
<resource-ref> <res-ref-name>jdbc/DemoCompta</res-ref-name> <res-type>javax.sql.DataSource</res-type> <jndi-name>java:/DemoCompta</jndi-name> </resource-ref>
pour plus de détails, voir : datasource sous pentaho
- NOTE: bien vérifier que le connecteur jdbc de la base de données (mysql-connector-java-3.1.14-bin.jar) se trouve dans le répertoire:
pentaho-demo/jboss/server/default/lib/
Création d'une nouvelle solution BI
Création d'un nouveau dossier (exemple DemoNeogia) dans $PENTAHO_HOME/pentaho-solutions/samples/DemoNeogia
Ce dossier doit contenir au moins 2 fichiers : le schéma du cube DemoCubeCompta.xml fichier de paramétrage: DemoCubeCompte.xaction
Spécification du schéma des cubes
voir la documentation sur le site de pentaho: comment spécifier un schéma ?
Spécification des paramétres de chargement et visualisation
copier la partie suivante et la mettre dans le fichier DemoCubeCompta.xaction
<?xml version="1.0" encoding="UTF-8"?>
<action-sequence>
<name>DemoCubeCompta.xaction</name>
<title>%title</title>
<version>1</version>
<logging-level>ERROR</logging-level>
<documentation>
<author>Tlemsani Hichem</author>
<help/>
<result-type>report</result-type>
<description>%description</description>
<icon></icon>
</documentation>
<inputs>
<mode type="string">
<default-value/>
<sources>
<request>mode</request>
</sources>
</mode>
</inputs>
<outputs>
<model type="string"/>
<connection type="string"/>
<mdx type="string"/>
<options type="list"/>
<title type="string"/>
<url type="string">
<destinations>
<response>redirect</response>
</destinations>
</url>
<charttype type="string"/>
<chartlocation type="string"/>
</outputs>
<resources/>
<actions>
<action-definition>
<component-name>PivotViewComponent</component-name>
<action-type>Pivot View</action-type>
<action-inputs>
<mode type="string"/>
</action-inputs>
<action-outputs>
<model type="string"/>
<connection type="string"/>
<mdx type="string"/>
<options type="list"/>
<title type="string"/>
<url type="string"/>
<charttype type="string"/>
<chartlocation type="string"/>
</action-outputs>
<component-definition>
<title>Drill Down to Pivot Table</title>
<viewer>Pivot</viewer>
<charttype>8</charttype>
<chartlocation>right</chartlocation>
<model>samples/steel-wheels/analysis/steelwheels.mondrian.xml</model>
<options>
<personal/>
<cube-nav/>
<mdx-edit/>
<sort-conf/>
<spacer/>
<level-style/>
<hide-spans/>
<properties/>
<non-empty/>
<swap-axes/>
<spacer/>
<drill-member/>
<drill-position/>
<drill-replace/>
<drill-thru/>
<spacer/>
<chart/>
<chart-conf/>
<spacer/>
<print-conf/>
<print-pdf/>
<spacer/>
<excel/>
</options>
<jndi>DemoCompta</jndi>
<query><![CDATA[select {[accountingCount].[All Counts]} ON COLUMNS,{[timePeriod].[All Years]} ON ROWS
from [comptabilite]
where [customer].[All Customers]]]></query>
</component-definition>
<action-name>Pivot View</action-name>
<logging-level>DEBUG</logging-level>
</action-definition>
</actions>
</action-sequence>
Les balises importantes à changer pour personnaliser sa solution BI:
- le chemin relatif du fichier de schéma du cube
<model>samples/DemoNeogia/DemoCubeCompta.xml</model>
- doit pointer sur le même jndi que le fichier datasource
<jndi>DemoCompta</jndi>
- la premiére requête query qui va être affichée dans la fenêtre JPivot
<query><![CDATA[select {[accountingCount].[All Counts]} ON COLUMNS,{[timePeriod].[All Years]} ON ROWS
from [comptabilite]
where [customer].[All Customers]]]></query>
Mise en route de Pentaho
- chargement de la Base de données avec le jeu de données (utilisation de neogia)
- lancer en ligne de commande (à partir du répertoire $PENTAHO_HOME)
sh start-pentaho.sh
- lancer un navigateur et taper dans le champ adresse la ligne suivante :
- http://localhost:8080/pentaho/Pivot (affichage de la page d'acceuil)
pour vérifier que Pentaho est bien lancé
pour afficher le résultat de la requête MDX stockée dans le fichier .xaction
Arrêter Pentaho
lancer en ligne de commande (à partir du répertoire $PENTAHO_HOME)
sh stop-pentaho.sh
Astuces
Au lieu de créer un nouveau dossier $PENTAHO_HOME/pentaho-solutions/samples/DemoNeogia il suffit de reprendre la solution $PENTAHO_HOME/pentaho-solutions/samples/steel-wheels/analysis et mettre dedans le fichier DemoCubeCompta.xaction, et éditer le schéma du cube steelwheels.mondrian.xml et le sauvegarder sans changer le nom du fichier.
OFBiz rev. 732622
depuis juillet 2008, ajout d'un nouveau composant BI dans OFBiz. Pour le moment, il n'y a qu'un schéma très simple destiné à suivre les pertes et profits, en utilisant les factures.
- Schéma de données
- SalesInvoiceItemStarSchema
- Table des faits
- SalesInvoiceItemFact
- Dimensions utilisées
- CurrencyDimension
- DateDimension
- ProductDimension
- 1ère initialisation du cube
- location="org/ofbiz/bi/DimensionServices.xml" invoke="quickInitDataWarehouse"
- creation des dimensions date, currency, product
- chargement de la dimension date
- loadDateDimension
- <attribute name="fromDate" type="Date" mode="IN" optional="false"/>
- <attribute name="thruDate" type="Date" mode="IN" optional="false"/>
- chargemnet de la dimension currency
- loadCurrencyDimension
- chargement des produits
- loadAllProductsInProductDimension
- chargement de la table de faits (en automatique)
- déclenché quand une facture passe au statut INVOICE_READY
- /ofbiz/applications/accounting/servicedef/secas_olap.xml
<eca service="setInvoiceStatus" event="commit"> <condition field-name="statusId" operator="equals" value="INVOICE_READY"/> <condition-field field-name="statusId" operator="not-equals" to-field-name="oldStatusId"/> <action service="loadSalesInvoiceFact" mode="sync" run-as-user="system"/> </eca>
- /ofbiz/applications/accounting/script/org/ofbiz/accounting/olap/FactServices.xml
- loadSalesInvoiceFact
- loadSalesInvoiceItemFact
- liste des schemas
- /ofbiz/framework/bi/webapp/bi/WEB-INF/actions/reportbuilder/GetStarSchemas.groovy
- liste des champs dans le schema selectionné
- /ofbiz/framework/bi/webapp/bi/WEB-INF/actions/reportbuilder/GetStarSchemas.groovy
- Creation du rapport après sélection des champs
- /ofbiz/framework/bi/webapp/bi/WEB-INF/actions/reportbuilder/RunStarSchemaQuery.groovy
- selection des champs à afficher
- /ofbiz/framework/bi/webapp/bi/reportbuilder/SelectStarSchemaFields.ftl
- Affichage des champs
- /ofbiz/framework/bi/webapp/bi/reportbuilder/RenderStarSchemaReport.ftl


