Odoo

序列和工作流

一序列

序号名称

序号的显示名称

序号类型

序号的类型

编辑序列

前缀

生成序号的前缀,可以用一些系统变量

后缀

生成序号的后缀,可以用一些系统变量

数字位数

生成序号的数字位数(不含前缀和后缀),不足位时会在前面补

0

增量

每次序号增加的数字

下一编号

系统将生成的下一个序号

二、工作流

一、工作流定义:

<?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

,审批的同时,

a)

系统自动产生收货单,

工仓库收货;

b)

系统自动产生凭据(

Invoice

),供财务确认付款;

c)

系统自动产生

PDF

的采购订单,并自

EMail

给该

PO

单对应的供应商。但对于特定的某个

PO

对象,需要一个工作流实例,以记录本

PO

象处在流程的哪个阶段,如

PO1

尚在

draft

状态,

PO2

已经审批通过。

PO

单的审批,以及对应的

a)

b)

c)

的动作,都可以在

OE

的工作流中定义解决,而不需要全编码在

PO

对象上。

即工作流实现了流程处理相关的代码和被处理对象的代码相分离,

降低了不同处理代码的耦合性,

增加了系统功能的柔软性。

二、活动(

Activity

)定义

<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

”(

<field name="subflow_id"ref="account.wkf"/>

)。

account.wkf

处理完成后,发出信号

subflow.paid

通知

wkf_expenses

流程(

<field

name="signal_send">subflow.paid</field>

)。

wkf_expenses

中定义了信号

subflow.paid

<field

name="signal">subflow.paid</field>

)。

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

:表示流程的结束节点。

三、迁移(

Transition

)的定义

迁移的完整

XML

定义格式如下。

<record model="workflow.transition"id="transition_id">

<field name="act_from"ref="activity_id_1"/>

<field name="act_to"ref="activity_id_2"/>

<field name="signal">(...)</field>

<field name="condition">(...)</field>

<field name="trigger_model">(...)</field>

<field name="trigger_expr_id">(...)</field>

</record>

act_from

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

Activity

act_to

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

Activity

signal

:触发本迁移的信号,表示,如果系统收到

signal

定义的信号,则触发本迁移。触发信号有三种方

式,

1

)最常见的是用户点击视图中的“

name=

本处定义的

signal

”的

button

,此时相当于向系统发送迁

移信号量。

系统会根据视图中的对象

id

找到对象关联的

workflow

再找到与

button name

相同的

signal

触发之。

2

)调用

workflow_service

的方法:

trg_validate(self,uid,res_type,res_id,signal,cr)

,此方法表

示,触发对象类型

res_type

关联的

workflow

signal

信号,工作流实例关联的对象实例是

res_id

3

子流程的

signal_send

发出的信号,此种情况前文已说过。

condition

:迁移的条件,是一段

Python

代码,通常是一个函数调用。当系统收到

signal

中定义的信号

时候,检查此处的条件,条件为真则实际触发迁移。

trigger_model

trigger_expr_id

此二字段表示启动一个新工作流实例。

trigger_model

定义对象类型,

trigger_expr_id

定义一段

Python

代码,

返回

trigger_model

类型的对象

id

此二字段表示,

如果

act_from

中的

action

执行完毕,

condition

条件

OK

则系统中插入一个

trigger_model

类型,

trigger_expr_id

返回的对象

id

关联的工作流实例。然后,可以调用

workflow_service

的方法

trg_trigger(self,uid,res_type,res_id,cr)

实际执行该工作流。实际使用例子请参考

Sale

模块的工作流定义

wkf_sale

<field name="trigger_model">procurement.order</field>

<field name="trigger_expr_id">procurement_lines_get()</field>

迁移(

Transition

)的定义漏了权限组

group_id

,修正如下。表示只有该权限组可以触发本迁移。

迁移的完整

XML

定义格式如下。

<record model="workflow.transition"id="transition_id">

<field name="act_from"ref="activity_id_1"/>

<field name="act_to"ref="activity_id_2"/>

<field name="group_id"ref="groupid"/>

<field name="signal">(...)</field> 
1234567890ABCDEFGHIJKLMNabcdefghijklmn!@#$%^&&*()_+.一三五七九贰肆陆扒拾,。青玉案元夕东风夜放花千树更吹落星如雨宝马雕车香满路凤箫声动玉壶光转一夜鱼龙舞蛾儿雪柳黄金缕笑语盈盈暗香去众里寻他千百度暮然回首那人却在灯火阑珊处
您的评论

240
发布评论
用户评价

暂无评论

©2016 Baidu 使用百度前必读 | 文库协议 | 广告服务 | 企业文库 | 网站地图
3
下载1 下载券
用手机扫此二维码:×
以下结果由提供:×
百度翻译
百科词条:×
百度百科
分享到:
QQ空间新浪微博人人网微信
评价文档:
领取
下载券 新版反馈
/4

