تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
6 الردود
14866 أدوات العرض

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...

الصورة الرمزية
إهمال
الكاتب

i am using v7

أفضل إجابة

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 :)

الصورة الرمزية
إهمال
أفضل إجابة

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

الصورة الرمزية
إهمال
أفضل إجابة

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

الصورة الرمزية
إهمال
أفضل إجابة

You can also write ids=None and it will work

الصورة الرمزية
إهمال
أفضل إجابة

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.

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
0
أكتوبر 21
1936
8
ديسمبر 23
25593
3
مايو 15
7876
2
مايو 23
3509
0
أكتوبر 24
6693