ODOO 9 – appel externe en XML-RPC

Voici un exemple d'appel à ODOO (testé uniquement en v9) en XML-RPC (utilisation de la librairie xmlrpclib) à partir d'un script python s'exécutant localement ou à distance.

A titre d'exemple, nous allons récupérer toutes les factures dans l'état "bouillon" :

#!/usr/bin/python
# -*- coding: utf-8 -*-

import xmlrpclib

class CnxOdoo :
    def __init__(self,srv,db,user,pwd) :
        self.srv=srv
        self.db=db
        common = xmlrpclib.ServerProxy('%s/xmlrpc/2/common' % srv)
        common.version()
        self.user = user
        self.pwd = pwd
        self.uid = common.authenticate(db, user , pwd, {})
        self.api = xmlrpclib.ServerProxy('%s/xmlrpc/2/object' % srv)

if __name__ == '__main__':
    cnx = CnxOdoo('http://votre_url_odoo:8069' , 'votre_bd','votre_user' , 'votre_mot_de_passe')

    list_inv=cnx.api.execute_kw(cnx.db, cnx.uid, cnx.pwd, 'account.invoice', 'search_read',[[('state','=','draft')]],{'fields': []})

    for inv in list_inv :
        print inv['id']
        list_inv_line=cnx.api.execute_kw(cnx.db, cnx.uid, cnx.pwd, 'account.invoice.line', 'search_read',[[('invoice_id','=',inv['id'])]],{'fields': []})
        print list_inv_line

Voici le Lien pour en savoir plus sur les Web API de Odoo v9 .

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *