Pentaho Data Integration (appelé aussi Kettle ou PDI) est un ETL qui nous permet de réaliser des interfaces entre ODOO et d'autres logiciels, bases de données ou fichiers.Il nous permet aussi la reprise initiale de données lors de la migration vers ODOO.
J'avais déjà rédigé en septembre 2013 sur ce blog, un article sur le sujet (à l'époque de OpenERP 7).
Environnement
- PC sous Linux Mint 17
- Java JRE 1.5
- nous allons faire un test d'import dans Odoo 8, d'un fichier csv contenant une liste de produits
- Voici le fichier au format ods
.. et au format csv :
nom,description,categorie,prix vente,prix revient
cabine hydromassante,Cabine 1/4 de cercle. Dim. L. 90 x P. 90 x H. 225/210 cm. ,maison,"199,9",180
Taille-haies thermique,Taille-haies thermique - RHT2660R - 26 cm³ / 60cm,jardin,"179,99",160
étagère,etagère 3 tablettes bois et métal,maison,"19,9",15
tondeuse thermique,tondeuse thermique bs500e,jardin,229,180
- nous ne traiterons pas ici la donnée "catégorie", qui sera traitée dans l'article suivant (cas d'une relation Many2One)
Installation
- installer une librairie pour GTK
sudo apt-get install libwebkitgtk-1.0.0
- télécharger PDI 5.4 à partir de http://sourceforge.net/projects/pentaho/files/Data%20Integration
- dézipper le fichier pdi-ce-5.4.0.1-130.zip sous /home/pdi
Utilisation de PDI
- lancer l'outil "spoon"
cd pdi/pentaho-data-integration
./spoon.sh
- La fenêtre suivante s'affiche
- Créer une nouvelle transformation
- Aller dans "connexions" pour créer une connexion de type "OpenERP" avec notre instance Odoo
- Cliquer sur le bouton "Tester" pour vérifier que la connexion est opérationnelle
- Nous allons ensuite créer 2 étapes : lecture du fichier csv et écriture dans Odoo
- Pour créer la 1ère étape, aller dans l'onglet "palette de création", ouvrir le répertoire "Extraction" et faire glisser le choix "Extraction depuis un fichier CSV" dans la partie droite de l'écran
- Double click sur l'icone "Extraction depuis fichier CSV", saisir le nom du fichier puis cliquer sur le bouton "récupérer champs"
- Modifier le type des données "prix vente" et "prix revient" de String à Number
- Pour créer la 2ème étape, aller dans l'onglet "palette de création", ouvrir le répertoire "OpenERP" et faire glisser le choix "OpenERP Object Output" dans la partie droite de l'écran
- Double click sur l'icone "OpenERP Object Output", saisir le nom de la connexion et le nom du modèle (en l'occurence product.product)
- Créer un lien dans le sens "Extraction depuis fichier CSV" vers "OpenERP Object Output"
- Double click à nouveau sur l'icone "OpenERP Object Output", cliquer sur le bouton "get fields"
... puis sur le bouton "Do Mappings"
- Réaliser le mapping suivant puis cliquer sur le bouton "ok"
(rappelons que nous ne traitons pas ici la donnée "catégorie")
- Nous avons alors la situation suivante
- Exécuter la transformation
- Le résultat suivant s'affiche
... et les articles sont bien créés dans Odoo