Odoo

活动定义


<record model="workflow.activity" id="activity_id">
<field name="wkf_id" ref="workflow_id"/>
<field name="name">activity.name</field>
<field name="kind">dummy | function | subflow | stopall</field>
<field name="subflow_id">subflow_id</field>
<field name="action">(...)</field>
<field name="action_id">(...)</field>
<field name="split_mode">XOR | OR | AND</field>
<field name="join_mode">XOR | AND</field>
<field name="signal_send">(...)</field>
<field name="flow_start">True | False</field>
<field name="flow_stop">True | False</field>
</record>
  • model:固定取值 workflow.activity
  • wkf_id:本 Activity 所属的工作流 id
  • name: 本 Activity 名称,任意值
  • kind:本 Activity 类型,有 Dummy, Function, Subflow, Stop All 四种。

    • kind 说明,如果流程到达本节 点,系统应执行的动作类别。
    • Dummy 表示不执行任何动作,即 action 中定义的代码不会被执行。
    • Function 表示执行 action 中定义的 python 代码,且,执行 action_id 中定义的 server action。常 见情况是,action 中定义一个 write 方法,修改流程关联的对象的状态。对于 Function 类型的节点, action 中定义的代 码或者返回 False,或者返回一个客户端动作 id(A client action should be returned)。

    • Subflow 类型表示触发“subflow_id”中指定的工作流。仔细的读者或许要问,工作流的执行总是和某 个被处理的对象关联,是的,如果定义了 action,subflow 关联的对象 id 由 action 中定义的代码返回。 如果没有定义 action,系统默认 subflow 关联的对象和本节点所属的工作流处理的对象 id 一致。

    • stopall 类型表示,流程到此节点则结束,但结束前,系统仍会执行 action 中的代码。

  • signal_send: 执行完本节点的动作 (action 及 action_id 定义的动作)后,应向别的工作流发往的 signal,格式是:subflow.signal。subflow_id 和 signal_send 必须配合使用,subflow_id 表示,触发 子工作流 subflow_id,在该子工作流中,通常必须定义 signal_send,signal_send 定义父流程中的某 个 signal,表示,子流程处理结束后触发父流程中的信号 subflow.signal。注意,用于父子流程通信的 工作流 signal 必须是形如 subflow.* 。例如,在 HR 模块的 workflow "wkf_expenses"中,需要开发票 时候,它触发流程 account 模块中的工作流“account.wkf”()。account.wkf 处理完成后,发出信号 subflow.paid 通知 wkf_expenses 流程 (subflow.paid)。wkf_expenses 中定义了信号 subflow.paid (subflow.paid)。

  • split_mode: 有三个选项,XOR,OR,AND,默认是 XOR。

    • XOR 表示,由本节点始发的出迁移中, 沿着第一个满足迁移条件的迁移跳转。
    • OR 表示由本节点始发的出迁移中,只要满足迁移条件即沿该 迁移跳转。
    • AND 表示由本节点始发的出迁移中,只有所有迁移皆满足迁移条件才跳转,而且是同时沿 所有迁移跳转。
    • XOR 只有一个跳转,OR 有零或多个跳转,AND 有零或全部跳转。
  • join_mode:有两个选项,XOR,AND,默认是 XOR。

    • XOR 表示,以本节点为终点的入迁移中,只 要有一个跳至本节点,即执行本节点的 action。
    • AND 表示,以本节点为终点的入迁移中,只有所有迁 移都已经跳至本节点,才执行本节点的 action。
  • flow_start:表示流程的开始节点。

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