CRM系統(tǒng):深入剖析Comp iere ERP & CRM數(shù)據(jù)模型的研究
深入剖析Comp iere ERP & CRM數(shù)據(jù)模型的研究
包海山
(內(nèi)蒙古財經(jīng)學(xué)院 職業(yè)學(xué)院,內(nèi)蒙古 呼和浩特 010051)
[摘 要]設(shè)計一個成熟穩(wěn)定的ERP系統(tǒng)的關(guān)鍵是創(chuàng)建通用的數(shù)據(jù)模型框架和能夠適應(yīng)企業(yè)業(yè)務(wù)流程的軟件體系。本文
通過“報價- 發(fā)票”業(yè)務(wù)流程中的銷售訂單業(yè)務(wù)深入分析Comp iere ERP & CRM (Web App lication版本)的通用數(shù)據(jù)模型及其動
態(tài)數(shù)據(jù)字典設(shè)計思想,為企業(yè)導(dǎo)入應(yīng)用和客戶化定制提供基本思路。
[關(guān)鍵詞]Comp iere;開源ERP & CRM;數(shù)據(jù)模型;動態(tài)數(shù)據(jù)字典;業(yè)務(wù)流程
[中圖分類號] TP311. 52 [文獻(xiàn)標(biāo)識碼]A [文章編號]1672 - 5344 (2008) 03 - 0084 - 05
一、引言
Comp iere ERP & CRM 系統(tǒng)(以下簡稱
Comp iere)是由美國ComPiere公司面向全球中小企
業(yè)用戶推出的開源企業(yè)資源管理/客戶關(guān)系管理系
統(tǒng)。自從2001年問世以來, Comp iere以其強大的企
業(yè)資源/客戶關(guān)系集成管理功能和后臺會計業(yè)務(wù)處
理能力、多企業(yè)、多組織、多會計模式、多語種、多貨
幣、多成本核算體系等國際化I18N設(shè)計思想,以及
純Java的多平臺支持、靈活方便的需求適應(yīng)性配置
支持、高度的柔軟性和可擴充性、源代碼全部免費開
放等眾多優(yōu)勢,將全球中小型企業(yè)實現(xiàn)低成本高效
率高性能ERP、CRM、SCM (供應(yīng)鏈管理)管理系統(tǒng)的
夢想成為可行的現(xiàn)實。在短短的幾年時間里,擁有
了遍布全球的眾多業(yè)務(wù)合作伙伴和代理機構(gòu),而且
引起企業(yè)客戶、開發(fā)商、ERP研究教育機構(gòu)等各界的
廣泛關(guān)注和積極參與,通過http: / / forum. comp iere.
com和開源社區(qū)共享成果,共同推動著Comp iere的
快速發(fā)展,被業(yè)界授予“開源ERP & CRM 全球第
一”的美譽。
Comp iere的技術(shù)優(yōu)勢主要來自于通用數(shù)據(jù)模型
之上的柔性引擎設(shè)計思想。在數(shù)據(jù)模型方面,
Comp iere利用動態(tài)數(shù)據(jù)字典技術(shù)實現(xiàn)了業(yè)務(wù)視圖和
數(shù)據(jù)庫視圖的分離,為Comp iere的數(shù)據(jù)庫獨立奠定
了基礎(chǔ);在業(yè)務(wù)處理功能設(shè)計方面, Comp iere采用目
前國際通行的ERP業(yè)務(wù)流程引擎柔性設(shè)計思想,實
現(xiàn)了單個引擎處理所有業(yè)務(wù)流程的先進(jìn)方法。下面
主要通過“報價- 銷售訂單- 發(fā)貨- 收款- 發(fā)票”
業(yè)務(wù)流程中的銷售訂單業(yè)務(wù)模型深入剖析Comp iere
的通用數(shù)據(jù)模型設(shè)計思想和動態(tài)數(shù)據(jù)字典設(shè)計方
法。
二、Comp iere數(shù)據(jù)模型分析
(一)數(shù)據(jù)庫表及其E - R圖結(jié)構(gòu)
Comp iere2. 5. 3b數(shù)據(jù)庫包含6大類547個數(shù)據(jù)
庫表,分別以AD _ (App lication Dictionary,動態(tài)數(shù)據(jù)
字典) 、C _ ( Client, 用戶實體功能) 、M _
(Material&Product, 原材料與商品管理) 、I _
( Import&Export, 數(shù)據(jù)輸入輸出) 、B _ (Buyer, 購買
者) 、X_ ( eXtend,擴展表管理)作為數(shù)據(jù)庫表名的開
頭標(biāo)志。如C_Order、C_Orderline分別表示由用戶
使用的訂單數(shù)據(jù)庫表和訂單明細(xì)數(shù)據(jù)庫表。簡化的
數(shù)據(jù)庫表C_Orderline的構(gòu)成如圖1所示。
在Comp iere的銷售訂單(Order)處理流程中,通
過訪問訂單數(shù)據(jù)庫表C_Order來獲取訂單業(yè)務(wù)所需
數(shù)據(jù),如訂單號、訂貨日期、送貨期限、總價等。訂單
中每種商品的編號、名稱、單價、單位、數(shù)量、折扣、實
際售價等訂單明細(xì)數(shù)據(jù)需要從相應(yīng)的訂單明細(xì)數(shù)據(jù)
庫表C_Orderline中提取。而顧客名稱、地址以及外
幣結(jié)算兌換率等數(shù)據(jù)分別在業(yè)務(wù)伙伴C_BPartner、
業(yè)務(wù)伙伴聯(lián)系地址C _BPartner_Location、貨幣C _
Currency等其它數(shù)據(jù)庫表中,需要根據(jù)業(yè)務(wù)邏輯E -
R圖(Entity - RelationMap,實體- 關(guān)系圖)創(chuàng)建C_
Order業(yè)務(wù)視圖(View)并與這些數(shù)據(jù)庫表進(jìn)行關(guān)聯(lián)
起來才能獲取所需業(yè)務(wù)數(shù)據(jù)。如將函數(shù)NVL ( bpc.
Name, bp. Name) 的值作為顧客聯(lián)系名稱Contact2
Name,而新增加的列———折扣總額DiscountAmtTotal
由表達(dá)式:
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
計算產(chǎn)生。另外,該業(yè)務(wù)視圖中的數(shù)據(jù)將通過
關(guān)聯(lián)被訂單明細(xì)C_Orderline、訂單課稅明細(xì)C_Orde2
rTax以及出庫單M_ InOut等業(yè)務(wù)視圖引用。
在以O(shè)racle10g作為后臺數(shù)據(jù)庫環(huán)境下,通過
OsqlEdit編輯器創(chuàng)建和更新的通用C_Order業(yè)務(wù)視
圖如清單1所示。
(二)數(shù)據(jù)模型
對象和關(guān)系數(shù)據(jù)庫之間的映射通常是用一個易
于理解和手工可修改的XML 文檔來定義的。目前
的映射語言以Java為中心,所以映射文檔是按照持
久化對象PO的定義來創(chuàng)建的,而不是對數(shù)據(jù)庫表
的直接定義。針對Java開發(fā)環(huán)境的對象關(guān)系映射
模型(ORM)技術(shù)框架很多,如實體Bean、OJB、JDO、
JDBC以及Torque、Hibernate等。
利用ORM技術(shù)可以實現(xiàn)業(yè)務(wù)層與數(shù)據(jù)存儲相
分離,開發(fā)人員不需要關(guān)心數(shù)據(jù)的實際存儲方式,便
于應(yīng)用程序?qū)崿F(xiàn)數(shù)據(jù)庫獨立。ORM技術(shù)把數(shù)據(jù)庫
和SQL語句都隱藏起來,使得開發(fā)人員致力于設(shè)計
并使用實體對象,實體對象在數(shù)據(jù)庫中存儲、訪問的
具體邏輯由ORM框架自動進(jìn)行處理。例如,當(dāng)需要
把應(yīng)用程序從Oracle數(shù)據(jù)庫遷移到PostgreSQL數(shù)據(jù)
庫,只需要修改配置文件即可,不需要修改應(yīng)用程
序。
Comp iere采用ORM技術(shù)創(chuàng)建了業(yè)務(wù)數(shù)據(jù)模型,
因此具有如下優(yōu)勢:
1)提高學(xué)習(xí)開發(fā)效率,降低開發(fā)成本;
2)簡化代碼,減少BUG數(shù)量;
3)提高應(yīng)用系統(tǒng)的性能;
4)隔離數(shù)據(jù)源,便于實現(xiàn)數(shù)據(jù)庫獨立。
一個基于業(yè)務(wù)流程架構(gòu)的Comp iere數(shù)據(jù)模型
如圖3所示。
為了實現(xiàn)數(shù)據(jù)庫獨立計劃, Comp iere從2004年
開始在代碼級別加強了對PO的管理,目前的通用
版本由以下幾個層次的Java類構(gòu)成:
①PO. java,是所有持久化對象的基類,由它實
現(xiàn)了查詢、插入、更新、刪除等數(shù)據(jù)庫基本操作。
Comp iere中其它所有的3 . java都直接或間接地繼
承PO. java,完成對相應(yīng)數(shù)據(jù)庫表、列的訪問操作。
②在PO類中, Comp iere希望實現(xiàn)類似trigger的
功能,以移植過去用PL /SQL寫的大量trigger代碼。
為此,在PO. java中定義了布爾型的beforesave ( ) 、
aftersave ( )等方法,用來代替trigger功能。
③數(shù)據(jù)庫表3 3 3 對應(yīng)的Java類源碼文件是X
_3 3 3 . java,它繼承自PO. java,可以通過Comp iere
提供的generateModel工具自動產(chǎn)生。作為一個簡單
的Bean, X_3 3 3 . java主要由一些類的get、set方
法組成。
強力推薦:
天柏客戶關(guān)系管理系統(tǒng)
天柏客戶關(guān)系管理系統(tǒng)(CRM)是一款集專業(yè)性、實用性、易用性為一體的純B/S架構(gòu)的CRM系統(tǒng),它基于以客戶為中心的協(xié)同管理思想和營銷理念,圍繞客戶生命周期的整個過程,針對不同價值的客戶實施以客戶滿意為目標(biāo)的營銷策略,通過企業(yè)級協(xié)同,有效的“發(fā)現(xiàn)、保持和留住客戶”,從而達(dá)到留住客戶、提高銷售,實現(xiàn)企業(yè)利潤最大化的目的。通過對客戶進(jìn)行7P的深入分析,即客戶概況分析(Profiling)、客戶忠誠度分析(Persistency)、客戶利潤分析(Profitability)、客戶性能分析(Performance)、客戶未來分析(Prospecting)、客戶產(chǎn)品分析(Product)、客戶促銷分析(Promotion)以及改善與管理企業(yè)銷售、營銷、客戶服務(wù)和支持等與客戶關(guān)系有關(guān)的業(yè)務(wù)流程并提高各個環(huán)節(jié)的自動化程度,從而幫助企業(yè)達(dá)到縮短銷售周期、降低銷售成本、擴大銷售量、增加收入與盈利、搶占更多市場份額、尋求新的市場機會和銷售渠道,最終從根本上提升企業(yè)的核心競爭力,使得企業(yè)在當(dāng)前激烈的競爭環(huán)境中立于不敗之地。
關(guān)鍵詞:CRM,CRM系統(tǒng),CRM軟件,客戶關(guān)系管理,客戶管理軟件,客戶管理系統(tǒng),客戶關(guān)系管理軟件,客戶關(guān)系管理系統(tǒng)