jth*_*nda 2 python xml openerp
<record id="rule_605" model="ir.actions.server">
<field name="name">Example of action server item</field>
<field name="condition">True</field>
<field name="state">code</field>
<field name="sequence" eval="456"/>
<field name="code">True</field>
<field name="model_id" eval="Selling"/>
</record>
Run Code Online (Sandbox Code Playgroud)
我对我的自定义模块中的上面的代码片段感到困惑.?
做正确的方法是什么?我知道有些字段可能是错的!
如何设置model_id?
服务器操作是Open ERP最强大的功能之一(但我应该说文档很少).我正在尝试在这里解释开放式ERP中的服务器操作.
服务器操作用于在达到工作流的特定阶段时触发要在服务器端执行的一个或多个操作.
例如.
要创建服务器操作,请执行以下操作:管理>>自定义>>操作>>服务器操作.
创作步骤:
第1步:服务器操作的定义
动作名称:名称显而易见
对象:将从中触发服务器操作的对象/模型.例如.销售订单
行动类型:稍后将详细说明每个案件的处理方式.顺序:当Action Type为多个动作时使用,其中一系列动作将按顺序发生.
条件:单行python条件.例如.如果您想在发生超过5000的凭证时发送短信警报.object.amount>5000.如果没有条件,则必须为执行提供True.
操作类型特定选项卡:这里我将详细解释每种操作类型
虚拟:虚拟舞台什么都不做.(天知道为什么它在那里..)
客户端操作:您可以选择要打开的表单,要运行的向导或要启动的报表.从列表中选择报告.
迭代:基于python循环表达式,您可以迭代服务器操作,例如:当库存向内移动发生并且您确认它时,您希望每个行项目都被记录...您可以循环表达式object.move_lines并创建另一个服务器操作,即提到做历史工作.
Python代码:您可以执行多行python代码.返回的值是变量的值action = {}.仅当您想要弹出特定于上下文的特定窗口(窗体)时才有意义.恕我直言,你不需要返回值.注:该代码使用Python的exec函数,它在字典命名空间的变量运行中执行:object,time,cr,uid,ids
触发:可以使用此触发工作流的任何转换.您需要设置的选项是.工作流模型:要在其上触发工作流的目标对象.'触发'字段应具有目标模型记录的ID.例如,如果要触发发票更改,请使用发票ID."触发器名称"是您必须用于启动转换的信号.下拉列表列出了所有可能的触发器.注意:触发器名称列表还显示了其他模型的所有可能转换,因此请确保选择正确的触发器.模型以括号形式给出.
电子邮件:设置电子邮件地址,主题和消息.您需要为此配置Open ERP构建smtpserver.Power Email,Open ERP的通用电子邮件架构可用于发送电子邮件,因为它提供了更多功能和自动电子邮件(不需要处理服务器操作).可从以下网址获取:http://launchpad.net/poweremail,并在http://launchpad.net/poweremail/+download下载
短信:选择手机号码.例如:[[ object.shipping_address.mobile ]]和主题.
创建对象:用于在触发服务器操作时在任何模型中创建新记录.可以使用此实现所讨论的历史记录特征.字段映射用于为记录中的字段赋值
让我们看看这个例子
<record id="ir_actions_server_timsheet_sheet" model="ir.actions.server">
<field name="sequence" eval="5"/>
<field name="state">code</field>
<field name="type">ir.actions.server</field>
<field name="model_id" ref="model_hr_timesheet_current_open"/>
<field name="code">action = pool.get('hr.timesheet.current.open').open_timesheet(cr, uid, None, context)</field>
<field name="condition">True</field>
<field name="name">My Timesheet</field>
</record>
Run Code Online (Sandbox Code Playgroud)
这model_hr_timesheet_current_open是对象的引用,对象是这个动作<field name="model_id" eval="Selling"/>引发的,对于你的情况,model_id不是卖,而是对象引用,这就是这个gos这个fire动作.
| 归档时间: |
|
| 查看次数: |
5999 次 |
| 最近记录: |