我在 Odoo 15 中运行调度程序时遇到问题。
我有一个像这样的Python函数,用于发送消息到聊天:
def action_send_notification(self):
today_date = datetime.today()
for i in self:
if i.search([('date_end','<',today_date)]):
message = "STR has been expired"
recipient1 = i.employee_id.user_id.partner_id.id
recipient2 = i.env['res.users'].sudo().search([('name', 'ilike', 'admin')])
channel = i.env['mail.channel'].channel_get([recipient1])
channel_id = i.env['mail.channel'].browse(channel["id"])
channel_id.message_post(
body=message,
message_type='comment',
subtype_xmlid='mail.mt_comment',)
对于 cron XML,这里是:
<record id="STR_notif_expiration_scheduler" model="ir.cron">
<field name="name">STR Notif Expiration</field>
<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">0</field>
<field name="model_id" ref="model_hr_str"/>
<field name="code">model.action_send_notification()</field>
<field name="priority">5</field>
</record>
当我通过单击“手动运行”来运行时,它不起作用。
它也不会自动运行。
但是当我尝试通过自定义按钮运行 python 函数时,它正在工作。
我的期望是调度程序可以通过手动运行甚至自动运行。
尝试在方法上使用@api.model装饰器。还要添加“代码”。应该有效