CRM系统:深入剖析Comp iere ERP & CRM数据模型的研究
深入剖析Comp iere ERP & CRM数据模型的研究
包海山
(内蒙古财经学院 职业学院,内蒙古 呼和浩特 010051)
[摘 要]设计一个成熟稳定的ERP系统的关键是创建通用的数据模型框架和能够适应企业业务流程的软件体系。本文
通过“报价- 发票”业务流程中的销售订单业务深入分析Comp iere ERP & CRM (Web App lication版本)的通用数据模型及其动
态数据字典设计思想,为企业导入应用和客户化定制提供基本思路。
[关键词]Comp iere;开源ERP & CRM;数据模型;动态数据字典;业务流程
[中图分类号] TP311. 52 [文献标识码]A [文章编号]1672 - 5344 (2008) 03 - 0084 - 05
一、引言
Comp iere ERP & CRM 系统(以下简称
Comp iere)是由美国ComPiere公司面向全球中小企
业用户推出的开源企业资源管理/客户关系管理系
统。自从2001年问世以来, Comp iere以其强大的企
业资源/客户关系集成管理功能和后台会计业务处
理能力、多企业、多组织、多会计模式、多语种、多货
币、多成本核算体系等国际化I18N设计思想,以及
纯Java的多平台支持、灵活方便的需求适应性配置
支持、高度的柔软性和可扩充性、源代码全部免费开
放等众多优势,将全球中小型企业实现低成本高效
率高性能ERP、CRM、SCM (供应链管理)管理系统的
梦想成为可行的现实。在短短的几年时间里,拥有
了遍布全球的众多业务合作伙伴和代理机构,而且
引起企业客户、开发商、ERP研究教育机构等各界的
广泛关注和积极参与,通过http: / / forum. comp iere.
com和开源社区共享成果,共同推动着Comp iere的
快速发展,被业界授予“开源ERP & CRM 全球第
一”的美誉。
Comp iere的技术优势主要来自于通用数据模型
之上的柔性引擎设计思想。在数据模型方面,
Comp iere利用动态数据字典技术实现了业务视图和
数据库视图的分离,为Comp iere的数据库独立奠定
了基础;在业务处理功能设计方面, Comp iere采用目
前国际通行的ERP业务流程引擎柔性设计思想,实
现了单个引擎处理所有业务流程的先进方法。下面
主要通过“报价- 销售订单- 发货- 收款- 发票”
业务流程中的销售订单业务模型深入剖析Comp iere
的通用数据模型设计思想和动态数据字典设计方
法。
二、Comp iere数据模型分析
(一)数据库表及其E - R图结构
Comp iere2. 5. 3b数据库包含6大类547个数据
库表,分别以AD _ (App lication Dictionary,动态数据
字典) 、C _ ( Client, 用户实体功能) 、M _
(Material&Product, 原材料与商品管理) 、I _
( Import&Export, 数据输入输出) 、B _ (Buyer, 购买
者) 、X_ ( eXtend,扩展表管理)作为数据库表名的开
头标志。如C_Order、C_Orderline分别表示由用户
使用的订单数据库表和订单明细数据库表。简化的
数据库表C_Orderline的构成如图1所示。
在Comp iere的销售订单(Order)处理流程中,通
过访问订单数据库表C_Order来获取订单业务所需
数据,如订单号、订货日期、送货期限、总价等。订单
中每种商品的编号、名称、单价、单位、数量、折扣、实
际售价等订单明细数据需要从相应的订单明细数据
库表C_Orderline中提取。而顾客名称、地址以及外
币结算兑换率等数据分别在业务伙伴C_BPartner、
业务伙伴联系地址C _BPartner_Location、货币C _
Currency等其它数据库表中,需要根据业务逻辑E -
R图(Entity - RelationMap,实体- 关系图)创建C_
Order业务视图(View)并与这些数据库表进行关联
起来才能获取所需业务数据。如将函数NVL ( bpc.
Name, bp. Name) 的值作为顾客联系名称Contact2
Name,而新增加的列———折扣总额DiscountAmtTotal
由表达式:
ROUND ( ( SELECT SUM ( il. QtyInvoiced 3 ( il.
PriceL ist - il. PriceActual ) )
FROM C_ InvoiceL ine ilWHERE il. C_ Invoice_ ID
= i. C_ Invoice_ ID ) , cc. StdPrecision)
AS DiscountAmtTotal
计算产生。另外,该业务视图中的数据将通过
关联被订单明细C_Orderline、订单课税明细C_Orde2
rTax以及出库单M_ InOut等业务视图引用。
在以Oracle10g作为后台数据库环境下,通过
OsqlEdit编辑器创建和更新的通用C_Order业务视
图如清单1所示。
(二)数据模型
对象和关系数据库之间的映射通常是用一个易
于理解和手工可修改的XML 文档来定义的。目前
的映射语言以Java为中心,所以映射文档是按照持
久化对象PO的定义来创建的,而不是对数据库表
的直接定义。针对Java开发环境的对象关系映射
模型(ORM)技术框架很多,如实体Bean、OJB、JDO、
JDBC以及Torque、Hibernate等。
利用ORM技术可以实现业务层与数据存储相
分离,开发人员不需要关心数据的实际存储方式,便
于应用程序实现数据库独立。ORM技术把数据库
和SQL语句都隐藏起来,使得开发人员致力于设计
并使用实体对象,实体对象在数据库中存储、访问的
具体逻辑由ORM框架自动进行处理。例如,当需要
把应用程序从Oracle数据库迁移到PostgreSQL数据
库,只需要修改配置文件即可,不需要修改应用程
序。
Comp iere采用ORM技术创建了业务数据模型,
因此具有如下优势:
1)提高学习开发效率,降低开发成本;
2)简化代码,减少BUG数量;
3)提高应用系统的性能;
4)隔离数据源,便于实现数据库独立。
一个基于业务流程架构的Comp iere数据模型
如图3所示。
为了实现数据库独立计划, Comp iere从2004年
开始在代码级别加强了对PO的管理,目前的通用
版本由以下几个层次的Java类构成:
①PO. java,是所有持久化对象的基类,由它实
现了查询、插入、更新、删除等数据库基本操作。
Comp iere中其它所有的3 . java都直接或间接地继
承PO. java,完成对相应数据库表、列的访问操作。
②在PO类中, Comp iere希望实现类似trigger的
功能,以移植过去用PL /SQL写的大量trigger代码。
为此,在PO. java中定义了布尔型的beforesave ( ) 、
aftersave ( )等方法,用来代替trigger功能。
③数据库表3 3 3 对应的Java类源码文件是X
_3 3 3 . java,它继承自PO. java,可以通过Comp iere
提供的generateModel工具自动产生。作为一个简单
的Bean, X_3 3 3 . java主要由一些类的get、set方
法组成。
强力推荐:
天柏客户关系管理系统
天柏客户关系管理系统(CRM)是一款集专业性、实用性、易用性为一体的纯B/S架构的CRM系统,它基于以客户为中心的协同管理思想和营销理念,围绕客户生命周期的整个过程,针对不同价值的客户实施以客户满意为目标的营销策略,通过企业级协同,有效的“发现、保持和留住客户”,从而达到留住客户、提高销售,实现企业利润最大化的目的。通过对客户进行7P的深入分析,即客户概况分析(Profiling)、客户忠诚度分析(Persistency)、客户利润分析(Profitability)、客户性能分析(Performance)、客户未来分析(Prospecting)、客户产品分析(Product)、客户促销分析(Promotion)以及改善与管理企业销售、营销、客户服务和支持等与客户关系有关的业务流程并提高各个环节的自动化程度,从而帮助企业达到缩短销售周期、降低销售成本、扩大销售量、增加收入与盈利、抢占更多市场份额、寻求新的市场机会和销售渠道,最终从根本上提升企业的核心竞争力,使得企业在当前激烈的竞争环境中立于不败之地。
关键词:CRM,CRM系统,CRM软件,客户关系管理,客户管理软件,客户管理系统,客户关系管理软件,客户关系管理系统