在Odoo里,如果我们一个模型是继承了odoo的消息(mail.thread)模型,就可以对于这个模型使用Odoo的消息系统。直观来说就是可以在这个模型的对应界面里看到最底下的消息框,以及关注这个纪录的关注者。
这里我们以销售订单(sale.order)为例子,如果我们有这样的业务场景,我们公司有个多个销售团队,每个销售团队有对应的主管人员,那么我们如果做到,自动把管理人员自动添加到销售团队的订单的关注者列表。
我们可以通过子类型(mail.message.subtype)来实现这一需求。
首先子类型是一个消息的分组,我们可以通过在代码里面配置子类型触发的条件,每个关注者可以对应每个具体的单据来勾选他们所关注的子类型,如果该单据有该子类型的消息,odoo会通过内置消息系统/邮件来通知关注了该子类型的关注者。
子类型的配置菜单(设置/技术/邮件/子类型),打开其中一个子类型,例如:模型是crm.team,名字为“销售订单已经确认”的子类型,模型:销售团队(crm.team)表示是这是一个定义在销售团队的子类型,右边的自动订阅下有2个字段:父级、关联字段:
父级:销售订单已经确认 | 关联字段:team_id
这里的父级:“销售团队已经确认”是定义在销售订单上的子类型,关联字段是销售订单里保存销售团队的字段名。这里配置了的作用是:当销售订单创建的时候会通过订单上的销售团队找到关注他们的销售团队所有关注者,添加到当前订单的关注者列表里。
具体实现流程是:系统会监测新建的纪录对应模型所有的子类型“销售订单已经确认”,然后再搜索以该子类型作为父级的子类型:销售团队的“销售订单已经确认”,再通过关联字段“team_id”来确定他们的直接联系,找到对应的销售团队纪录并且把关联该销售团队的关注者添加到销售订单的关注者列表里。
在Odoo的默认子类型里又不少的是已经帮我们配置好自动关注的:
销售团队 -> 线索,项目任务 -> 项目
大家赶快来试试吧:-)