Apache XML-RPCを使用してJavaを使用してOpenerPから複数のIDを使用した「読み取り」データ

StackOverflow https://stackoverflow.com/questions/4871984

質問

こんにちは私は現在、使用してサーブレットを書いています Apache XML-RPC OpenerPへの接続。周りに良いリソースはありません。Javaの例は非常にミニマルであり、OpenerPサイトでは完全なものではありません。

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);

アップデート

/* 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"));
                }       

ご覧のとおり、IDSのオブジェクト[]を入力(PO_IDS)を取得します

役に立ちましたか?

解決

私はあなたが読んだと思います XML-RPCの開発者帳の説明. 。私はそれがすべての周りのラッパーだと思います ORMクラスの方法. 。それが私が見たすべてのドキュメントです。それ以外に、私はデバッグモードでOpenerPを実行し、ブレークポイントを置きます LocalService.__call__() クライアントがサーバーに送信しているパラメーターを確認する方法。 (入った server/bin/netsvc.py。)また、開発者はその方法を介して来るすべてのリクエストを記録するだけです。

Javaで電話をかける方法については、私は XmlRpcClient APIですが、リストのオブジェクトの配列、およびおそらく列挙可能なものは何でも受け入れるようです。を確認してください データ型の説明 役立ち、をチェックしてください 単語トラッカーチュートリアル. 。それはaを使用します Vector リストパラメーターを保持します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top