Odoo的市场定位是SME(中小型企业),这个市场的ERP产品,多如牛毛,产品各具特色。不过,Odoo的自动化处理机制,可以睥睨天下,无人能及。包括一些大型国产软件,如用友、金蝶也不具备如此强大的自动化业务处理功能。Odoo的业务自动化机制,可以非常容易地扩充ERP系统功能,非常容易地让业务工作自动化。

 

Odoo自动化动作

如下图,增加一个自动化动作,“自动删除过期的SaaS DB”。系统会按定义好的条件筛选出符合条件的数据记录(业务对象),自动执行定义好的Server Action(服务器端动作)。

  • 相关的文档模型:本自动化处理适用于哪个业务对象
  • 何时运行:什么时候触发本自动化动作,选项有“业务对象创建时候”,“业务对象更新时候”,“业务对象创建或更新时候”,“基于时间条件触发”
  • 筛选:定义一个过滤条件,仅对符合该过滤条件的业务对象执行本自动化动作
  • 触发日期:业务对象上的一个日期型字段
  • 使用日期:触发日期的前/后多少天(或小时、分钟)触发本动作。如果是触发日期前则填写负数。
  • 使用日历:如果是希望定义触发日期前/后多少个工作天,则需要使用该字段。该字段定义工作日历。
  • 最后运行:本动作最近一次运行的时间。
  • 动作:定义要自动执行的Server Action,可以有多个。

需要注意的是,系统的时间条件是,假设 触发日期 + 使用日期 后得到的时间 为DT,本动作最后运行时间 LT,当前时间CT。当满足条件 LT < DT <= CT时候,系统才会促发本动作。如果某次执行失败,下次再执行时候,失败的那条记录,由于不满足条件 LT < DT,系统不会再次执行该对象。

Odoo的自动化机制Server Action详解
Odoo的自动化机制Server Action详解

Odoo服务端动作Server Action

      如下图,增加一个Server Action,“删除过期的SaaS Client DB”。Server Action有多种类型,本例是Python代码。Python代码最为灵活,你可以自己写Python代码,完成任意你希望的业务处理。本例是调用业务对象的删除数据库的方法"delete_database_server()"。

      非常有用的是,你可以将定义好的Server Action添加到对象视图的“更多”按钮下面,从而点击按钮自动执行

Odoo的自动化机制Server Action详解
 

Odoo筛选条件

      如下图,自动化动作中,可以定义需要执行自动化动作的对象过滤条件。过滤条件可以在对象的列表视图中自定义,然后“保存当前过滤器”。需要注意的是,保存时候,一定要勾选“与所有用户共享”。

Odoo的自动化机制Server Action详解
 

Odoo计划任务

      如下图,Odoo有一个计划任务机制,类似于Linux的 crontab,或者Windows的计划任务。计划任务机制中,你可以指定系统每隔多少时间执行指定的对象方法。

      Odoo的自动动作,是通过“Check Action Rules”的计划任务,默认情况是每隔4小时检查一遍“自动动作”,如果你希望更频繁地执行“自动动作”,你可以在此修改。

Odoo的自动化机制Server Action详解