2016-10-21 11 views
0

У нас есть экземпляр OpenERP 7, и я работаю с экземпляром Odoo 8. Два экземпляра работают отдельно, но я хочу, чтобы модуль Odoo мог подключаться к определенной таблице/объекту в OpenERP и извлекать данные, когда это необходимо. Это похоже на перенос, но это будет не единственный раз, когда он должен быть выполнен, поэтому он должен быть исполняемым кодом.От Odoo 8, доступ к данным объекта OpenERP в другой базе данных

Возможно ли это? Не могли бы вы дать мне пример кода о решении.

ответ

0

Если вам удобно с sql, вы можете создать соединение с базой данных на отдельном объекте курсора и выполнить запросы. Вы можете использовать библиотеку python psycopg2

Существует несколько клиентских библиотек-клиентов, таких как erppeek, которые могут быть использованы для взаимодействия с odoo через среду python. Так что это может быть идеально. Вы можете создать соединение с другим экземпляром OpenERP, создав клиентский объект erppeek, а затем вы можете запросить db, используя синтаксис, который скорее похож на собственный odoo. Вот пример.

import erppeek 
import logging 

_logger = logging.getLogger(__name__) 

password = "your_password" 
server = "http://localhost:8069" 
user = "your_user" 
db = "your_db" 

Client = erppeek.Client(server,db,user,password) 
if Client: 
    Client.login(user,password) 
    partners = Client.browse([]) 
    for partner in partners: 
     _logger.info("FOUND PARTNER: {}".format(partner.name)) 

Теперь у вас есть доступ к записям и вы можете делать все, что пожелаете, с помощью своего экземпляра odoo.

Существует также xmlrpc, который используется в библиотеке erppeek. Документацию по xmlrpc/jsonrpc можно найти на сайте Odoo.