IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ Odoo / OpenERPConsultez toutes les FAQ

Nombre d'auteurs : 2, nombre de questions : 39, dernière mise à jour : 25 août 2014  Ajouter une question

 

Cette FAQ a été réalisée pour répondre aux questions concernant le progiciel de gestion intégré Odoo (anciennement OpenERP).

SommaireDépannageMessages d'erreurs (6)
précédent sommaire
 

Encore une erreur qu'on rencontre souvent sur le web.
Cela peut survenir au démarrage lorsqu'OpenERP tente de charger les modules et qu'un module est défectueux.

Par exemple, si dans votre module vous avez déclaré dans le fichier __init__.py :

Code python : Sélectionner tout
import  mon_module
Et que vous n'avez pas créé le fichier mon_module.py qui doit se trouver à la racine du module.

Si vous regardez alors le fichier de log* d'OpenERP vous pourrez voir ceci :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
File "/usr/lib/pymodules/python2.7/openerp/modules/module.py", line 133, in load_module 
    mod = imp.load_module('openerp.addons.' + module_part, f, path, descr) 
  File "/opt/openerp/addons/mon_module/__init__.py", line 3, in <module> 
    import mon_module 
RuntimeError: maximum recursion depth exceeded while calling a Python object 
 
 
2013-05-19 23:25:08,735 27185 INFO ? openerp.service.wsgi_server: HTTP service (werkzeug) running on 0.0.0.0:8069 
2013-05-19 23:25:08,735 27185 INFO ? openerp: OpenERP server is running, waiting for connections... 
2013-05-19 23:25:16,743 27185 INFO ? werkzeug: 192.168.0.6 - - [19/May/2013 23:25:16] "GET / HTTP/1.1" 404 - 
2013-05-19 23:25:16,791 27185 INFO ? werkzeug: 192.168.0.6 - - [19/May/2013 23:25:16] "GET /favicon.ico HTTP/1.1" 404 - 
2013-05-19 23:25:16,842 27185 INFO ? werkzeug: 192.168.0.6 - - [19/May/2013 23:25:16] "GET /favicon.ico HTTP/1.1" 404 -
En fait, vous verrez plusieurs fois les quatre premières lignes :
OpenERP fait plusieurs tentatives pour charger le module puis abandonne.

Ensuite on voit bien où il bloque :

Code : Sélectionner tout
1
2
File "/opt/openerp/addons/mon_module/__init__.py", line 3, in <module> 
    import mon_module
Il bloque en fait à import mon_module.
Il ne trouve pas le fichier mon_module.py .

Et OpenERP nous affiche finalement sa page d'erreur.
Mais ça peut être également une erreur dans un module Python ou un widget, un fichier JS, etc.
no handler found est un peu l'erreur 404 d'OpenERP.
Dans tous les cas, l'erreur sera inscrite dans le fichier de log.

Mis à jour le 25 mai 2013 N1bus

Je vous livre cette astuce, car elle vient de me faire perdre une journée et demie. Le temps que j'ai passé pour trouver la panne.

Si quand vous ouvrez OpenERP (WebClient) et que vous voyez une page blanche sans aucun message d'erreur, plongez-vous vite dans le fichier de log du serveur. Vous devriez voir une erreur comme celle ci-dessous :

Code log : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Traceback (most recent call last): 
  File "/opt/openerp/web/addons/web/http.py", line 288, in dispatch 
    r = method(self, **self.params) 
  File "/opt/openerp/web/addons/web/controllers/main.py", line 631, in qweb 
    content, checksum = concat_xml(files) 
  File "/opt/openerp/web/addons/web/controllers/main.py", line 222, in concat_xml 
    xml = ElementTree.parse(fp).getroot() 
  File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 862, in parse 
    tree.parse(source, parser) 
  File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 586, in parse 
    parser.feed(data) 
  File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 1245, in feed 
    self._parser.Parse(data, 0) 
ExpatError: XML or text declaration not at start of entity: line 2, column 0
Vous voyez à la dernière ligne ExpatError: XML or text declaration not at start of entity: line 2, column 0

C'est ici que ça se corse. OpenERP ne peut pas s'afficher, car l'interpréteur XML a tenté de charger un fichier, mais celui-ci ne commence pas par la déclaration attendue :

Code xml : Sélectionner tout
<?xml version="1.0" encoding="UTF-8"?>
Dans mon cas, il s'agissait d'un fichier XML qui commençait par une ligne vide.

Le problème, c'est de trouver quel fichier commence par une ligne vide ou non conforme. Et ce n'est pas une mince affaire : il y a plus de deux mille fichiers XML dans OpenERP!

  • Commencez par sauvegarder tous les modules. C'est long et fastidieux, mais c'est indispensable.
  • Ensuite, supprimez les répertoires des modules un par un, redémarrez le serveur OpenERP à chaque fois et essayez d'afficher la page.
  • Dès qu'OpenERP s'affiche, vous pouvez en déduire que le module que vous venez de supprimer était en cause.

Une fois, le module défectueux détecté, étudiez chaque fichier XML du module pour trouver celui qui n'est pas valide.
Dès que vous l'avez trouvé, corrigez-le et redémarrez le serveur OpenERP pour vérifier que la page s'affiche correctement.
Rechargez ensuite les modules que vous aviez supprimés auparavant et redémarrez à nouveau le serveur OpenERP.

