OpenERP工作流浅析

对象和视图修改

1.  添加xml文件引用

在__openerp__.py文件data中添加工作流文件引用。


2.  对象修改

在车辆管理对象中添加state字段,保存车辆审批状态。


可以看出,车辆有草稿,待审批,审批通过和审批拒绝四个状态。

3.  视图修改

在列表中添加atate字段,在表单中增加下述三个按钮。


工作流定义


model:固定取值"workflow"

id:任意值,唯一标识本工作流

name:工作流的名称,任意定义

osv:工作流关联的对象类型,是OpenERP模块中定义的对象名。

on_create:每当系统新产生一个osv 中定义的对象的实例时候,是否对应的产生一个和该对象实例关联的工作流实例。默认是True。

活动


model:固定取值workflow.activity

wkf_id:活动所属的工作流id

name: 活动名称,任意值

kind:活动类型,有Dummy, Function, Subflow,Stop All 四种。Kind表明如果流程到达本节点,系统应执行的动作类别。Function 表示执行action中定义的python代码。通常action中定义一个write方法,修改流程关联的对象的状态。

flow_start:表示流程的开始节点。

flow_stop:表示流程的结束节点。

注:代码只列出草稿活动状态。

迁移


act_from:本迁移的起始节点,引用之前定义的Activity。

act_to:本迁移的结束节点,引用之前定义的Activity。

group_id:权限组,表示只有该权限组可以触发本迁移,提交迁移不涉及权限,审批迁移需要加入权限控制。

signal: 触发本迁移的信号,表示,如果系统收到signal定义的信号,则触发本迁移。用户点击视图中的“name = 本处定义的signal”的button,此时相当于向系统发送迁移信号量。系统会根据视图中的对象id,找到对象关联的workflow,再找到与 button name相同的signal,触发之。

condition:迁移的条件,是一段Python代码,通常是一个函数调用。当系统收到signal中定义的信号时候,检查此处的条件,条件为真则实际触发迁移。

注:代码只列出点击提交按钮迁移。

测试

1.  新建车辆


2.  点击保存


3.  点击toprove按钮,会出现审批按钮,权限控制会在另一篇中介绍。


4.点击同意或拒绝按钮,流程结束。

 

 



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值