首页 > 其他分享 >odoo server action,最强大的功能,没有之一

odoo server action,最强大的功能,没有之一

时间:2023-08-06 12:33:06浏览次数:38  
标签:object 动作 ir actions server odoo action

原理

ations

OE定义了ir.actions.actions,并从中派生了众多的子类

  • ir.actions.client
  • ir.actions.act_url
  • ir.actions.act_window
  • ir.actions.act_window_close
  • ir.actions.wizard
  • ir.actions.server

用来执行相关的动作

   

Server action

其中有一个子类 ir.actions.server ,可以用来执行服务器端的动作。

可以执行的动作有;

'state': fields.selection([

('client_action','Client Action'),

('dummy','Dummy'),

('loop','Iteration'),

('code','Python Code'),

('trigger','Trigger'),

('email','Email'),

('sms','SMS'),

('object_create','Create Object'),

('object_copy','Copy Object'),

('object_write','Write Object'),

('other','Multi Actions'),

], 'Action Type', required=True, size=32, help="Type of the Action that is to be executed"),

   

   

可以用来干各种事情

   

Automated Action Rules

模块定义了 自动动作规则

-针对什么对象

-条件

-动作 ,即server_action定义的动作

   

何时触发

  • 定时器触发
  • 注入到对象的create/write方法中

   

使用场景

例如,

  • 当有任务指派时,发送通知邮件给被指派的人
  • 定时提醒
  • 接收到邮件时,创建对象实例

   

实际操作

建立server_actions.

菜单 Settings/ Technical/ Actions/ Server Actions

   

create一个新的action

object处选择Task, 即project.task

Action type选择Email

其中可以选的action有很多,如下

   

定制邮件内容

  • 邮件接收人
  • 邮件主旨
  • 邮件内容

   

提示,如果不清楚object的属性,可以点击弹出窗口按键,弹出Task定义窗口

   

   

设置好相关的参数后,保存

至此,server_action设置好了。

   

设置automatic action rule以便可以触发动作。

菜单 Settings/ Technical/ Automated Actions/ Automated Actions

   

create一个automatic action rule.

输入规则名称

选择相应的对象,在此选择task ,即project.task

   

设置conditions

目的,用来过滤哪些对象可以执行服务器动作

说明;

Timer如果不设置,则当crete/update Object时触发服务器动作;否则,按照定时器设定的时间触发,但是会按照trigger date设置的参数筛选相应的对象实例。

   

   

设置actions

点击Add按钮,在弹出窗选择已经创建的server action或者建立新的server action.

   

提示;

可以添加多个动作,动作按sequence顺序执行

   

   

注意;

Fields to change. 是指 change the fields of the object.

Add Followers,是指 为此 instance of object指派 订阅者(但有条件,具体看代码 ;))

   

定时任务

Automatic action rules是由 ir.cron定期执行的,如

   

   

附加说明

   

   

注入到对象创建、修改方法的代码

   

修改create方法

   

修改write方法

   

执行动作时,修改 Fields to change 和Add Follower的相关代码

   

   

   

总结;

   

  • 如果使用filter. 不要给 filter指定 res.user !!! 否则会有权限问题发生!!!

   

  • 如果设置了timer. 则不注入到model,不触发动作

       

   

   

  • 如果设置了timer. 而 时间条件不成熟时,不触发动作

       

 

标签:object,动作,ir,actions,server,odoo,action
From: https://www.cnblogs.com/pythonClub/p/17609285.html

相关文章

  • window-server2012做后台服务随机启动
    环境window-server2012,tomcat8.1,jdk1.8步骤配置tomcat,jdk的路径使用管理员权限进powershell进入tomcat的bin目录下执行.\service.batinstalltomcat81powershell执行服务添加Set-Service-Nametomcat81-StartupTyp5.重启测试,收工......
  • .Net Core ActionFilter
    目录作用实现IActionFilterIAsyncActionFilterActionFilterAttributeDemoCustomAsyncActionFilter.csTestFilterController.cs如何在Actionfilter使用日志Action.csCustomAsyncActionFilter.cs全局注册Program.cs作用在请求AuthorizeFilter->ResourceFilter->ActionFilt......
  • MySQL Server 5.5的安装及遇到问题记录
    一、安装安装没有什么说的,不会看图(版本,我选择自定义——Custom,供参考)                        --------------------------------------------------------------------------二、问题记录:安装后遇到的问题 1.安装mysql......
  • Sql Server 存储过程
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Access文件导入数据--------------------------......
  • vmware workstation pro17 安装 windows server 2022
    本文实验所需环境vmwareworkstationpro17windowserver2022镜像文件:zh-cn_windows_server_2022_updated_april_2023_x64_dvd_644d5669.iso镜像文件下载:NEXT,ITELLYOU一、vmware创建windowserver2022虚拟机安装步骤,打开vmwareworkstationpro17,新建虚拟机,选......
  • SQL SERVER数据库日志清理
    新建查询,选择master数据库USE[master]GOALTERDATABASEblogSETRECOVERYSIMPLEWITHNO_WAIT----blog为需要清除日志的数据库名称GOALTERDATABASEblogSETRECOVERYSIMPLE--简单模式----blog为需要清除日志的数据库名称GOUSEblo......
  • Spring事务 --》@Transactional参数、事务实现方式、隔离级别、传播方式
    实现方式::在spring中有两种事务的实现方式,分别是编程式事务管理和编码式事务管理。编程式事务一般使用的是TransactionTemplate工具类来实现spring中使用的是@Transactional注解,可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有public方法将都具有该类型的......
  • SQL Server实现mysql中的group_concat功能
    mysql中的group_concat函数的功能将groupby产生的同一个分组中的值连接起来,返回一个字符串结果。group_concat函数首先根据groupby指定的列进行分组,将同一组的列显示出来,并且用分隔符分隔。由函数参数(字段名)selectgroup_concat(emp_name)fromemp;语法:group_concat([distin......
  • SQLserver值是否存在另外一个表中
    在SQL中,查询存在一个表而不在另一个表中的数据记录的方法有很多,介绍其中4种:1、方法一(仅适用单个字段):使用notin,比较容易理解,缺点是效率低如:selectA.IDfromAwhereA.IDnotin(selectIDfromB);2、方法二(适用多个字段匹配):使用leftjoin...on...,"B.IDisnull"表......
  • 掌握 SQL Server 中的 IF THEN 逻辑
    在数据库管理领域,牢牢掌握T-SQL控制流语句是一项至关重要的技能。这些语句允许开发人员动态地控制程序执行的流程,使复杂的逻辑实现成为可能。在SQLServer中强大的流控制语句中,IF语句作为基本工具脱颖而出。了解T-SQL流控制语句首先,让我们首先定义本文的主要焦点。我们将深......