Odoo是一个开放源码且功能完善的企业级管理软件平台,它不仅提供了ERP常规模块,而且还允许使用人员进行灵活的实施配置。对于前台配置解决不了的需求,还可以通过Odoo提供的平台进行二次开发。
Odoo的开发语言是Python,基于Python的魅力及其在互联网领域越来越广的应用,决定了以后Odoo开发的难度会越来越低。
Odoo良好的可扩展性可以媲美任何主流的ERP产品,其允许按照模块实现新的需求;在二次开发的过程中,如果要修改已有功能的话,也不需要直接修改源码,只需使用继承的方式来进行增强和扩展,或者在子类中修改字段或方法。
Odoo从其前身OpenERP开始,就受到了来自社区的活跃更新的支持;目前,Odoo有数千个社区模块,几乎所有的主题都能找到相应的社区模块,这也反过来进一步吸引了更多的人员参与到Odoo的社区中来。
开启开发者模式
开启开发者模式,如下图,进入“设置”模块,页面滚动到下部,点击“激活开发者模式”。
打开开发者模式后,右上角显示一个小虫子,点击,下拉显示很多开发者工具。后续章节中将逐步介绍其中的一些重要工具。
增加字段和表单
本节开发实现如下业务需求:
1. 增加品牌表单
2. 产品上增加品牌字段,该字段关联到品牌表单
3. 产品标签打印格式上增加品牌
增加表单
Odoo中,新增表单的步骤:
1. 创建一个模型,Odoo的模型对应到数据库的数据表,模型名称中的点(.)替换为下划线(_),就是数据表名称
2. 在模型中添加字段,这等同于在数据库的数据表中添加字段定义
3. 给模型添加访问权限,如果不加访问权限,则任何人都看不见这个模型,不能对数据表进行增删改查的操作
4. 添加模型的访问菜单,通过该菜单进入增删改查的维护页面
添加“产品品牌”表单的详细的操作步骤:
Odoo中,打开开发者模式,进入菜单“设置 > 技术 > 数据库结构 > 模型”
创建新模型 “品牌”x_product_brand 。在Odoo中,在线创建的模型名,以及字段名,必须以 x_ 下划线开头。模型 x_product_brand有两个字段,一个x_name,品牌名称,一个 x_code,品牌代码
给模型添加访问权限,即哪些权限组可以增删改查品牌表。注意权限添加好以后,点击左上角“保存”按钮
点击模型下方的“创建菜单”按钮,添加“品牌”菜单,通过该菜单维护产品品牌
回到采购模块,刷新页面(按F5键),点开“基础配置”菜单,新出现了“品牌”菜单。
增加字段
Odoo中,在现有表单上增加新字段的步骤是:
1. 找到需要增加字段的模型,在该模型上添加字段
2. 进入表单的显示页面,点右上角的“调试”按钮,打开列表或表单视图,在希望显示的位置添加 XML 代码,在视图上显示新加的字段。
3. F5刷新页面,即可显示新增加的字段。
下面图解介绍如何在产品表单上增加品牌字段,该字段关联(数据库术语叫:外键关联,many2one)到前面添加的品牌表单。
进入菜单“设置 > 技术 > 数据库结构 > 模型”,查找模型“产品模板”,如下图。
打开“产品模板”模型,点击“添加明细行”,增加字段 x_brand_id , 该字段“多对一”关联到前面创建的表单 x_product_brand ,如下图。添加以后,注意保存字段,以及模型。
进入采购模块,产品菜单,点击产品打开表单(Form视图),鼠标移动到“产品类别”字段上,系统显示产品类别的字段名 categ_id 。我们准备在产品类别的后面显示“品牌字段”。
点击右上角的小虫子,点击“Edit View:Form”,打开表单视图编辑页面。找到字段 categ_id,在它后面添加 xml 代码行:<field name=”x_brand_id”/>,如下图
F5刷新页面,可以看见新增加的品牌字段
修改打印格式
Odoo中修改单据打印格式的步骤是:
1. 找到单据打印格式对应的报告
2. 打开报告表单,找到打印格式对应的qweb视图
3. 修改qweb视图,增加希望打印的字段信息
下面图解详细说明操作步骤:
菜单“设置 > 技术 > 动作 > 报告”,搜索dymo报告(产品标签打印的报告)
点击打开报告,点击右上角按钮“QWeb视图”,查看打印格式对应的QWeb视图名称
打开菜单“设置 > 技术 > 用户界面 > 视图”,搜索dymo,打开产品标签打印的dymo 视图。
在视图中添加 品牌打印的 xml 代码:<span t-field=”product.x_brand_id.x_name”/>,添加好以后,注意保存。
回到产品表单视图,点击按钮“标签打印”,选择 Dymo格式的标签。打印出来的PDF的标签上,产品名称后面,增加了“品牌”的打印。
业务逻辑处理
Odoo中在线业务逻辑开发工具有三个,一个是自动动作,一个是服务器动作,一个是计划任务。
一、自动动作
安装模块 base_automation,如下图:
模块安装后,菜单“设置 > 技术 > 自动化 > 自动动作”,创建自动动作。
自动动作各字段设置方法说明如下:
模型:本自动动作适用的模型,如本例是“产品模板”
启用:本自动动作是否生效,不启用的话,则不生效
触发:自动动作的触发方式。参考后文详解各个触发方式的含义
应用于:自定义一个过滤条件,只针对符合此条件的记录,执行自动动作
待办的行动:执行什么动作。参考后文详解各种动作的含义
Python代码:当“待办的行动”选择“可执行Python代码”时候,此处编写python程序代码。
自动动作的触发方式有下面六种:
创建时:当创建一个新记录时候,触发本自动动作
更新时:当修改记录时候,触发本自动动作。这个选项,可以指定触发字段,以及更新前域表达式。
创建以及更新时:创建或更新记录时候,都触发本自动动作
删除时:删除记录时候,触发本自动动作
基于表单修改:当在页面上修改指定字段时候,触发自动动作。此选项,在“触发字段”指定哪些字段修改时候触发本动作。和“更新时”不同的是,此选项只有用户在页面上修改字段值时候才会触发,而“更新时”则任何方式的修改(页面上修改,或者程序代码调用 write方法修改)都会触发。
基于表单修改,实际是给模型增加 on_change方法,必须以 action 返回onchange格式的字典,如下面示例代码,修改产品名称时候发警告。
res = {}
res[“warning”] = {“title”: “产品名称警告”,”message”:”注意遵循产品命名规则!”}
action = res
基于时间条件:指定一个时间条件,当符合此时间条件时候,触发自动动作。
自动动作的执行动作有下面八种:
可执行Python代码:编写一段Python程序,系统自动调用执行此Python程序
创建新记录:创建一条指定模型的记录
更新记录:更新本模型的记录,写入数据中,设置更新哪些字段,以及更新为什么值
执行多个动作:执行其他动作,可以连续执行多个动作。在动作中指定其他动作
发送Email:指定一个Email模板,系统自动发送邮件
添加关注者:在符合条件的记录上,添加指定的关注者
创建新活动:在符合条件的记录上,添加一个待办活动。待办活动可以分配给指定的人,也可以分配给记录上的某个字段指定的那个用户,如下面截图上,待办事项分配给销售订单上的“负责业务员”。
发送文本短信:指定一个短信模板,系统自动按模板格式发送短信
二、服务器动作
菜单“设置 > 技术 > 动作 > 服务器动作”。服务器动作的配置字段,和前一节的自动动作基本相同,这里不再详述。
自动动作是系统自动触发,而服务器动作通常是用户点击上下文菜单触发。如下图。
注意,本示例功能,需要在“销售 > 基础配置 > 设置 ”页面中,勾选“价格表”功能。
三、计划任务
菜单“设置 > 技术 > 自动化 > 安排的动作”,下例截图是Odoo自带的MRP计划运行任务。计划任务上的配置字段较为简单,在前面章节基本都介绍过了,此处不再详述。
以上就是Odoo在线开发工具操作详解,如您对Odoo感兴趣或正在为您的企业ERP选型,欢迎移步开源智造官网获取更多行业资料、系统演示及客户案例分享。