OpenERP XMLRPC:如何获取属于给定模型的所有id的列表



我知道我必须像这样构建我的xmlrpc查询:

ids = execute(dbname, uid, pwd, model, 'search', args)
fields = ['field_a', 'field_b', 'field_c']
elements = execute(dbname, uid, pwd, model, 'read', ids, fields)

我需要关于构造args参数的帮助,以便从以下模型中获取可用元素的列表:

  • res.usersSettings->Users
  • 资源公司Settings->Companies
  • 资源伙伴Sales->CustomersPurchases->Suppliers
  • 销售订单Sales->Sales Orders
  • 科目发票Accounting->Customer Invoices
  • 采购订单Purchases->QuotationsPurchases->Purchase Orders

更新1

每个模型获取请求都应该返回属于给定公司id的所有id。

args参数可用于传递匹配记录的条件(sql where子句):

args = [('name', '=', 'admin')]
ids = sock.execute(dbname, uid, pwd, 'res.users', 'search', args)

将检索管理用户记录(如果有的话)的id。

CCD_ 12是一个3元组的数组。

此处的文档:https://doc.openerp.com/6.0/developer/6_22_XML-RPC_web_services/

我在OpenERP问答中的回答;A、 以及Martin H.Bramwell。我的如下:

我在互联网上看到很多关于如何在OpenERP7上使用xmlrpc的文章,所有这些文章似乎都是基于OpenERP6中的xmlrpc文档。

虽然不太确定,但我认为v6中的xmlrpc文档对于v7来说大多已经过时了。

对于初学者来说,v7上有新的方法和端点。它们是:

Method read | /web/dataset/search_read
Method authenticate | /web/session/authenticate
Method get_session_info | /web/session/get_session_info
Method destroy | /web/session/destroy

对于像我这样有兴趣实现php应用程序的人,我在github上发现了一个非常方便的库,名为php-oe-json。

以下是一些关于如何使用php-oe-json 从OpenERP7检索数据的示例

$oe = new PhpOeJsonOpenERP('http://localhost:8069', 'database_name'); 
$oe->login('admin', 'pwd');
// Get a list of records from a model.
$products = $oe->read(array(
   'model' => 'product.product',
   'fields' => array('name', 'id'),
   'limit' => 20,
   // XXXvlab: bug of openerp 7.0+ which will default domain to "None" if not set, and
   // override of ``_search`` doesn't support ``None`` value.
   'domain' => array(),
));
echo '<pre>';
print_r($products);
// Get a single record from a model.
$so = $oe->read(array(
   'model' => 'sale.order',
   'fields' => array('name', 'id'),
   'limit' => FALSE,
   'domain' => array(array('company_id', '=', 1), array('name', '=', 'SO002')),
));
print_r($so);

最新更新