This question has been flagged

Hello everyone,

I wrote a Scheduler actions like below, but not working...

in crm_lead.py

    def compute_lead_type(self, cr, uid, ids, name, args, context=None):
        for record in self.browse(cr, uid, ids, context=context):
            lead_type=record.type
            lead_id=record.id
           
            if lead_type=='lead':           #   Checks the lead ID is converted to opportunity or not
                lead_crm_phonecall_id = self.pool.get('crm.phonecall').search(cr, uid, [('opportunity_id', '=', lead_id)], context=context) #   Checks the lead is scheduled or not
    
                if lead_crm_phonecall_id:   #   Checks the lead ID is available or not in crm.phonecall
                    message_text='This Lead is scheduled'
                else:
                    message_text='This Lead is Not scheduled'
    
                    message = _('Hello this is testing')                
                    self.message_post(cr, uid, [lead_id], message, context=context)
    
        return

in crm_lead_view.xml

        <record forcecreate="True" id="ir_cron_scheduler_checking_lead"
            model="ir.cron">
            <field name="name">Checking status of lead</field>
            <field eval="True" name="active" />
            <field name="interval_number">1</field>
            <field name="interval_type">minutes</field>
            <field name="numbercall">-1</field>
            <field eval="False" name="doall" />
            <field eval="'crm.lead'" name="model" />
            <field eval="'compute_lead_type'" name="function" />
            <field eval="'()'" name="args" />
        </record>

This is not working, please help me,

thanks in advance...

Avatar
Discard
Author

i am using v7

Best Answer

It is not working because you are doing it worng. You do not have value of ids while running cron job so you need to assign it False. Change your method defination like

 

def compute_lead_type(self, cr, uid, ids = False, name, args, context=None):    
         search_ids = self.pool.get('object.name').search(cr, uid, []) 
         for ids in search_ids:     
              #  write your logic here      

return True

        

 

 

and it will start working. sometimes if it doesn't start. go to scheduler menu click on edit button of scheduler and save it again. it will start working :)

Avatar
Discard
Best Answer

I too am having the same problem with scheduled actions not working in version 8, with both time zones set to UTC.

Avatar
Discard
Best Answer

Which version are you using? I am also having difficulty with all scheduled actions in any version after v7.

Avatar
Discard
Best Answer

You can also write ids=None and it will work

Avatar
Discard
Best Answer

I think you need to pass "ids" argument's value from cron record. Because from your code's first line,

for record in self.browse(cr, uid, ids, context=context):

If program doesn't find ids then it will skip that loop. That's why your program doesn't working !

Still let me know anything is still confusing.

Avatar
Discard