odoo8在参数的调度程序中传递userID。

时间:2016-09-08 09:29:09

标签: openerp odoo-8

我正在尝试执行调度程序,但我需要在执行调度程序时在参数中传递用户ID。

<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 job期间传递用户ID。

欢迎提出建议。

1 个答案:

答案 0 :(得分:1)

默认情况下,ir.cron作业使用超级用户的ID运行。检查openerp/addons/base/ir/ir_cron.py _defaults属性。

如果您想传递用户ID,您必须:

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

检查ir_cron模型的定义,以获得进一步说明。

从我看到的情况来看,cron作业的方法总是以超级用户的id运行。

编辑:对上述内容进行更正,@ CZoellner提到您可以设置将运行cron作业的用户。尽管如此,这是一个静态变量,您无法确定谁将在运行时根据我的理解运行该作业。虽然您可以将不同的参数传递给cron作业。

感谢您更正@CZoellner