читать данные с несколькими идентификаторами из OpenERP, используя java с apache xml-rpc

Здравствуйте, я сейчас пишу сервлет, используя Apache XML-RPC для подключения к OpenERP. Вокруг нет хороших ресурсов, а примеры Java очень минималистичны и далеки от завершения на сайте OpenERP.

Кто-нибудь знает, где я могу найти API о том, как и что я могу вызывать на стороне OpenERP?

Я был бы очень признателен за это!!!

Кроме того, я специально ищу синтаксис того, как «читать» данные с помощью 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"));
                }       

Как вы можете видеть: он принимает Object[] идентификаторов в качестве входных данных (po_ids)


person mahatmanich    schedule 02.02.2011    source источник


Ответы (1)


Я предполагаю, что вы прочитали описание XML-RPC в книги для разработчиков. . Я думаю, что это просто оболочка для всех методов класса ORM. Это вся документация, которую я видел. Кроме этого, я запускаю OpenERP в режиме отладки и ставлю точку останова в методе LocalService.__call__(), чтобы посмотреть, какие параметры клиент отправляет на сервер. (Это в server/bin/netsvc.py.) Я также видел, как разработчики просто регистрируют каждый запрос, проходящий через этот метод.

Что касается того, как делать вызовы в Java, я не знаком с XmlRpcClient API, но похоже, что он будет принимать массив объектов для списка и, возможно, все, что можно перечислить. Посмотрите, полезно ли описание типов данных, и ознакомьтесь с руководство по отслеживанию слов. Он использует Vector для хранения параметра списка.

person Don Kirkby    schedule 02.02.2011
comment
Привет, Дон, спасибо за понимание, я решил проблему, но другие вещи, которые вы упомянули, безусловно, очень помогают. Я нашел запись на форуме с множеством хороших примеров Java -› openerp.com/forum/topic15581. html - person mahatmanich; 03.02.2011
comment
Я всегда получаю html в ответ. Ты знаешь, что - person tejas; 27.12.2013
comment
Я предлагаю вам задать отдельный вопрос, @tejas, включая код, который вы используете, и ответ, который вы получаете. - person Don Kirkby; 27.12.2013
comment
Я задал вопрос здесь, stackoverflow.com/questions/ 20794411/. @DonKirkby, не могли бы вы разобраться в этом и помочь мне? Я борюсь со днями - person tejas; 28.12.2013
comment
привет @mahatmanich, у тебя есть ссылка на альтернативный форум, которую ты отправил выше? Мне нужно немного взглянуть на это, для OpenErp 6.1. Кажется, Odoo не перенес старый пост на форуме. Спасибо. - person adadion; 27.09.2016