Odoo 简介

Odoo 简介

Odoo历史

Odoo8的前身时"Tiny ERP",最初是由比利时的Fabien Pinckaers创建的。到2009年的时候,发布第5版本。公司获得风投,盈利迅速增长,软件更名为OpenERP。OpenERP这个名字最为人们熟知,当时软件已经包含几百个模块了,从财务管理、采购/销售管理、库存管理到人力资源管理、销售点管理、项目管理等等都有。当时可能某些模块的功能已经开始超过传统意义上的ERP(Enterprise Resource Planning,企业资源规划)的定义(不过最新的ERPⅡ定义则更广泛)。

而在2014年9月,软件发布第8版时,在之前版本逐渐优化的web client这一块的基础上,进行了大范围的功能增强。比如有了Website builder模块,可以方便公司快速架构出自己的网站;e-commerce模块方便公司快速搭建销售平台;还有business intelligence这个模块,可以辅助生成高质量的说明演示用的图形等等。这使得OpenERP这个名字已经不能很好地说明这个软件的壮志雄心了,于是软件更名为Odoo这个名字了,目前最新的版本是Odoo12(该版本为开发者版本,稳定版本为Odoo11)。

可以看得出来目前该软件的开发方向就是基于web client/server模型,将公司内部所涉及到的所有的信息流都整合起来,其不仅包括具体实施层面给,也包括分析决策层面。可以预见不久的将来Odoo开发将快速为公司构建出这样一个生态圈:

ERPⅡ或商业智能

随着信息时代的到来,商业也不可避免地走向信息化,智能化。最新的ERPⅡ的概念包含的内容如下所示:

  • Business Intelligence商业智能,其主要关注于分析数据,并将数据变成知识这一过程;
  • e-Commerce电子商务,关注对外战略;
  • Enterprise asset management企业资产管理,有效可持续地管理公司的资产生命周期,用强有力的分析工具来提高资产使用率和削减成本;
  • Procurement(SRM)采购,最大化的节约成本和支持终端对终端的采购,还有物流过程;
  • Production(PLM)生产,帮助管理和优化生产力和物料资源。时MRP的设计版,这里谈论的PLM不仅要解决物料需求问题,还要解决生产的时间问题,从而达到优化生产能力的目的;
  • Distribution(SCM)配送,控制仓库流程,使其能够对补给需求或更改做出快速的反应;
  • Accounting会计,自动化财务管理,同时要确保管理的便捷和对绩效做出实时反映;
  • Human Resource人力资源,维护一个完整的雇员数据库,更好地使用所有雇员;
  • Corporate performance and governance公司表现监管,对公司的各个部门更高的控制,目标让他们能够流水线作业;
  • Customer services(CRM)客服,获取和维护与客户的关系,充分利用客户的体验来进行知识管理评估(与BI模块结合紧密);
  • Sales销售,具体的订单确认,下单,货运和开发票等;

商业智能

商业智能(Business intelligence)的概念由Howard Dresner(1989年)通俗化而被人们广泛了解。其将商业智能定义为:一类由数据仓库(Data warehouses)、查询报表、数据分析、数据挖掘、数据备份和数据恢复等部分组成的、以帮助企业决策为目标的技术及其应用。目前商业智能被理解为将企业中的现有数据转化为知识,帮助企业做出明智的业务经营决策的工具。这里所谈的数据包括来自企业业务系统的订单、库存、交易账日、客户和供应商资料及来自企业所处行业和竞争对手的数据,以及来自企业所处的其他外部环境中的各种数据。而商业智能能够辅助的业务经营决策既可以是作业层的,也可以是管理层和策略层的决策。商业智能(BI)的架构示意图:

典型BI系统包括:

  • ETL过程:ETL过程是指对于数据的提取(Extraction)、转换(Transformation)和装载(Load)。该部分从各业务系统中抽取、转换、装载数据导数据仓库,此部分通常提供一些配置手段,使得用户能够比较方便的从各种数据源获得数据,并设置规则,将数据转换成需要的形式,Odoo带有ETL模块;
  • 数据仓库:用于存放ETL抽取回来的数据,此部分通常是经过数据仓库优化的关系数据库。用于数据仓库的关系数据库特别适合于处理大数据量及多维数据集。Odoo的BI模块直接以PostgreSQL数据库作为数据仓库;
  • OLAP:通常是实现了MDX(多维数据查询,Multi-Dimentional eXpress)语言的多维数据集(Cube)查询器。MDX有些类似SQL,但比SQL更简单,是数据分析语言的事实标准,OpenERP的BI模块支持MDX语言;
  • 报表工具:用于展现MDX的查询结果,通常提供方便手段访问和格式化数据,提供丰富的数据呈现方式。Odoo的BI模块以pyChart作为报表工具,报表开发方法和Odoo中的Graph视图类似;

下图很好地说明了Odoo技术框架:

  • PostgreSQL:数据库;
  • Object Relation Mapping:就是大家熟知的SQL ORM包装曾,Odoo除了使用基本的Python之外,ORM层是Odoo自己写的;
  • Base Module Distribution:官方基本模块;
  • Report Engine:负责生成各种报表,目前支持的报表格式有PDF,OpenOffice,HTML三种;
  • Workflow Engine:工作流引擎,支持任意复杂度的工作流;
  • WebService:提供网络调用接口,目前支持Net-RPC,XML-RPC两种,Odoo和flask一样使用Werkzeug作为WSGI层的包装,jinja2作为模板工具,然后剩下的框架部分是Odoo自己写的;

Python模块分析

