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軟件,客戶關系管理,客戶管理軟件,客戶管理系統,客戶關系管理軟件,客戶關系管理系統