Odoo(OpenERP)开发实践:通过XML-RPC接口访问Odoo数据库
来源:互联网 发布:达索 软件 编辑:程序博客网 时间:2024/05/16 14:36
Odoo(OpenERP)服务器支持通过XML-RPC接口访问、操作数据库,基于此可实现与其他系统的交互与集成。
本文是使用Java通过XMLRPC接口操作Odoo数据库的简单示例。本例引用的jar包包括xmlrpc-common-3.1.3.jar, xmlrpc-client-3.1.3.jar和ws-commons-util-1.0.2.jar,如需要,可点击这里下载。
package memo.by.weichen;import java.net.URL;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.xmlrpc.client.XmlRpcClient;import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;/** * * 通过XML-RPC接口访问Odoo数据库 * Test@Odoo 8.0 * by WeiChen * */public class OdooWSDemo {public static final String URL = "http://127.0.0.1:8069";public static final String DB = "demo";public static final int USERID = 1;public static final String PASS = "demo";public static void main(String[] args) throws Exception{XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();XmlRpcClient client = new XmlRpcClient();config.setServerURL(new URL(String.format("%s/xmlrpc/2/object", URL)));client.setConfig(config);// 新建客户Integer id = (Integer) client.execute("execute_kw", Arrays.asList(DB, USERID, PASS, "res.partner", "create",Arrays.asList(new HashMap() {{put("name", "苏州园区永旺梦乐城");put("customer", Boolean.TRUE);}})));// 更新客户client.execute("execute_kw", Arrays.asList(DB, USERID, PASS, "res.partner", "write", Arrays.asList( Arrays.asList(id), new HashMap() {{ put("name", "永旺梦乐城苏州园区店"); }} )));// 查找客户List<Object> partners = Arrays.asList((Object[])client.execute("execute_kw", Arrays.asList(DB, USERID, PASS, "res.partner", "name_get", Arrays.asList(Arrays.asList(id)))));if(partners!=null&&partners.size()>0){// partners格式: [[id, name]]Object[] partner = (Object[])partners.get(0);if(partner.length==2)System.out.println("客户名: "+partner[1]);}// 删除客户client.execute("execute_kw", Arrays.asList(DB, USERID, PASS, "res.partner", "unlink", Arrays.asList(Arrays.asList(id))));// 客户列表List<Object> customers = Arrays.asList((Object[]) client.execute("execute_kw", Arrays.asList(DB, USERID, PASS, "res.partner", "search_read",Arrays.asList(Arrays.asList(// 设置查询条件// Arrays.asList("is_company", "=", true),Arrays.asList("customer", "=", true))),new HashMap() {{// 查询name字段, 限定最多返回100条记录put("fields", Arrays.asList("name"));put("limit", 100);}})));System.out.println("**********客户列表**********");for (int i=0;i<customers.size();i++){Map customer = (Map)customers.get(i);String name = (String)customer.get("name");System.out.println(name);}System.out.println("****************************");}}参考资料:
[1] https://www.odoo.com/documentation/8.0/api_integration.html
0 0
- Odoo(OpenERP)开发实践:通过XML-RPC接口访问Odoo数据库
- Odoo(OpenERP)应用实践: 使用db-filter参数实现通过域名指定访问哪个数据库
- ]Odoo(OpenERP)应用实践: 使用db-filter参数实现通过域名指定访问哪个数据库
- Odoo(OpenERP)应用实践: 使用db-filter参数实现通过域名指定访问哪个数据库
- Odoo(OpenERP)开发实践:菜单隐藏(1)
- Odoo(OpenERP)开发实践:菜单隐藏(2)
- Odoo(OpenERP)开发实践:数据模型学习
- Odoo(OpenERP)开发实践:基本字段类型
- 【Odoo】XML_RPC访问Odoo数据库
- Openerp命令行接口:odoo.py
- Odoo(OpenERP)应用实践:代发货管理
- openerp odoo 直接操作数据库的示例
- Odoo(OpenERP) Session有效期
- odoo(Openerp v8)数据模型
- Odoo(OpenERP)实施方法论
- Odoo(OpenERP)学习资源
- Odoo(OpenERP)学习资源
- Odoo(OpenERP)开发实践:在QWeb报表中自定义页眉页脚
- 线程随笔
- Node.js自动化测试及大规模性能测试技术实现(Java&Node.JS)
- 风云
- OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
- nefu1010裸的欧拉函数
- Odoo(OpenERP)开发实践:通过XML-RPC接口访问Odoo数据库
- Revision to QSharedMemory usage
- Mac OS X 下 su 命令提示 sorry 的解决方法
- 黑马程序员------OC Foundation框架
- 人员分派问题
- Cocoapods Podfile配置
- 自定义ArrayAdapter
- PHP小例子
- 黑马程序员----java基础HashSet和TreeSet总结