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


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

         

    转载注明原作者 /by Jeffery
  • 相关阅读:
    python算法:嵌套数组转变成一维数组
    python算法:约瑟夫问题
    python的加密算法(1):反转加密
    算法:桶排序
    正则表达式学习(3):相关符号解释
    代码这样写更优雅(1)
    正则表达式学习(2)
    神奇的Bank系统之旅哦
    C#之第五单元的项目打印购物单
    C#语言的基础
  • 原文地址:https://www.cnblogs.com/odoouse/p/4690369.html
Copyright © 2020-2023  润新知