Odoo这个框架使用了很多模块,从这些模块的使用我们可以大致看出Odoo的工作原理,其中主要的模块有:

  • psycopg2 PostgreSQL数据库接口,其ORM层Odoo是自己写的,python中有类似的模块SQLAlchemy或者peewee等;
  • Werkzeug和jinja2作为Odoo网络服务器框架的基础,同样flask也基于这两个模块;
  • babel为网页提供国际化方案,MarkupSafe可处理Markdown标记语言;lxml用于分析网页,mock和unittest2用于单元测试加强,pyserial用于串口通信,pyusb用于处理usb;requests用于处理网络协议,xlwt用来支持excel表格,pillow用于图像处理。这些模块都较好,目前也处于活跃开发中,已支持Python3;
  • pyPDF模块用来处理PDF的,以后推荐使用pypdf2模块。pychart这个模块也被废弃了,关于后台运算和绘图推荐使用numpy和matplotlib来解决;

原文地址:https://www.cnblogs.com/love9527/p/9172792.html

时间: 2024-10-18 11:31:37

Odoo 简介的相关文章

CentOS 7.x里yum安装Odoo 8.0&9.0(OpenERP)

(总结)CentOS 7.x里yum安装Odoo 8.0&9.0(OpenERP) 最近想了解下合适中小企业使用的ERP系统,研究了几款主流的开源ERP系统以及了解下SAP.Oracle EBS等大型ERP系统,开源ERP里Odoo(以前叫OpenERP)是最有名的,听说在欧洲广泛使用.功能确实非常强大,默认有中文语言包,使用Python开发,数据库用了PostgreSQL,缺点是不支持MySQL.官方有yum源,在CentOS 7.x里使用yum安装部署比较快速,但如果稍不注意细节,可能就会安

全球第一开源云ERP Odoo操作手册 模块安装和界面汉化指南

之前介绍了odoo的安装和初始设置以及数据库,下面来介绍odoo的模块安装和界面汉化. 1.4 模块安装和界面汉化 Odoo 的功能包含在不同的模块中, 刚创建的数据库除 Odoo 的核心模块外, 其它模块并没有被安装到系统中,你可以根据需要安装它们.本节将介绍安装模块和界面汉化的相关知识. 我们使用菜单“常用模块→常用模块”来安装模块. 系统默认只显示常用的模块.要显示全部模块,可以叉掉搜索栏中的“常用模块”. 1.4.1 安装模块前的准备工作 1.4.1.1 关于开发者模式 更多菜单和功能需

Odoo国际化翻译方法及示例介绍

本文主要介绍了odoo国际化翻译使用的方法及示例 国际化翻译方法 每个模块的翻译文件放在该模块目录下i18n目录里.模块内相关字符串一般用英语写成,然后通过翻译模板导出功能(Settings ? Translations ? Import/Export ? Export Translation)导出一个翻译模板pot文件.翻译人员使用翻译软件(poedit)进行翻译后,产生对应语言po文件,再放入i18n目录下供odoo加载.po文件的文件名规则一般由对应语言缩写或语言_国家组成,如中文为zh.

Android网络通讯简介

网络通信应该包含三部分的内容:发送方.接收方.协议栈.发送方和接收方是参与通信的主体,协议栈是发送方和接收方进行通信的契约.按照服务类型,网络通信可分为面向连接和无连接的方式.面向连接是在通信前建立通信链路,而通信结束后释放该链路.无连接的方式则不需要在通信前建立通信连接,这种方式不保证传输的质量. Android提供了多种网络通信的方式,如Java中提供的网络编程,在Android中都提供了支持.Android中常用的网络编程方式如下: 针对TCP/IP协议的Socket和ServerSock

微信红包的架构设计简介

@来源于QCon某高可用架构群整理,整理朱玉华. 背景:有某个朋友在朋友圈咨询微信红包的架构,于是乎有了下面的文字(有误请提出,谢谢) 概况:2014年微信红包使用数据库硬抗整个流量,2015年使用cache抗流量. 微信的金额什么时候算? 答:微信金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计算,不需要预算空间存储.. 采取实时计算金额的考虑:预算需要占存储,实时效率很高,预算才效率低. 实时性:为什么明明抢到红包,点开后发现没有? 答:2014年的红包一点开就知道金额,分两次操作

JSON 简介

ylbtech-JSON: JSON 简介 JSON:JavaScript Object Notation(JavaScript 对象表示法) JSON是存储和交换文本信息的语法,类似 XML. JSON 比 XML 更小.更快.更易解析. JSON 实例 { "employee":[ {"firstName":"John","lastName":"Doe"}, {"firstName"

odoo系统中name_search和name_get用法

自动带出工序和工序序号,两个条件都能搜索,并且两个都带出来显示在前端: # 输入工序序号会自动带出工序名// def name_search(self, cr,user,name='', args=None, operator='ilike', context=None, limit=100): if not args: args=[] args=args[:] ids=[] if name://这两个是搜索条件,根据序号能搜,根据工序名能搜 ids=self.search(cr,user,[(

Docker简介

Docker简介 什么是Docker: 正所谓Docker的英文本意为"搬运工",所以在我们的世界里,可以理解为Docker搬运的是装满任意类型的APP的集装箱,开发者可以通过Docker将APP变成一种标准化的.可移动植的.自动管理的组件.它用一种新的方式实现了轻量级的虚拟机,专业术语成为应用容器(Application Container) Docker的优势: 1.利用率高 ·Docker对系统资源的利用率很高,一台主机可以同时运行数千个Docker容器 2.可以快速的交付应用程

kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状态信息是如何保存的? 4.partitions设计的目的的根本原因是什么? 一.入门 1.简介 Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现.k