Jeffery9@gmail.com 出品

@jeffery-陈帆

原理

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. 而
    时间条件不成熟时,不触发动作

     
     

openERP server action,最强大的功能,没有之一的更多相关文章

  1. odoo开发笔记:Server+Action服务器动作自动触发执行

           Odoo的市场定位是SME(中小型企业),这个市场的ERP产品,多如牛毛,产品各具特色.不过,Odoo的自动化处理机制,可以睥睨天下,无人能及.包括一些大型国产软件,如用友.金蝶也不具备 ...

  2. Python和SQL Server 2017的强大功能

    Python和SQL Server 2017的强大功能 摘要: 源:https://www.red-gate.com/simple-talk/sql/sql-development/power-pyt ...

  3. Windows Server 2016-存储新增功能

    本章给大家介绍有关Windows Server 2016 中存储方面的新增功能,具体内容如下: 1.Storage Spaces Direct: 存储空间直通允许通过使用具有本地存储的服务器构建高可用 ...

  4. c#直接调用ssis包实现Sql Server的数据导入功能

    调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...

  5. SQL SERVER 数据库各版本功能对比

    以前写了篇SQL SERVER 2008数据库各版本功能对比,官网提供的那个功能确实很好很强大,后面发现那个链接失效了.今天又遇到要对比SQL Server 2014数据库版本功能需求,搜索找了好久才 ...

  6. win2008下安装SQL SERVER 2005出现IIS功能要求 警告解决方案

    原因: 出现此问题的原因取决于 SQL Server 的不是所有 IIS 7.0 组件都安装在计算机上.下表列出了受影响的组件. 收起该表格展开该表格   组件 文件夹 静态内容 常见的 HTTP 功 ...

  7. SQL Server 2012 各版本功能比较

    有关不同版本的 SQL Server 2012 所支持的功能的详细信息. 功能名称 Enterprise 商业智能 Standard Web Express with Advanced Service ...

  8. 在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能

    在ASP.NET MVC应用程序中,如果使用Server.Transfer()方法希望将请求转发到其它路径或者Http处理程序进行处理,都会引发“为xxx执行子请求时出错”的HttpException ...

  9. WSS存储服务器(Windows Storage Server) 2012新功能解析

    虽然最近一段时间有关微软的新闻大多数集中在Windows 8以及Surface平板设备身上,但数周之前Windows Server 2012新版本中所包含的Windows Storage Server ...

随机推荐

  1. python week08 并发编程之多进程--实践部分

    一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.P ...

  2. SCOI 2010 滑雪

    题目描述 a180285非常喜欢滑雪.他来到一座雪山,这里分布着 MM 条供滑行的轨道和 NN 个轨道之间的交点(同时也是景点),而且每个景点都有一编号 ii ( 1 \le i \le N1≤i≤N ...

  3. Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2)

    A. Splits time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...

  4. hibernate缓存机制【转】

    一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数 ...

  5. JavaScriptCore 简介

    转自http://esoftmobile.com/2013/06/19/integrating-javascript-into-native-applications/ Integrating Jav ...

  6. 【Luogu】P2473奖励关(期望DP)

    题目链接 逆推期望DP.设f[i][j]为1~i-1中吃到的宝物集合为j,在i~k轮能得到的最大期望分数. 如果不吃显然f[i][j]+=f[i+1][j]/n 如果吃就是f[i][j]+=max(f ...

  7. UVa——400Unix ls(字典序文本处理输出iomanip)

    Unix ls Time Limit:                                                        3000MS                    ...

  8. 模拟tap事件和longTap事件

    移动端模拟tap和longTap事件,基本原理就是在touchstart和touchend事件中,计算触摸的位移和时间差,位移在一定范围内(轻微滑动),时间小于150ms为tap事件,时间大于300m ...

  9. babel吐槽

    1. .babelrc文件无法复制 每次复制项目文件,.babelrc文件都会丢失,导致项目的ES6莫名的编译失败,最可能出现的错误就是Unexpected token import错误,import ...

  10. iOS-BMK标注&覆盖物

    在iOS开发中,地图算是一个比较重要的模块.我们常用的地图有高德地图,百度地图,谷歌地图,对于中国而言,苹果公司已经不再使用谷歌地图,官方使用的是高德地图.下面将讲述一下百度地图开发过程中的一些小的知 ...