ubuntu-fr

Communauté francophone des utilisateurs de Kubuntu

[[openerp]]

Piste: » openerp


OpenERP

OpenERP est un progiciel de gestion intégrée libre, anciennement appellé "TinyERP".

Les modules fonctionnels sont :

  • CRM & SRM ; gestion de la relation client
  • Comptabilité analytique et financière
  • Gestion des stocks
  • Gestion de production (GPAO)
  • Gestion de projets et des activités de service
  • Norme qualité : ISO 9001 version 2000
  • Gestion des ventes
  • Gestion des achats
  • Marketing
  • Logistique
  • Ressources Humaines

Certains modules sont propres à des besoins spécifiques :

  • Network : Gestion d'un parc informatique
  • Auction : Spécificités pour salles de ventes publiques

Les fonctionnalités techniques :

  • serveur/client, serveur distribué
  • workflows éditables,
  • une base de données orientée objet
  • une interface éditable
  • rapports personnalisables
  • interface XML-RPC.

Site web : http://openerp.com/

Voir aussi : page wikipedia traitant de OpenERP: http://fr.wikipedia.org/wiki/OpenERP

Lien forum : http://forum.ubuntu-fr.org/viewtopic.php?id=201651


Installation

La version stable actuelle est la version 4.2, qui se nomme encore TinyERP, prochaine version stable qui devrait être disponible prochainement sera la version 5.0 nommé OpenERP

L'installation s'éffectue sur une 8.04 Hardy Heron

Commençons par créer un répertoire "oerp", ainsi qu'un répertoire de stockage des archives.

L'installation terminée, il n'y aura ques les archives à conserver.

cd ~
mkdir oerp
mkdir oerp/tar

Téléchargement

Rendez vous à la page téléchargement/

http://openerp.com/downloads.html

Récupérer les sources de la version stable.

Les liens vers les trois fichiers téléchargés sont les suivants et la version 4.2.3.4 de tinyerp client/serveur et 1.0.2 pour etiny:

Executez les commandes ci-dessous dans votre console:

cd ~
cd oerp
cd tar
wget http://openerp.com/download/stable/source/eTiny-1.0.2.tar.gz
wget http://openerp.com/download/stable/source/tinyerp-client-4.2.3.4.tar.gz
wget http://openerp.com/download/stable/source/tinyerp-server-4.2.3.4.tar.gz
cd ..

Installation du serveur

Les archives

Commencer par décompacter l'archive du serveur.

cd ~
cd oerp
tar -zxvf tar/tinyerp-server-4.2.3.4.tar.gz 

vous obtenez un dossier "server".

Les paquets

Ce logiciel a besoin de toute une liste de paquets.

Par prudence, installons les un par un.

Le warning sur python-reportlab ne semble pas poser problème. L'installation est quasi immédiate, sauf python-matplotlib qui télécharge environ 50Mo, et le serveur PostgreSQL 25Mo.

sudo apt-get install python2.4 
sudo apt-get install python-xml 
sudo apt-get install python-libxml2
sudo apt-get install libpg-perl 

sudo apt-get install python-libxslt1 
sudo apt-get install python-psycopg 
sudo apt-get install python-reportlab 
sudo apt-get install python-imaging 
sudo apt-get install python-pyparsing 
sudo apt-get install python-tz
sudo apt-get install graphviz
sudo apt-get install python-matplotlib

sudo apt-get install postgresql-8.2
sudo apt-get install postgresql-client-8.2

Ou en une seule ligne (plus simple pour faire un copier/coller). ou cliquer sur le lien ci dessous. apt:// python2.4 python-xml python-libxml2 python-libxslt1 python-psycopg python-reportlab python-imaging python-pyparsing python-tz python-matplotlib libpg-perl graphviz postgresql-8.2 postgresql-client-8.2

sudo apt-get install python2.4 python-xml python-libxml2 python-libxslt1 python-psycopg python-reportlab python-imaging python-pyparsing python-tz python-matplotlib libpg-perl graphviz postgresql-8.2 postgresql-client-8.2

Le serveur de bases de données PostgreSQL

Vérifions que le serveur tourne et écoute à l'adresse et au port "127.0.0.1:5432":

sudo netstat -anpt | grep "postgres"

Vérifions que nous avons bien accès à la console du serveur sql:

$ sudo su - postgres 
$ psql

Puis quitter avec "\q" comme indiqué.

Création de l'utilisateur et de base de données.

$ createuser -U postgres --createdb --no-adduser -P terp
enter password:  XXXXXXXXXX
repeat password: XXXXXXXXXX
CREATE USER
$ createdb -U postgres -O terp --encoding=UNICODE terp
CREATE DATABASE

Le Serveur OpenErp

Installons le serveur OpenErp à partir des fichiers tar que nous avions désarchivé plus haut.

cd ~
cd oerp/server
python setup.py build
sudo python setup.py install

Exécuté en tant que postgres, le script la première fois qu'il est lancé fait va initialiser quelquechose la base de données (semble-t-il !).

sudo su postgres -c tinyerp-server

