隨著信息技術的進步及激烈市場競爭的多元化,引進ERP這種代表了世界上最先進的管理思想和方法的管理信息系統是大勢所趨。許多國內外著名公司基于自身的信息技術并根據企業整合的方法論開發出完整且復雜的ERP系統,堪稱是企業參考模型的最佳典范。但是企業的業務流程與企業的文化特質是互不相同的,因此在導人ERP的過程中經常會產生ERP無法滿足企業本身需求或與企業產生不合適的狀況,因而產生了ERP用戶化和二次開發的問題。所以在實施ERP系統的過程中用戶化和二次開發就成為了必不可少的組成部分。
1 用戶化和二次開發的涵義
當企業需求與ERP系統發生不合適狀況時,我們有多種解決方法,而當企業需求不能做出讓步時則只能改變ERP系統了。用戶化和二次開發是兩個容易搞混的概念,客戶在項目的實施中對此往往不能很好的區分。但是如果不加以區分地將它們混為一談則會出現很多弊端,從工作量和難易度看,用戶化遠遠小于二次開發,而且它們各自適用的原則、步驟都是不同的。
1.1 用戶化涵義
用戶化的涵義即一般把不牽動程序的改動稱為用戶化,如修改報表格式。軟件如果有報表生成功能,或采用第四代語言,任何業務人員,不需要有很多計算機知識就可以自行設置。當然,還需經項目實施小組的批準。
1.2 二次開發涵義
通常把改動程序的工作稱為二次開發,即“以成熟套裝軟件方式針對某用戶實施ERP時,對于軟件功能不適用處進行的修改行為”。雖然系統通過參數可調的形式可以部分滿足不同用戶的需求,但很多情況下這種“輕度”靈活會失效。當客戶的業務不能通過簡單的用戶化實現時,就需要通過改動程序的二次開發來完成,如圖l所示。
圖1 ERP系統用戶化和二次開發
2 解決的主要問題
2.1 國外軟件的本土化
每個國家在歷史、地理、政治、經濟、文化等方面的條件各不相同,而反映到企業中,必然使企業在管理模式、管理方法等方面有所不同,所以自然會對ERP這樣的管理系統提出不同的要求。而這些要求對大部分國外軟件來說是無法完全實現的。這就產生了對軟件進行用戶化和二次開發的需求。這種用戶化和二次開發常常是可以在多家國內企業廣泛使用的,具有本地化的特點。對其程序要求具有產品軟件的質量水平和技術支持水平,才能滿足用戶的需要。
2.2 滿足不同行業的需求
某種軟件產品的存在依賴于需求和市場。企業信息化發展到今天,行業細分需求特點日益明顯。以制造業為例,企業用戶已經不僅僅滿足于財務管理、進銷存管理,更要求對生產制造過程進行現代化管理,以提高核心競爭力。而這方面的需求具有鮮明的行業特點:同樣是制造業,機械、電子、醫藥、冶金、化工、紡織、汽車等等對ERP軟件的要求是不同的。即使同為汽車行業,總裝廠、零部件廠、毛坯廠對軟件功能的要求也各有不同。
2.3 適應不同的企業戰略
一個ERP系統是一個通行的解決方案,它的設計反映了對企業通行業務的基本原則。供應商試圖使系統反映最佳的操作,但是這“最佳”的含義往往是由供應商而不是由顧客定義的。在多數情況下,系統能使企業的業務運行比使用前效率更高。但是在有些情況下,系統的設計恰恰違背了企業的最佳效益。因此,在具體實施ERP以前,必定需要對企業、企業所處的行業、企業的客戶以及競爭對手等因素進行具體分析,對業務進行合理的分析和調整來保持并加強企業的核心競爭力。當ERP的某些理念與企業的核心競爭力有沖突時,需要對ERP系統進行適當的調整。通過合理的配置。甚至于二次開發來滿足企業的需求,而不是一味地修正企業自身來適應系統。
2.4 適應用戶企業的特殊需要
有些使用ERP系統的公司是集團企業,作為集團企業的成員可能在不同的時期分別使用了自己的ERP系統,或者類似的信息系統,而作為統一管理這些成員公司的母公司,出于信息化管理的需要,必然希望能對這些不同的REP系統的信息進行匯總管理,這就必然要求各個成員公司的ERP系統能夠提供母公司要求的格式的數據。這些數據經常是系統本身不能提供、或者不能按要求的格式提供的,這就必然涉及到用戶化或二次開發工作。所以,在使用不同軟件的集團公司中就常常需要進行接口程序的用戶化或二次開發工作。另外,每個企業的生產過程是不一樣的,對生產過程的管理與控制也是千差萬別的,所以就往往會提出本企業的一些特殊要求。這些要求可能是部分流程邏輯的改變,也可能是一些特殊格式的報表,但是其共同的主旨是適應企業獨特的需要,對通用軟件進行用戶化或二次開發。
3 二次開發的類型
ERP項目二次開發常常涉及以下方面的需求。
3.1 接口需求
由于企業所使用的系統常常不只ERP一個,而各系統的數據之間常常會有所交叉,這就產生了不同系統之間接口的需求。一般來講,接口程序的編制都要由接口雙方系統所屬的公司共同完成,所以就在技術之外,先要有雙方如何配合的問題。在需求分析上,要求接口雙方和用戶企業大力配合,才可以確定真正的接口需求。
3.2 報表需求
報表需求的產生一般都是由于各單位需要符合自己特殊要求的報表。其特點有以下幾點。
(1)不需要修改數據庫中數據,而只是進行查詢和讀取。
(2)一般對導出的數據字段內容及格式要求較嚴格。
(3)常常會不斷有新的需求產生。
根據這些特點,應該鼓勵用戶自己參與報表的開發工作,這樣做的理由是:報表的開發不會破壞系統邏輯或者修改系統數據,所以交給用戶做是安全的,系統提供了方便的編制報表的工具。用戶自己開發報表,更容易了解最終用戶對內容和格式的要求。今后在項目實施階段完成以后,遇有新的需求時。用戶可以自行進行報表的開發?梢怨澕s用戶支付給開發商的軟件開發費用。
3.3 邏輯修改需求
一個真正成熟的軟件系統,其實施過程中需要進行的邏輯修改很少,進行時也要采取非常謹慎的態度。進行邏輯修改之前要先確認要進行的修改在邏輯上是合理的,在實現上是可行的。并且充分了解用戶需求,設計出性價比最高的解決方案。同時要注意所采用的解決方案及其程序實現可以滿足需要的性能要求和健壯性,并且界面相對容易掌握。因為要進行修改的是個大系統,所以要整體的看所要做的修改對系統的整體影響,不要顧此失彼,對整個系統的穩定運行造成影響。另外,要建立詳細的文檔,以保證將來在需要對系統進行升級時,可以在新版本中重建這些二次開發的部分。
4 二次開發的管理重點
4.1 全面了解用戶需求
了解用戶需求表面上看是很容易的,但實際上卻需要很大的努力。有些資深顧問認為,了解用戶需求的時間往往超過整個開發項目總時間的1/4,甚至有時在小項目中可以超過總用時的1/3。其困難主要是有以下幾點。
(1)用戶無法用專業詞匯、專業邏輯來表述其需求,而程序開發人員又缺少用戶企業環境的背景,造成雙方溝通的困難。
(2)用戶企業組織不利,造成每個部門,甚至每個人都有對二次開發有不同的要求。
(3)用戶總是在自覺不自覺中希望重復企業原有的,不合理的生產邏輯。
基于上述可能產生的問題,就需要在了解用戶需求時本著真正對用戶負責的原則,耐心、細致、科學、系統地了解用戶需求。①針對困難(1)就需要在進行二次開發設計之前,對戶進行教育、培訓,至少使主要的核心用戶不僅了解ERP軟件的使用方法,同時也了解ERP的內在邏輯,真正懂得ERP。這樣,供求雙方才能使用共同語言,在共同邏輯基礎上討論ERP二次開發的需求。②針對困難(2)要注意以下兩點。一是幫助用戶建立合理的項目隊伍。只有項目隊伍有合理的組織結構,才可能匯總、優化各個不同部門,不同個人的不同的需求。二是要求所有主要核心用戶都參加整個ERP培訓,而不只是自己工作相關模塊的培訓,這樣才能讓他們樹立全局的觀點,自覺把自己的、本部門的需求與ERP項目整體的需求相結合,得到完整的、一致的需求。③針對困難(3)就需要負責二次開發的技術人員本著對用戶對項目負責的原則,深入地理解ERP系統的整體邏輯,與項目的實施人員緊密配合,真正了解用戶的需求。這個工作有時甚至可能是一種極具挑戰性的工作,不僅需要科學的態度,還要需要藝術的方法。
4.2 判斷二次開發要求的合理性
對于軟件的二次開發有時是不可避免的。但是,過多的修改又會影響ERP項目的順利實施。那么,二次開發是否要做的標準是什么呢?也就是說如何判斷用戶化要求是否合理,從而有效的防止過多的修改呢?有3個方面的工作可以防止過多的修改,即教育、標準軟件和管理。
4.3 區分及處理二次開發上線前、后階段
在實際進行二次開發工作時,首要之事就是區分哪些二次開發是屬于上線前一定要完成的,哪些二次開發是屬于上線完成后才慢慢來進行的。前者指的是那些“不改的話根本無法上線”的二次開發,后者指的是那些屬于重要性不高,不會影響上線的二次開發。如果不能對二次開發進行有效的區分,會模糊上線實施的管理重點,進而影響上線的進度甚至質量。
4.4 盡量避免更動數據庫結構
新增或修改原有的報表或查詢程序,不會影響系、統的原有數據庫結構,因此不會造成日后系統升級的困擾。但是,如果二次開發牽涉到新增字段或檔案,就可能影響到原有數據庫結構,此時,最好的方式就是盡量利用系統原有的“閑置”字段,不要輕易新增字段或文件檔案。如果有改動較大的二次開發,其規格應當請軟件原開發廠商確認,以避免二次開發與產品發展方向重疊或沖突,以降低日后版本升級的困擾。
4.5 建立二次開發的規范
二次開發是一項龐雜的系統工程,決不是簡單系統代碼的增增減減,二次開發的文檔應該由專人保管,而代碼注釋也必須清晰易懂,還必須有專人負責檢查代碼質量。新擴充的字段命名、新建程序的命名都應該由專人分配,首先不能和現有系統沖突,同時還應預留一定的空間。對于公用元件一般不建議修改,因為公用元件被很多程序調用。在程序的編寫上應采用繼承的方式,在保證不破壞原有功能的基礎上做個性化的功能完善。如要修改處理業務邏輯.則分兩種情況:一是修改原有程序中的處理邏輯,將局部的繼承去掉,重寫新邏輯。二是在原有功能基礎上新增,保留繼承關系,在新的子文件中只完成新功能的實現即可,當版本升級時,二次開發的程序惟一要做的就是繼承新版本的源代碼作重新編譯。
5 結論
ERP系統用戶化和二次開發具有十分重要的意義,本文旨在從中總結出一些普遍性的經驗和教訓。對提高ERP實施的成功率和實施效益具有參考價值,從而使得ERP能夠真正的發揮作用,提高企業決策體系和市場運作體系的反應水平,提高企業捕捉發展機遇、規避市場風險的能力,提高企業的核心競爭力、加快企業的市場反應機制,并最終推動企業的發展。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:ERP軟件的客戶化與二次開發的探討