了解自动操作

自动操作用于触发操作。它们基于条件,并且发生在 Odoo 的默认业务逻辑上。
自动操作的示例包括:在报价确认后创建下一个活动;如果用户的总数高于一定金额,则将其添加为已确认发票的追随者;或在未填写字段时阻止潜在顾客更改阶段。
Flowchart to exemplify an automated action rule for Odoo Studio
让我们了解如何正确定义*when* 自动操作运行和*how* 创建一个:
第一步是选择:doc:Model <understanding_general> 应用操作。
**Trigger**字段定义导致自动操作发生的事件:
  • On Creation: 创建新记录时。请注意,记录是首次保存一次时创建的。

  • On Update:更新记录时。请注意,更新在保存记录后发生。

  • On Creation & Update:在创建和/或更新记录后,窗体保存。

  • On Deletion:在设置的条件下删除记录。

  • Based on Form Modification:当指定 Trigger 字段的值在界面中更改时(用户在保存记录之前看到更改)。请注意,此操作只能与 Execute Python Code 操作类型一起使用。

  • Based on Timed Condition:特定日期/时间之后发生延迟。如果需要在*Delay after trigger date* 触发日期后设置 Trigger Date。示例:在会议前 15 分钟发送提醒。如果未在所选模型的形式上设置日期/时间,则所考虑的日期/时间是创建/更新记录的日期/时间。

对于每个触发器选项,**conditions**可以应用,例如:

  • Before Update Domain:如果指定,在更新记录之前必须满足此条件。

  • Apply on:如果指定,在执行操作规则 (Action To Do)之前和更新之后,必须满足此条件。

Active 选项将在应隐藏且不执行规则时关闭。
**Action To Do**下,选择记录满足 Trigger 条件后必须执行的服务器操作类型:
  • Execute Python Code:执行代码块。可用 Help 选项卡,包含可以使用的变量。

  • Create New Record:将创建具有新值的新记录。

  • Update a Record:更新触发操作的记录。

  • Execute several actions:定义触发其他服务器操作的操作。

  • 发送电子邮件:自动发送:文档:email </applications/general/email_communication/email_template>

  • Add Followers: followers are notified of changes in the task.

  • Create Next Activity: 创建活动,例如:Call, Email, Reminder.

  • 发送SMS短信:发送:doc:SMS </applications/marketing/sms_marketing/pricing/pricing_and_faq>

例子

这是潜在顾客/商机模型 Model*上的*Email 字段的更新过程,将*Trigger Condition* 设置为 On Update,将经历:

View of an automated action being created in Odoo Studio
  1. 用户创建记录时没有设置电子邮件地址。

  2. 用户更新定义电子邮件地址的记录。

  3. 保存更改后,自动化将检查是否更新了任何 Watched Fields (例如:字段名称 email_from (Email)。

  4. 如果为 true,它将检查记录是否与 Before Update Domain 匹配(例如: email is not set)。

  5. 如果为 true,它将检查 (after the update)记录是否与*Apply on*域匹配(例如: email is set)。

  6. 如果为 true,则对记录执行所选的 Action To Do