OpenERP: настройка автоответчика через XML-RPC - PullRequest
2 голосов
/ 23 февраля 2012

Я могу легко установить новые модули в OpenERP v6.1, используя XML-RPC из скрипта Python:

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

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

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

Ответы [ 2 ]

2 голосов
/ 03 июля 2012

В случае, если кто-то еще обнаружит это, мне понадобилось много времени, чтобы понять, как успешно установить модули через 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 голосов
/ 28 февраля 2012

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

log_level = debug_rpc_answer

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

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

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

...