我可以使用Python脚本中的XML-RPC在OpenERP v6.1中轻松安装新模块:
response = sock.execute(db, uid, pwd, 'ir.module.module', 'button_immediate_install', module_ids)
有时响应只是False
(例如edi
模块),有时它只是刷新Web客户端的指示(例如product
模块)。这很简单,我无事可做。
但有时新安装的模块会要求客户端进行一些配置(例如sales
模块或其中一个要求选择要导入的会计科目表模板的依赖项。当发生这种情况时,响应是一个很大的字典,我可以猜测它要求我的值以及这些值的多个选择,但我如何通过XML-RPC回复?
答案 0 :(得分:2)
如果要查看RPC请求和响应的详细内容,可以在调试模式下运行服务器并在dispatch_rpc()
中的server/openerp/netsvc.py
函数中添加断点,或者可以添加此line to your configuration file:
log_level = debug_rpc_answer
完成设置之后,您可以随客户端安装模块,并查看它发送的值。
值得查看您的日志记录选项。您可以在init_logger()
的{{1}}函数中查看所有内容。您可以使用netsvc.py
选择多个预设选项,也可以使用log_level
指定自己的预设选项。
如果您正在编写OpenERP脚本,您可能会发现我们的client helper class很有用。它读取配置文件并负责为您连接和发送消息。
答案 1 :(得分: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)