2011-02-02 4 views
1

現在、OpenERPに接続するApache XML-RPCを使用してサーブレットを作成しています。周囲に良いリソースはなく、Javaの例は非常に最小限であり、OpenERPサイトでは完全ではありません。"read" OpenERPの複数のIDを持つデータをApacheのxml-rpcでjavaを使用してデータ

私はOpenERP側でどのように呼び出せるかについてAPIを見つけることができますか?

私は本当にそれを感謝します!

私は特に、複数のIDを入力してjavaを使用してデータを読み込む方法に関する構文を探しています。

XmlRpcClient client = new XmlRpcClient(); 
XmlRpcClientConfigImpl clientConfig = new XmlRpcClientConfigImpl(); 
clientConfig.setEnabledForExtensions(true); 
clientConfig.setServerURL(new URL(urlStringObject)); 
client.setConfig(clientConfig); 

Object[] params2 = { "city", "name", "email", "create_date","write_date" }; 

Vector<Object> arg = new Vector<Object>(); 

arg.add(database); 
arg.add(1); 
arg.add(password); 
arg.add("res.partner.address"); 
arg.add("read"); 
arg.add(9); // <- THE PYTHON SYNTAX SAYS input 'LIST OF IDS' here What is the Jave equivalent??? 
arg.add(params2); 

HashMap ids = (HashMap) client.execute("execute", arg); 

UPDATE

/* Search for all ids */ 
       xmlrpcConfigLogin.setServerURL(new URL(urlStringObject)); 
       Object[] searchQuery = new Object[] {"id", "!=", -1 }; 

       Vector queryVector = new Vector(); 
       queryVector.addElement(searchQuery); 

       Object[] params = new Object[] { database, theloginId , password, tableName, "search", queryVector }; 
       Object[] po_ids = (Object[]) xmlrpcLogin.execute("execute", params);     

       /* Send Read Query */ 
       Object[] readQuery = {"name"};  

       Vector<Object> arg = new Vector<Object>();  
       arg.add(database); 
       arg.add(1); 
       arg.add(password); 
       arg.add(tableName); 
       arg.add("read"); 
       arg.add(po_ids); 
       arg.add(readQuery);   

       HashMap globalMap = new HashMap(); 

       Object[] hm = (Object[]) xmlrpcLogin.execute("execute", arg);         
       for (Object object : hm) { 
        HashMap hash = (HashMap)object;        
        globalMap.put("name", hash.get("name"));    
        _log.info(hash.get("name")); 
       }  

あなたが見ることができるように:それは、入力(po_ids)として、[] idのオブジェクトを取る

答えて

1

私はあなたがdeveloper book description of XML-RPCて読んだと仮定します。私はそれがちょうどmethods in the ORM classのまわりのラッパーだと思う。それは私が見たすべてのドキュメントです。それ以外に、OpenERPをデバッグモードで実行し、LocalService.__call__()メソッドにブレークポイントを設定して、クライアントがサーバに送信するパラメータを確認します。 (それはserver/bin/netsvc.pyです。)私はまた、開発者がそのメソッドを介して来るすべての要求を記録するのを見たことがあります。

Javaで呼び出しを行う方法については、私はXmlRpcClient APIについてよく慣れていませんが、リストのオブジェクトの配列を受け入れるように見えます。 description of data typesが役立つかどうかを確認し、word tracker tutorialをチェックしてください。リストパラメータを保持するには、Vectorを使用します。

+0

こんにちは、洞察のおかげで、私は問題を解決しましたが、あなたが言及している他のものは確かに多くの助けになります。私は良いJavaの例がたくさんあるフォーラムのエントリを見つけました - > http://www.openerp.com/forum/topic15581.html – mahatmanich

+0

私は常に応答のhtmlを取得します。あなたはyを知っていますか? – tejas

+0

あなたが使用しているコードとあなたが得ている応答を含む別の質問@tejasを尋ねることをお勧めします。 –

関連する問題