Archives du mot-clé Migration

Interface Kettle 5.0 – OpenERP 7

Je ne vais finalement pas utiliser la solution TerminatOOOR pour interfacer Kettle (Pentaho Data Integration) à OpenERP.

En effet cette solution nécessite de développer des scripts en Ruby. Venant juste d'apprendre Python, je ne souhaite pas dans l'immédiat, apprendre un autre langage. Je verrai si besoin cette solution, ultérieurement.

Après recherche d'autres solutions s'interfaçant aux API OpenERP, je décide de retenir le plugin "OpenERP" qui va être fourni dans la prochaine version (v5.0) de Kettle.
Pour cela, je me procure cette version en cours de développement .

Le plugin OpenERP contient 3 nouveaux steps (au sens de Kettle) : input , output et delete .

Après avoir lancé l'interface graphique "spoon", nous voyons ces 3 nouveaux steps

L'import, export ou suppression dans OpenERP est alors grandement facilitée ... sachant que l'interface graphique Spoon est assez intuitive.

* Exemple d'import (à partir d'un fichier texte) :

* Exemple d'export (vers un fichier texte) :

Importer dans OpenERP 7 des données externes via un ETL

Nous avons vu précédemment une 1ère méthode pour importer des données d'un système externe vers OpenERP.
Nous allons regarder maintenant une solution de type ETL.

En effet, cette 1ère méthode a l'inconvénient :

  • de nécessiter le développement de scripts (en Python ou autre ) pour la préparation des données à importer (les mettre en format attendu par OpenERP)
  • d'être partiellement manuelle et donc peu industrialisée dans le cas d'import/export régulier (vers un logiciel de comptabilité par exemple)

J'ai retenu dans un 1er temps, le logiciel libre "Pentaho Data Integration" (appelé aussi Kettle) plutôt que Talend pour les raisons suivantes :

  • il existe (au moins) une solution nommée "TerminatOOOR" qui permet à Kettle de s'interfacer aux web services OpenERP (plutôt qu'à la BD) 
  • Pentaho propose d'autres modules intéressants et très répandus (décisionnel et moteur d'impression) complémentaires à OpenERP

Je vais donc passer quelques jours sur ce sujet en partant du wiki Pentaho.

A suivre ...

Test de migration Dolibarr vers OpenERP 7

Trésorier d'une association, j'ai mis en place en 2011, le logiciel Dolibarr pour gérer les adhérents, adhésions, cours, mailing et trésorerie.

J'utiliserai cette gestion d'association comme 1er exemple de déploiement OpenERP.
Pour cela, je pars d'une installation minimale de OpenERP (uniquement modules par défaut installés).

Je vais réaliser un test de migration partielle (données "adhérent") de Dolibarr vers OpenERP.

Ce test comporte 2 phases :

  • installation du module "Gestion d'association" sur OpenERP
  • migration des données "adhérent" de Dolibarr vers OpenERP

La 1ère phase est facilement réalisée en se connectant "administrateur" à l'IHM et choisissant l'installation du module

La 2ème phase va se dérouler en plusieurs étapes :

  • export des adhérents sous Dolibarr dans un fichier csv
  • préparation du fichier csv d'import dans OpenERP
  • import dans OpenERP

La 1ère étape se fait dans l'IHM de dolibarr

La 2ème étape nécessite 3 modifications :

  • remplacement des codes "MR" et "MME" par les codes attendus par OpenERP (Mister, Madam)
  • Concaténation des 2 champs Nom/Prénom en un seul
  • Ajout du code "membre libre" (=1)

Pour cela, j'écris le petit programme python suivant :

import csv
fileInput=open("export_dolibarr.csv","r")
fileOutput=open("import_oerp.csv","w")

fileReader=csv.reader(fileInput)
fileWriter=csv.writer(fileOutput)
for rec in fileReader:
    s=rec[0].replace('MME','Madam')
    s=s.replace('MR','Mister')
    fileWriter.writerow([s,rec[1]+" "+rec[2],rec[3],rec[4],rec[5],rec[6],rec[7],rec[8],"1"])

fileInput.close()
fileOutput.close()

La 3ème étape se fait avec la procédure "import" décrite dans une rubrique précédente.

Voilà c'est terminé, les adhérents ont été créés dans l'objet "Membre" de OpenERP.

Import/Export de données CSV (1ère méthode)

Pour exporter des données en CSV, il suffit de sélectionner les enregistrements (ou tous) puis de choisir "exporter" dans "autres options" :

Pour importer des données au format CSV, il faut 2 conditions qui une fois remplies, permettent l'apparition du bouton "import"  à droite de "créer" :

  • l'écran de saisie d'un objet (client, devis ...) doit être en vue "liste"
  • avoir autorisé l'import CSV par les utilisateurs dans les paramètres généraux

Pour avoir un exemple de fichier d'import, il suffit de produire un fichier d'export !!

En fait, il existe d'autres méthodes (ETL, Python+XML-RPC ...) pour réaliser des export ou import. Nous les découvrirons ultérieurement ...