Odoo

工作流定义

<?xml version="1.0"?><terp><data><record model="workflow" id=workflow_id><field name="name">workflow.name</field><field name="osv">resource.model</field><field name="on_create">True | False</field></record></data></terp>
  • model:固定取值"workflow"
  • id:任意值,唯一标识本工作流
  • name: 工作流的名称,任意定义
  • osv: 本工作流关联的对象类型,是 OpenERP 模块中定义的某对象名,如采购单对象 (purchase.order)。是本工作流处理的数据对象。
  • on_create:每当系统新产生一个 osv 中定义的对象的实例时候,是否对应的产生一个和该对象实例 关联的工作流实例。默认是 True.

工作流和工作流实例

工作流定义了对某一类型的对象,如采购订单(PO)的处理流程。例如, PO 单的一般处理流程也许是:

  1. 新建 PO,State = draft;
  2. 审批 PO,审批的同时

    1. 系统自动 产生收货单,工仓库收货;

    2. 系统自动产生凭据(Invoice),供财务确认付款;

    3. 系统自动产 生 PDF 的采购订单,并自动 EMail 给该 PO 单对应的供应商。但对于特定的某个 PO 对象,需要一个工作流 实例,以记录本 PO 对象处在流程的哪个阶段,如 PO1 尚在 draft 状态,PO2 已经审批通过。 PO 单的审批,以及对应的 a)、b)、c)的动作,都可以在 OE 的工作流中定义解决,而不需要全编码 在 PO 对象上。即工作流实现了流程处理相关的代码和被处理对象的代码相分离,降低了不同处理代 码的耦合性,增加了系统功能的柔软性。