Workflow求助
-
跪求大神们指点,新建了一个workflow,流程本身很复杂,下面代码只是截取了两个节点。
点击“按钮”(name="btquote_procompany")后,无法实现其对应节点(id="xsq_mktapproving")中py方法(action_market_approving())中语句(作用是变更状态、更新改变人和改变时间)。相关代码如下:
xsalequote_workflow.xml文件
<?xml version="1.0"?>
<openerp>
<data>
<!--定义工作流workflow:销售报价审批 工作流-->
<record model="workflow" id="xsale_quote_workflow">
<field name="name">销售报价审批</field>
<field name="osv">xsale.quote</field>
<field name="on_create">True</field>
</record>
<!--工作流分三个流程:1.项目公司项目管理员/市场部/项目公司总经理/供应链管理部;2.项目公司项目管理员/市场部/项目公司总经理/供应链管理部/公司分管报价副总/供应链管理部;
3.项目公司项目管理员/市场部/项目公司总经理/供应链管理部/公司分管报价副总/供应链管理部/公司总经理/供应链管理部;-->
<!--定义工作流中节点:workflow.activity-->
<!--定义工作流开始节点:草稿编辑节点,项目公司项目管理员发起流程-->
<record model="workflow.activity" id="xsq_draft">
<field name="wkf_id" ref="xsale_quote_workflow"/>
<field name="name">act_draft</field>
<field name="kind">function</field>
<field name="action">action_draft()</field>
<field name="flow_start" eval="True"/>
</record>
<!--定义工作流中间节点:市场部审批节点,市场部项目管理员审批-->
<record model="workflow.activity" id="xsq_mktapproving">
<field name="wkf_id" ref="xsale_quote_workflow"/>
<field name="name">act_market_approving</field>
<field name="kind">function</field>
<field name="flow_stop" eval="True"/>
<field name="action">action_market_approving()</field>
</record>
<!--定义工作流中的迁移:workflow.transition-->
<!--项目公司项目管理员迁移到市场部项目管理员-->
<record model="workflow.transition" id="procompany_market">
<field name="act_from" ref="xsq_draft"/>
<field name="act_to" ref="xsq_mktapproving"/>
<field name="condition">True</field>
<field name="signal">btquote_procompany</field>
<field name="group_id" ref="group_deptopp_operator"/>
</record>
</data>
</openerp>
py中方法定义:
#项目管理员提交按钮,更新审核人、审核日期及审批状态
def action_market_approving(self, cr, uid, ids, context=None):
self.write(cr, uid, ids,{'x_appdate':datetime.now()}, context=None),
self.write(cr, uid, ids,{'x_appusr':uid}, context=None),
self.write(cr, uid, ids,{'x_state':'Market_Approving'}, context=None),
xsalequote_view.xml中按钮视图:
<button name="btquote_procompany" string="提交1" icon="STOCK_SAVE" type="workflow" attrs="{'invisible':[('x_state','!=','Draft')]}"></button>