我是Odoo的新手,我没有使用该系统的经验,请尝试按照文档操作。
首先,我需要连接外部PHP Web应用程序和我们的Odoo系统。
我认为这是可能的,并且请遵循该文档中的步骤:Odoo Documentation
所以我坚持在这里:
$common = ripcord::client("$url/xmlrpc/2/common");
$common->version();
当我执行那几行代码时,我得到那个错误:
[faultString] => Traceback (most recent call last):
File "/home/odoo/src/odoo/12.0/odoo/addons/base/controllers/rpc.py", line 63, in xmlrpc_2
response = self._xmlrpc(service)
File "/home/odoo/src/odoo/12.0/odoo/addons/base/controllers/rpc.py", line 42, in _xmlrpc
params, method = loads(data)
File "/usr/lib/python3.5/xmlrpc/client.py", line 1000, in loads
p.close()
File "/usr/lib/python3.5/xmlrpc/client.py", line 447, in close
parser.Parse(b"", True) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0
我使用他们推荐的演示URL(https://demo.odoo.com/)。从第一个示例中,我可以成功获取用户名,密码,数据库名称。但是之后我什么也做不了。
更新: 那是我需要测试的PHP类:
require_once(__DIR__ . '/Ripcode/ripcord.php');
class Ripcode
{
private $_url = 'https://demo.odoo.com/';
private $_server = [];
private $_connection = null;
private $_common = null;
public function __construct()
{
$this->_server = \ripcord::client($this->_url . 'start')->start();
$common = \ripcord::client($this->_url . "xmlrpc/2/common");
$common->version();
$models = \ripcord::client($this->_url . "xmlrpc/2/object");
$uid = $common->authenticate(
$this->_server['database'],
$this->_server['user'],
$this->_server['password'],
array()
);
showArray([
'server' => $this->_server,
'uid' => $uid
]);
showArray([
'server' => $this->_server,
'models' => $models,
'uid' => $uid
'common' => $common->version()
]);
}
}
答案 0 :(得分:0)
问题是ripcord。我用本地运行的Odoo v12测试了从https://github.com/poef/ripcord克隆的一个,并从接收请求一直调试到发送响应为止。一切都可以无缝进行,直到被撕破为止。
我可以建议使用另一个XML-RPC客户端吗?