2012-02-23 54 views
2

我可以很容易地在OpenERP V6.1安裝新的模塊回答模塊配置:OpenERP的:使用XML-RPC從Python腳本經由XML-RPC

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

有時響應只是False(例如edi模塊) ,有時這只是刷新Web客戶端的指示(例如,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 

設置完成後,您可以將模塊安裝到您的客戶端並查看它發送的值。

這是值得看看你的日誌選項。您可以在netsvc.pyinit_logger()函數中看到它們全部。您可以使用log_level來選擇幾種預設選項,或者您可以用log_handler指定您自己的選項。

如果您正在編寫OpenERP腳本,您可能會發現我們的client helper class有用。它讀取配置文件並負責爲您連接和發送消息。