2012-02-23 3 views
2

можно легко установить новые модули OpenERP v6.1 с использованием XML-RPC из сценария Python:OpenERP: отвечать на конфигурацию модуля с помощью RPC XML-

response = sock.execute(db, uid, pwd, 'ir.module.module', 'button_immediate_install', module_ids) 

иногда реакция является просто False (. Например edi модуль) , иногда это всего лишь указание обновить веб-клиент (например, модуль product). Это легко, мне нечего делать.

Но иногда вновь установленный модуль запрашивает у клиента некоторой конфигурации (например. В sales модуля или один из его зависимостей с просьбой выбрать План счетов шаблона для импорта). Когда это происходит, ответ представляет собой большой словарь, и я могу догадаться о значениях, которые он задает мне, и о множественных вариантах этих значений, но как я могу ответить через XML-RPC?

ответ

2

В случае, если кто-либо еще это обнаружит, мне потребовалось много времени, чтобы решить, как успешно установить модули через XML-RPC.

Вот что я закончил с:

# A list of module ids to install: 
module_ids = (
    59, #account_accountant 
    104, # account_asset 
    7, # account_voucher 
    47, # crm 
    23, # crm_todo 
    119, # hr 
    115, # hr_timesheet_sheet 
    14, # knowledge 
    191, # purchase 
    175, # stock 
) 

#send request to server 
response = sock.execute(dbname, uid, pwd, 'ir.module.module', 'button_immediate_install', module_ids) 
2

Если вы хотите увидеть подробное содержание запросов RPC и ответов, вы можете запустить сервер в режиме отладки и поставить точку останова в функции dispatch_rpc() в server/openerp/netsvc.py, или вы можете добавить эту строку в файл конфигурации:

log_level = debug_rpc_answer 

После того, как вы установили это, вы можете установить модуль со своим клиентом и посмотреть, какие значения он отправит.

Стоит посмотреть варианты ведения журнала. Вы можете увидеть их все в функции init_logger() в netsvc.py. Есть несколько предустановленных параметров, которые вы можете выбрать с помощью log_level, или вы можете указать свой собственный с log_handler.

Если вы пишете скрипты OpenERP, вы можете найти наш client helper class полезный. Он считывает конфигурационный файл и заботится о подключении и отправке сообщений для вас.

 Смежные вопросы

  • Нет связанных вопросов^_^