Odoo 序列和工作流相关推荐

  1. odoo10 工作流、安全机制、向导

    一:工作流 工作流是与业务流程相关联的模型,可用于跟踪工序的动态演变过程. 工作流.活动(节点或操作).转换通常在xml里以record定义.在工作流中处理的单个流程称为工作项. 与模型关联的工作流是 ...

  2. 链锯:基于链接的自动化工作流漏洞生成

    摘要 我们解决了web应用程序的自动漏洞生成问题.在这方面,我们提出了一种方法,该方法显著提高了web注入漏洞识别和漏洞生成的技术水平.我们的漏洞生成方法解决了与典型web应用程序特征相关的各种挑战: ...

  3. python Pipelines(管道)

    https://blog.csdn.net/cheng9981/article/details/63279807 机器学习库(MLlib)指南     MLlib是Spark的机器学习(ML)库. 它 ...

  4. 一套较完整的技术框架

    一套较完整的技术框架 转载自http://blog.csdn.net/phenixiii/article/month/2007/11 1 引言 1.1 前言 本文将基于目前现有的软件开发架构(以下简称 ...

  5. workflow是什么?

    workflow是为了完成一些预定的目的,根据一组规则,而制定的一系列步骤.对于一个开发者来说,workflow则是将复杂的业务规则以及控制流程以图形化的方法声明出来,组成一个高度可视化的图形环境. ...

  6. odoo中的序列(自动增长的序列以及有条件的序列,ir.sequence)

    1.模块下面的data文件夹里面新建一个XML文件 如图:main_data_seq.xml <?xml version="1.0" encoding="utf-8 ...

  7. Odoo10参考系列--工作流

    在Odoo中,一个工作流是一个和一个去管理与模型记录关联的一套"要做的事"的技术产品.工作流提供了一种更高级别的方法来组织任务,以便在记录中执行. 更具体地说,工作流是一个有向图, ...

  8. Odoo 8.0深入浅出开发教程

    转自:http://blog.sunansheng.com/python/odoo/odoo.html Table of Contents 1. ERP简介 1.1. Odoo历史 1.2. ERPⅡ ...

  9. Odoo免费开源信息化平台满足所有企业应用场景与需求

    本文节选 Odoo亚太金牌服务·开源智造 老杨 所编写的<免费开源企业信息化快速开发平台·Odoo14开发指南(第四版)>第一章企业信息化首选开发平台Odoo介绍篇的节选内容,本书籍持续创 ...

  10. [精]Odoo 8.0深入浅出开发教程-模块开发基础

    參考资料点击这里. 构建Odoo模块 模块组成 业务对象 业务对象声明为Python类, 由Odoo自己主动加载. 数据文件 XML或CSV文件格式, 在当中声明了元数据(视图或工作流).配置数据(模 ...

最新文章

  1. PurgeComm()函数_清空缓冲区 收藏
  2. Visual C#3.0新特性概览
  3. kernelbasedll下载_kernel32.dll
  4. WCF+AJAX最佳实践
  5. 专访 | 阿里前辈李智慧:如何培养架构思维,我把20年的架构经讲给你听
  6. win10桌面简洁化(自定义鼠标右键菜单)
  7. 云服务器如何发送邮件
  8. 阿里云的yum源配置
  9. spark学习9:sparkStreaming
  10. APP打包后上传遇到ERROR ITMS-90096解决办法
  11. 金属,还是Disturbed的好。
  12. node.js 基础(含mongodb,express,express-art-template)
  13. 如何有效减少全局变量的使用
  14. 诺基亚 索爱 低端手机及智能手机 与 QQ邮箱或MyTT 通讯录同步 介绍
  15. 《计算机网络——自顶向下方法》学习笔记——网络层:数据平面
  16. 我们不再是冷暖自知的个体
  17. QT界面树形浏览与界面切换简单设计
  18. AI模型看看视频,就学会了玩《我的世界》:砍树、造箱子、制作石镐样样不差...
  19. box-shadow的使用
  20. protobuf 自定义extend

热门文章

  1. EasyRecovery易恢复文件数据恢复软件详解介绍安装
  2. 错误报告函数:strerror和perror
  3. java webservice 500_Webservice调用返回错误500
  4. 第十章 DirectX 绘制简单场景,地形,天空盒和跟随摄像机(上)
  5. js小游戏之锅打灰太狼
  6. qcom内存大小配置及调频测试
  7. u盘无法格式化不在计算机中,u盘被写保护无法格式化怎么办 u盘无法格式化原因及解决...
  8. Micropython——使用PS2手柄实现远程遥控
  9. Python怎么注册和调用大漠插件
  10. ZXP个人美工作品---->