码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-30 21:09:26      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

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,最强大的功能,没有之一

标签:

原文地址:http://www.cnblogs.com/odoouse/p/4690369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!