Skip to Content
Menu
This question has been flagged
2 Replies
10728 Views

I've created a cron job, but also want to call it manually with a button in a view. I couldn't find out how to do this. Can someone help me out?


<record id="my_cron" model="ir.cron">
<field name="name">My cron</field>
<field name="active" eval="True"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
<field name="model" eval="'my.model'"/>
<field name="function" eval="'my_function'" />
<field name="args" eval="'()'"/>
</record>


<button name="???????" string="Run" type="object"/>
Avatar
Discard
Best Answer

Hi Tom,

Using cron job what is actually doing is , calling  the function we defined in our file .In your case “my_function”.

<field name="function" eval="'my_function'" />

<field name="model" eval="'model.name '" /> : The field model specifies on which model the automated action should be called.

<field name="function" eval="'method_name '" /> : Name of the method to be called when this job is processed

You can see the cron job u created  from settings -> Technical -> Scheduled Actions ->Select your created cron job


So if you want to call it manually from a button click define a button in your XML file.

The code will look like this <button name="my_function" string="Do manually" type="object"/>

To know more about cron job you can also refer our blog on scheduled actions

 https://www.cybrosys.com/blog/automated-action-in-odoo

Regards

Avatar
Discard
Best Answer

Hello Tom Eijkelenkamp, 

You can achieve this using below code

XML:

<button name="run_my_cron" string="Run" type="object"/>

Python:

def run_my_cron:   self.env.ref('module_name.my_cron').method_direct_trigger()

   return True

Thanks

Anisha Bahukhandi

Avatar
Discard
Related Posts Replies Views Activity
1
Oct 23
1450
1
Jan 24
13408
1
Oct 21
4529
1
Mar 20
2707
2
Mar 18
4476