Quand il dit "waiting for connection", vous pourriez reprendre la main en faisant Ctrl-Z.

Le processus reste actif. Retenez, ci-dessous, la manière dont on peut le "tuer" car cela peut être utile à un moment ou à un autre mais vous pouvez le laisser tourner.

Pour ce faire, il faut afficher la liste des processus en exécutant:

ps -aux

Et repérer la ligne vers la fin qui contient "/usr/bin/python" et sa précèdente qui contient "su postgres -c". Le nombre dans la deuxième colonne donne le numéro du processus qu'il faut tuer pour arrêter le serveur, par exemple "13881" et "13882".

Si vous avez du mal à voir la fin de ligne vous pouvez élargir la fenêtre de la console.

Il suffit de tuer le premier des deux avec la commande (Vérifier avec "ps -aux" ):

sudo kill -9 13881

A ce niveau, si vous aviez arrêtez le serveur, vous pouvez le relancer par la commande

sudo su postgres -c tinyerp-server

Notez que le serveur OpenErp accepte la connection d'un client (mais comme vous n'avez pas encore installé de client…).

Si vous avez le message "socket.error: (98, 'Address already in use')", c'est qu'un serveur (au moins !) tourne déjà sur la machine. Il faut les repérer et les tuer comme ci-dessus.

Vous pouvez laisser cette console ouverte avec le serveur en attente de connection et en ouvrir une seconde pour la suite des commandes.

Le Client OpenErp

Comme pour le serveur, désarchivons le fichier téléchargé.

cd ~
cd oerp
tar -xvf tar/tinyerp-client-4.2.3.4.tar.gz 

vous obtenez un dossier "client".

Installons les paquets nécessaires, bonne surprise certains ont déjà été installés pour le serveur:

sudo apt-get install python-gtk2 
sudo apt-get install python2.4-glade2 
sudo apt-get install xpdf
sudo apt-get install python-egenix-mxdatetime

Ou en une seule ligne (plus simple pour un copier/copier coller)

sudo apt-get install python-gtk2 python2.4-glade2 xpdf python-egenix-mxdatetime

Installons le client à partir des fichiers extraits:

cd client
sudo python setup.py install

Exécution du client et connection au serveur

Pour lancer le client (pas la peine de chercher un raccourci dans le menu, il n'existe pas):

tinyerp-client

La connection au serveur s'opère automatiquement normalement.

Si ce n'est pas le cas, par le bouton "Changer", modifiez "localhost", par le port "8069" avec le protocole "XML-RPC" et Valider.

Si vous obtenez toujours "Could not connect to server", peut-être que le serveur n'est pas lancé. Dans une autre console, comme plus haut, tapez:

sudo su postgres -c tinyerp-server

Et vous devriez avoir le message "waiting for connection…".

Puis retentez de vous connecter par le bouton "Changer" puis "Valider".

Si vous obtenez "No database found, you must create one" ou que vous ayez un choix de base de données: c'est gagné !

Dans la console du serveur, vous pouvez contempler avec bonheur les réactions du serveur aux sollicitations du client.

Vérifiez que vous pouvez créer une base de données. Avec le client, aller dans "Fichier/Base de données/Nouvelle base de données" et créez une base appelée "Vide", sans les données de démonstration et en français par défaut.

Si vous voulez que le client se connecte à un serveur sur une autre machine, mettez son addresse ip (ex "192.168.0.123"), ou son nom (ex "ks123123.kimsufi.com") à la place de "localhost".

Démarrage automatique du serveur OpenErp

A chaque démarrage de la machine il faut ouvrir une console pour redémarrer le serveur OpenErp (pas drôle !). Il faut donc mettre en place un script de démarrage.

Le script de démarrage (inspiré du paquet deb de tinyerp) a besoin d'un fichier de configuration:

sudo nano /etc/default/tinyerp-server

Dans lequel nous collerons le contenu suivant:

# Specify the user name (Default: terp).
USER="postgres"

Puis il nous reste à créer le script proprement dit:

sudo nano /etc/init.d/tinyerp-server

Nous y collerons ce contenu ci:

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin
#DAEMON=/usr/sbin/tinyerp-server
DAEMON=/usr/bin/tinyerp-server

NAME=tinyerp-server
DESC=tinyerp-server

test -x $DAEMON || exit 0

# Include tinyerp-server defaults
. /etc/default/tinyerp-server

set -e

case "$1" in
	start)
		echo -n "Starting $DESC: "

		start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
			--chuid $USER --background --make-pidfile \
			--exec $DAEMON -- $DAEMON_OPTS

		echo "$NAME."
		;;

	stop)
		echo -n "Stopping $DESC: "

		start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
			--oknodo

		echo "$NAME."
		;;

	restart|force-reload)
		echo -n "Restarting $DESC: "

		start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
			--oknodo

		sleep 1

		start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
			--chuid $USER --background --make-pidfile \
			--exec $DAEMON -- $DAEMON_OPTS

		echo "$NAME."
		;;

	*)
		N=/etc/init.d/$NAME
		echo "Usage: $N {start|stop|restart|force-reload}" >&2
		exit 1
		;;
esac

exit 0

