Odoo(OpenERP)開發實踐:通過XML-RPC介面訪問Odoo資料庫
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資料庫 *
[email protected] 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("****************************"); } }
相關推薦
Odoo(OpenERP)開發實踐:通過XML-RPC介面訪問Odoo資料庫
Odoo(OpenERP)伺服器支援通過XML-RPC介面訪問、操作資料庫,基於此可實現與其他系統的互動與整合。 本文是使用Java通過XMLRPC介面操作Odoo資料庫的簡單示例。本例引用的jar包包括xmlrpc-common-3.1.3.jar, xmlrpc-cli
Odoo(OpenERP)開發實踐:數據模型學習
content 外部 -m 數據庫 頁面 ext 哪些 dsm crud 作者:蘇州-微塵 Odoo中,在Python類裏定義的模型及字段信息,可在系統中直接查看。為用戶開啟技術特性權限後,就可以通過菜單 [設置->技術->數據結構->模型] 進入列表
Android開發實踐:JNI層線程回調Java函數示例
lan 並且 進行 img 工程 stat 責任 3.5 jpg 原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://ticktick.blog.51cto.com/823160/1358558 JNI是Ja
Vue.js 開發實踐:實現精巧的無限加載與分頁功能
cti head 設定 命令 webpack transform style time default https://segmentfault.com/a/1190000005351971#articleHeader9 本篇文章是一篇Vue.js的教程,目標在於用一
運維開發實踐:基於Sentry搭建錯誤日誌監控系統
錯誤日誌監控也可稱為業務邏輯監控, 旨在對業務系統執行過程中產生的錯誤日誌進行收集歸納和監控告警。似乎有那麼點曾相識?沒錯… 就是上一篇文章提到的“APM應用效能監控”。但它又與APM不同,APM系統主要注重應用層的行為分析,收集的更多是運營方向的資料。而sentry所做的是收集應用底層程式碼的崩潰
Android開發實踐:使用Service還是Thread
Service是Android的四大元件之一,被用來執行長時間的後臺任務,同樣,執行緒也可以實現在後臺執行任務,它們的區別在哪呢?何時使用Service何時使用Thread呢?今天我也來說說我的理解和總結。 首先,需要了解Service的幾個特點。 (1) 預設情況
VARCHART XGantt .NET的最佳實踐:通過表互動式交換任務
VARCHART XGantt是一款功能強大的甘特圖控制元件,其模組化的設計讓您可以建立滿足需要的應用程式。XGantt可用於.NET,ActiveX和ASP.NET應用程式,可以快速、簡單地整合到您的應用程式中,幫助您識別效能瓶頸、避免延遲以及高效利用資源,使複雜資料變得更加容易理解。
Vue.js 開發實踐:實現精巧的無限載入與分頁功能
https://segmentfault.com/a/1190000005351971#articleHeader9 需求分析 當一個頁面中資訊量過大時(例如一個新聞列表中有200條新聞需要展示),就會產生問題,例如: 資料量過大,影響載入速度 使用者體驗差,很難定位到之前自己看
Spring使用AspectJ開發AOP:基於XML
基於XML的宣告式 基於 XML 的宣告式是指通過 Spring 配置檔案的方式定義切面、切入點及宣告通知,而所有的切面和通知都必須定義在 <aop:config> 元素中。下面通過案例演示 Spring 中如何使用基於 XML 的宣告式實現 AOP 的開發。 1. 匯入 JAR 包 使用 As
android app通過Geth RPC介面實現遠端呼叫
記錄一下APP怎麼通過以太坊的RPC介面實現遠端呼叫。此過程的環境為Window7和Android studio2.2.3。以web3_clientVersion為例。更多用法參考Geth JSON-RPC和Management APIs。首先啟動geth私有鏈並設定RPC埠
【區塊鏈】Android通過Geth RPC介面實現接入以太坊私有鏈
Android通過Geth RPC介面實現接入以太坊私有鏈 環境:mac os & android studio 一、啟動私有鏈 搭建方法見 here 啟動並設定RPC埠: geth --identity "linoy" --rpc -
ASP.NET Aries 高階開發教程:如何寫WebAPI介面
前提: 最近,有不少同學又問到,Aries裡如何提供WebAPI介面? 針對這個問題,今天給順路寫個教程,其實呢,很簡單的。 方式一:直接用WebService提供介面。 用這種方式,直接新增介面就可以了,Aries只是預設處理了.html字尾的請求。對於WS的asmx字尾是沒有影響的,所以傳統怎麼新
通過JDBC-ODBC橋訪問MySQL資料庫
通過JDBC-ODBC橋的方式訪問資料庫,需要經過多層的呼叫,因此利用JDBC-ODBC橋訪問資料庫的效率比較低。不過在資料沒有提供JDBC驅動而只有ODBC驅動的情況下,也只能利用JDBC-ODBC橋的方式訪問資料庫。本示例通過JDBC-ODBC橋的方式訪問M
用 XML-RPC 開發 Web 服務:XML-RPC 中介軟體
在 Web 服務中使用 XML-RPC 的第 2 部分 流行的 Web 應用程式常常使服務它們的硬體資源不堪重負。通過使用 Web 服務中介軟體,開發人員可以建立一個應用程式體系結構,它分成由中介軟體連線起來的邏輯元件,從而可以更容易地消除效能瓶頸。這一切都是通過簡單地在問題區域新增更好的處理來完成的。
Javascript設計模式與開發實踐詳解(二:策略模式) http://www.jianshu.com/p/ef53781f6ef2
的人 思想 ram gis pan pro msg have 改變 上一章我們介紹了單例模式及JavaScript惰性單例模式應用這一次我主要介紹策略模式策略模式是定義一系列的算法,把它們一個個封裝起來,並且讓他們可以互相替換。比方說在現實中很多時候也有很多途徑到達同一個
Angular開發實踐(四):組件之間的交互
lec previous call 私有 判斷 處理方法 數組 依然 處理 在Angular應用開發中,組件可以說是隨處可見的。本篇文章將介紹幾種常見的組件通訊場景,也就是讓兩個或多個組件之間交互的方法。 根據數據的傳遞方向,分為父組件向子組件傳遞、子組件向父組件傳遞及通過
Angular開發實踐(八): 使用ng-content進行組件內容投射
特性 添加 容器 tor 我們 將在 而是 應用程序 期望 在Angular中,組件屬於特殊的指令,它的特殊之處在於它有自己的模板(html)和樣式(css)。因此使用組件可以使我們的代碼具有強解耦、可復用、易擴展等特性。通常的組件定義如下: demo.component.
android開發筆記:MainActivity.java與activity_main.xml
https://www.jianshu.com/p/f5e56fb2f215 剛開始開發android的時候,新建一個activity總是會新建兩個檔案,我們已預設命名MainActivity.java與activity_main.xml兩個檔案來給大家介紹。 activity
springboot的5種讀取配置方式(5):通過applicationContext.xml讀取
2.通過config讀取指定檔案:可以把同一類的bean進行統一管理,然後通過config指定讀取配置檔案/** * 學生實體類 * Created by ASUS on 2018/5/4 */ public class
Android開發:通過樣式修改SeekBar背景顏色,進度條顏色,滑塊圖片
通過樣式style修改 seekBar 的 背景、進度、遊標等圖片。 佈局檔案: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.and