Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
6 Trả lời
14849 Lượt xem

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

Ảnh đại diện
Huỷ bỏ
Tác giả

i am using v7

Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

You can also write ids=None and it will work

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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.

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 10 21
1925
8
thg 12 23
25579
3
thg 5 15
7864
2
thg 5 23
3487
0
thg 10 24
6675