Mis à jour le 31 mai 2013 N1bus

Un message d'erreur que l'on trouve à profusion dans les forums et un peu partout sur le Web, mais malheureusement très peu de réponses probantes.

Lorsque vous tentez de sauvegarder une base de données, on vous demande le mot de passe de l'administrateur (Super Administrateur -> voir ici ) puis vous cliquez sur le bouton Archiver.

Immanquablement un message d'erreur apparaît "AccessDenied".

Je le confirme, ce message apparaît si vous utilisez Internet Explorer (testé avec la version 10.0.9200.16576) et probablement d'autres versions plus anciennes.

En revanche, la sauvegarde fonctionne si vous utilisez Firefox (testé avec la version 20.0.1) ou Chrome (testé avec la Version 26.0.1410.64 m).

Donc, pensez à mettre à jour votre navigateur Web.

Dans le pire des cas, vous pouvez faire ces opérations de maintenance sur vos bases de données en utilisant un outil d'administration de bases de données PostgreSQL tel que PGadmin (Open Source) téléchargeable sur le site : http://www.pgadmin.org/
.

Mis à jour le 25 mai 2013 N1bus

Ce message d'erreur apparaît lorsque vous créez un utilisateur et que vous lui assignez une société qui ne lui a pas été autorisée.

Cela se produit lorsque vous avez créé une nouvelle société, et que vous créez ensuite un nouvel utilisateur.
Dans ce cas, la société attribuée à l'utilisateur est la société par défaut d'OpenERP "Your Company".

Vous modifiez alors le champ Société dans le formulaire d'édition, sous le champ Connexion, de l'utilisateur pour lui assigner la société que vous aviez créée auparavant, mais quand vous cliquez sur le bouton Enregistrer, l'erreur ci-dessous apparaît:

ValidateError

Une erreur est apparue lors de la validation du/des champ(s) company_id,company_ids:

La société choisie n'est pas autorisée pour cet utilisateur.
Pour pouvoir valider le formulaire, il faut que la société que vous avez sélectionnée soit autorisée pour cet utilisateur.
Pour cela, suivez les étapes ci-dessous:

Autoriser la société pour un utilisateur
  • Allez dans Configuration puis Gestion utilisateurs.
  • Cliquez sur le nom de l'utilisateur à modifier.
  • Cliquez sur le bouton Modifier.
  • Cliquez sur l'onglet Droits d'accès.
  • Dans la rubrique Sociétés autorisées, sélectionnez la société désirée.
  • Sélectionnez alors la société dans le champ Société en haut du formulaire, sous le champ Connexion.
  • Cliquez sur le bouton Enregistrer.

L'utilisateur est maintenant autorisé pour la société que vous aviez créée auparavant.

Un utilisateur peut avoir plusieurs sociétés autorisées. Dans ce cas, vous devez cocher la case Multi-Société dans la rubrique Accessibilité du formulaire d'édition de l'utilisateur.

Mis à jour le 2 juin 2013 N1bus

C'est un message d'erreur que vous pourrez rencontrer lorsque vous coderez votre module en Python.

Ce message peut apparaître à la suite de nombreuses erreurs... mais le moins que l'on puisse dire, c'est qu'il n'est pas vraiment explicite.

Code python : Sélectionner tout
user_ids = self.pool.get('res.user').search(cr, uid, [('id', '=', 1)], offset=0, limit=None, order=None, context=None,  count=False)
Ici, c'est facile, la table res.user n'existe pas dans OpenERP. Le nom de la table est res.users.

Code python : Sélectionner tout
user_ids = self.pool.get('res.users').search(cr, uid, [('id', '=', 1)], offset=0, limit=None, order=None, context=None,  count=False)
Attention, ce n'est pas toujours si simple, il faudra parfois une bonne dose de ténacité pour trouver l'erreur dans votre code.

Mis à jour le 10 juillet 2013 N1bus

Un message d'erreur qui peut arriver lorsque vous créez un module et que vous faites appel à un autre module alors que vous ne l'aviez pas déclaré aparavant.

Par exemple:
Nous créons un module qui doit hériter du module product comme ceci.

Code python : Sélectionner tout
1
2
3
4
5
6
7
8
9
class my_product(osv.osv): 
    _name = 'product.product' 
    _inherit = 'product.product' 
  
	# 
    # mon code ici 
    # 
  
my_product()
Mais dans ce cas, nous devons le déclarer dans le tableau depends[] du fichier __openerp__.py comme ci-dessous :

Code python : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# -*- coding: utf-8 -*- 
{ 
    'name': 'My Beautiful Module', 
    'version': '1.0.0', 
    'category': 'Products', 
    'sequence': 15, 
    'author': 'My Pomme', 
    'summary': 'My Module', 
    'description': 'Description', 
  
    # Ici ! 
    'depends': ["product"],    
  
    'data': [ 
        'my_view.xml', 
    ], 
    'js': [], 
    'css': [], 
    'qweb': [], 
    'installable': True, 
    'application': False, 
    'auto_install': False, 
}
Auquel cas, le message d'erreur apparaîtra.

Mis à jour le 11 juillet 2013 N1bus

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.