«Читать» данные с несколькими идентификаторами от Openerp с использованием Java с Apache XML-RPC
Вопрос
Привет, я сейчас пишу сервлет, используя Apache XML-RPC подключение к Openerp. Вокруг нет никаких хороших ресурсов, и примеры Java очень минималистичные и далеки от полного на сайте Openerp.
Кто -нибудь подскажет, где я мог бы найти API о том, как и что я могу позвонить на стороне открытия?
Я бы очень признателю это !!!
Еще одним примечанием я специально ищу синтаксис о том, как «читать» данные, используя 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"));
}
Как вы можете видеть: он принимает объект [] идентификаторов в качестве ввода (PO_IDS)
Решение
Я предполагаю, что вы прочитали Разработчик Книга Описание XML-RPC. Анкет Я думаю, что это просто обертка вокруг всего Методы в классе ORM. Анкет Это все документы, которые я видел. Кроме этого, я запускаю Openerp в режиме отладки и помещаю точку перерыва в LocalService.__call__()
Метод, чтобы увидеть, какие параметры клиент отправляет на сервер. (Это в server/bin/netsvc.py
.) Я также видел, как разработчики просто регистрируют каждый запрос, который проходит через этот метод.
Что касается того, как совершать звонки в Java, я не знаком с XmlRpcClient
API, но, похоже, он примет множество объектов для списка, и, вероятно, все, что является перечисленным. Посмотрите, если Описание типов данных полезен и проверьте Учебник по трекеру слова. Анкет Он использует Vector
Чтобы удерживать параметр списка.