Odoo: Как найти версию Odoo через XML-RPC API? - PullRequest
1 голос
/ 23 сентября 2019

Я пишу библиотеку PHP для доступа к API Odoo XML-RPC, и мне нужно знать версию сервера Odoo, с которой я разговариваю, - но я не могу понять, как определить версию.Есть какая-нибудь модель, которая скажет мне или как мне это сделать?

ОБНОВЛЕНИЕ

Я думал, что понял это.Модель ir.module.module предоставит вам список всех установленных модулей.Затем в модуле base вы смотрите на свойство installed_version. НО для этого требуется доступ администратора!Я должен сделать это как обычный пользователь, который обычно использует API.

Но для любого, у кого есть такой доступ, это то, что вы бы сделали.Используя ripcord (см. Пример здесь ), вы можете использовать эту строку для извлечения только модуля base:

$models->execute_kw($db, $username, $password, 'ir.module.module', 'search_read', array(array(array('name', '=', 'base'))) );

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Следующий код действителен и отлично работает, проверен на нескольких серверах.

$url = 'https://###.###.###.##:8069'; 
$db = 'demo'; 
$username = 'user_name'; 
$password = 'password';
$common = ripcord::client("$url/xmlrpc/2/common"); 
$models = ripcord::client("$url/xmlrpc/2/object"); 
$common->version(); 
$uid = $common->authenticate($db, $username, $password, array());

В этих примерах используется библиотека Ripcord , которая предоставляет простой API-интерфейс XML-RPC.Ripcord требует, чтобы в вашей установке PHP была включена поддержка XML-RPC.

Поскольку вызовы выполняются по HTTPS, также необходимо включить расширение OpenSSL.

0 голосов
/ 23 сентября 2019

Вы можете получить версию Odoo даже без аутентификации из общей конечной точки API.См. Документацию по https://www.odoo.com/documentation/12.0/webservices/odoo.html, заголовок «Вход в систему» ​​и первый пример кода.Вы можете найти свойство server_version там.

$common = ripcord::client($url.'/xmlrpc/2/common');
$common->version();
...