2016-12-30 1 views
1

Я создал автоматическое действие, и он отлично работает, если When to Run установлен в On Creation. Если я изменю его на Based on Timed Condition, он не будет срабатывать.Автоматические действия не работают - odoo 8

Автоматизированное действие enter image description here

Сервер Действие

enter image description here

Запланированное Действие enter image description here

Как я могу это сделать?

+0

вы уверены, что условие для выполнения действия выполняется? – danidee

+0

Значение даты запуска - это сегодняшняя дата. Пример: 30-12-2016 – KbiR

ответ

0

Вы должны сделать это через код python. У вас это было?

У меня есть один пример: для уведомления партнера по электронной почте отправить: через действие:

<record id="action_send_mail_on_partner_creation" model="ir.actions.server"> 
      <field name="name">Partner Creation action</field> 
      <field name="model_id" ref="base.model_res_partner"/> 
      <field name="type">ir.actions.server</field> 
      <field name="state">code</field> 
      <field name="code">self.parnter_create_notification(cr, uid, object, context=context)</field> 
     </record> 

     <record id="rule_sent_mail_partner_creation" model="base.action.rule"> 
      <field name="name">Partner Creation Action Rule</field> 
      <field name="kind">on_create_or_write</field> 
      <field name="model_id" ref="base.model_res_partner"/> 
      <field name="sequence">1</field> 
      <field name="filter_id" ref="filter_customer"/> 
      <field name="active">True</field> 
      <field name="server_action_ids" eval="[(6, 0, [ref('action_send_mail_on_partner_creation')])]"/> 
     </record> 

где метод вы должны определить в PY файл будет:

def parnter_create_notification(self, cr, uid, obj, context=None): 
    if context.get('from_create',False): 
     group_obj = self.pool.get('res.groups') 
     user_obj = self.pool.get('res.users') 
     if obj.customer or obj.supplier: 
      manager_ids = group_obj.search(cr, uid, [('name','=', 'Financial Manager')]) 
      user_ids = group_obj.browse(cr, uid, manager_ids, context=context)[0].users 
      email = [] 
      for id in user_ids: 
       email.append(id.email) 
      email_to = ','.join(str(e) for e in email) 
      tmpl_obj = self.pool.get('email.template') 
      tmpl_ids = tmpl_obj.search(cr, uid, [('name','=','Partner E-mail Template')]) 
      if tmpl_ids: 
       tmpl_obj.write(cr, uid, tmpl_ids[0], {'email_to':email_to}, context=context) 
       self.pool.get('email.template').send_mail(cr, uid, tmpl_ids[0], obj.id) 
    return {} 

В унаследованном классе Реза. партнер.

Вы можете принять этот пример для своей проблемы.

Надеюсь, это вам поможет.

Спасибо, Чандни

Смежные вопросы