2016-09-08 20 views
0

我想執行調度程序,但我需要在執行調度程序時在參數中傳遞用戶標識。odoo8在調度程序中傳遞參數中的userID。

<record forcecreate="True" id="ir_cron_daily_study" model="ir.cron"> 
      <field name="name">Fetch Data</field> 
      <field eval="True" name="active" /> 
      <field name="user_id" ref="base.user_root"/> 
      <field name="interval_number">1</field> 
      <field name="interval_type">minutes</field> 
      <field name="numbercall">-1</field> 
      <field name="doall" eval="False"/> 
      <field name="model" eval="'fetch.data'"/> 
      <field name="function" eval="'fetch_data'"/> 
      <field name="args" eval="()" /> 
     </record> 

我試圖通過ARGS像

<field name="args" eval="({'check': True})" /> 

我得到這個值,但不能傳遞用戶ID。 請幫我在執行ir_cron作業期間傳遞用戶ID。

建議是非常受歡迎的。

+0

如何直接在xml中設置user_id? ' 1' – CZoellner

+0

感謝您的回覆,但我需要用戶的ID,我需要在我的方法中使用。 –

回答

1

ir.cron作業默認情況下以超級用戶的身份運行。檢查openerp/addons/base/ir/ir_cron.py _defaults屬性。

如果你想傳遞的用戶ID,你必須:

<field name="args" eval="(uid,)" />

檢查ir_cron模型的定義,作進一步的解釋。

從我可以看到,雖然,cron作業的方法總是與超級用戶的ID一起運行。

編輯:對上述內容進行修正,@CZoellner提及您可以設置將運行cron作業的用戶。儘管如此,這是一個靜態變量,你無法從我能理解的內容中確定誰將在運行時運行作業。雖然您可以將不同的參數傳遞給cron作業。

感謝您的更正@CZoellner

+0

它給出錯誤,ValidateError 字段'args'失敗約束:無效參數 –

+0

使用配置的'user_id' - > [Odoo Code](https://github.com/)調用作業odoo/odoo/blob/9.0/openerp/addons/base/ir/ir_cron.py#L162),因爲我在第一個問題的評論中寫道。 – CZoellner

+0

@CZoellner你是對的,我編輯了答案。 –