Il faut rendre ce fichier éxécutable:

sudo chmod 755 /etc/init.d/tinyerp-server

Tuez le processus serveur éventuel, et vérifiez que le client ne peut plus se connecter.

Lancer le script:

sudo /etc/init.d/tinyerp-server restart

Et vérifier que le client peut maintenant se connecter.

Il reste à ajouter ce script à la liste de démarrage du système:

sudo update-rc.d tinyerp-server defaults 21

Redémarrons la machine, et si le client peut se connecter: c'est parfait !

eTiny, Serveur de client Web

Il existe également un serveur web nommé eTiny, il est possible d'utiliser conjointement le client lourd ou le client web.

Il faut installer un serveur supplémentaire: eTiny.

D'abord téléchargeons et installons le framework "Turbogears" (la dernière étape est un peu longue).

cd ~
mkdir etiny
cd etiny
wget http://www.turbogears.org/download/tgsetup.py
sudo python2.4 tgsetup.py

Installons les paquets nécessaires par prudence car normalement ils ont déjà été installés par les manips précèdentes.

sudo apt-get install python-matplotlib
sudo apt-get install python-imaging

Utilisons "l'installateur facile" pour installer eTiny:

sudo easy_install-2.4 eTiny

Pour tester nous pouvons lancer le serveur:

start-tinyerp

La commande ne vous rend pas la main car le serveur tourne et attend les connections.

Il reste à tester avec firefox (sur la même machine) en allant à l'adresse: http://localhost:8080

D'un autre poste essayez avec l'adresse ip de votre machine, par exemple: http://192.168.10.123:8080

Comme pour le serveur tinyerp, il vaut mieux que ce serveur démarre automatiquement avec la machine.

Copions le script et le fichier de configuration proposés par eTiny aux bons endroits:

sudo cp /usr/lib/python2.4/site-packages/eTiny-1.0.1.1-py2.4.egg/scripts/etiny-server /etc/init.d
sudo cp /usr/lib/python2.4/site-packages/eTiny-1.0.1.1-py2.4.egg/config/default.cfg /etc/etiny-server.cfg

Modifions le script pour qu'il tourne lors du démarrage de la machine comme si nous l'avions lancé nous même:

sudo nano /etc/init.d/etiny-server

Pour remplacer la ligne USER="terp" par USER="votre_login" (une meilleure méthode serait peut-être de créer un utilisateur "terp", mais celle-ci me convient).

Rendons le script exécutable:

sudo chmod 755 /etc/init.d/etiny-server

Il faut modifier le fichier de configuration:

sudo nano /etc/etiny-server.cfg

dans la partie "access_out", remplacer "server.log" par "/var/log/etiny-server.log".

Il faut enfin initialiser le fichier de log:

sudo touch /var/log/etiny-server.log
sudo chown votre_login /var/log/etiny-server.log

Avec la même technique que pour le serveur OpenErp, arrêtons les éventuels serveurs etiny qui tourneraient encore ("ps -aux" et "sudo kill -9). Cette fois il est nécessaire d'élargir la console pour voir la commande qui a lancé le processus.

Après avoir vérifié que la connection du navigateur à "http://localhost:8080" ne fonctionne plus, lançons le serveur eTiny comme il sera lancé dans le script:

sudo su votre_login -c "/usr/bin/start-tinyerp /etc/etiny-server.cfg"

Vérifions que la connection du navigateur à "http://localhost:8080" fonctionne à nouveau.

Arrêtons le serveur, il y faudra deux "kill", un pour la ligne "sudo…" et l'autre pour "etiny".

Vérifions bien que la connection du navigateur ne fonctionne plus.

Nous pouvons alors tester que le script de démarrage fonctionne:

sudo /etc/init.d/etiny-server start

D'ailleurs la connection du navigateur à "http://localhost:8080" est à nouveau possible !

Il reste à activer le script de démarrage:

sudo update-rc.d  etiny-server defaults 22

Et redémarrer la machine et pour vérifier avec le navigateur web que le serveur eTiny fonctionne bien ….

C'est l'occasion de souffler un peu.

Conclusion

Maintenant vous avez un ensemble tinyerp / openerp techniquement fonctionnel.

Mais celà sert-il à quelque chose ?

Pour l'instant je (adlng84360) n'en suis pas certain…

En pratique, il n'est pas dit qu'une entreprise puisse gagner du temps avec cet ensemble pour trop de raisons:

Il manque des modules, vous ne pouvez pas installer les modules que vous téléchargez (pb version python), ce que vous avez ne correspond pas au livre qui pourtant se réclame de la version 4.2.

Il vous est déconseillé d'utiliser les paquets Ubuntu (dommage ça marche) car la version est trop ancienne. La version "stable" c'est un peu la galère. Peut-être fallait-il esayer la version 4.3 ?

Les solutions qui semblent incontournables seraient donc soit le "Saas" prôné par OpenErp, soit de faire appel à une société de service experte en cette matière. A l'évidence c'est un autre contexte économique…


Tags :


openerp.txt · Dernière modification: 2008/11/22 23:21 par KrysKool
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL