陳素燕 吳楚平
摘 要: 采用成熟套件+二次開發是成功實施具有特色ERP系統的主要方法,而一個成熟的ERP二次開發工具是成功實施ERP不可缺少的保障。通過研究鋼鐵企業ERP二次開發的特點,歸納總結出一個采用Oracle ERP+Delphi+PL/SQL進行二次開發應用的方法。
關鍵詞: Oracle ERP; 二次開發; Delphi; PL/SQL
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2013)08-40-04
0 引言
ERP是企業資源計劃(Enterprise Resource Planning)的簡稱,在國外已成功運用幾十年,其融合國外先進管理理念及管理方式,與國內管理有很大的不同。隨著信息技術的飛速發展和企業經濟實力的不斷增強,國內越來越多的企業開始實施ERP[1]。ERP是從傳統制造業發展起來的,如汽車制造業,國外ERP成熟套件有其明顯的行業特征;而鋼鐵行業的生產流程與這些領域差別很大,完全套用ERP成熟套件在鋼鐵行業實施就很難成功。若采用成熟的ERP套件+二次開發的技術路線,充分利用ERP套件的集成性、先進的管理理念,結合商用大型應用系統的實施經驗及自身的二次開發優勢,則實施風險小,成功機會大。
1 ERP的工作原理
ERP的工作原理在于MRP(Material Resource Planning),它根據銷售預測和客戶訂單,以BOM建立的供需關系,綜合考慮到設備能力、庫存情況、時間要求等一系列復雜關系,產生出物料需求信息:生產、采購、委外。系統圍繞計劃,設計了三條主線:進銷存、生產制造、財務,從而構成了一套完整的ERP企業信息管理系統[1]。ERP系統的總體框架如圖1所示。
2 ERP二次開發實施基本原則
⑴ 盡量以使用標準功能為主,能使用標準功能的,堅決不做二次開發;
⑵ 能在ERP系統內開發的堅決不在系統外開發;
⑶ 系統外開發一定要繼承和發揚原有信息化建設成果,對用戶來說做到新舊系統透明轉換。只有充分了解二次開發工具及與ERP接口方法,才能更好地進行二次開發的應用和實施。是系統內開發還是系統外開發,是前臺開發還是后臺實現,采用何種工具,如何接口,把握好二次開發基本框架等,是二次開發成敗的關鍵。
3 ERP二次開發體系結構
3.1 開發工具/應用程序層次結構
Oracle應用系統11i版本是真正完全基于互聯網Internet 架構,并且采用開放的Java語言和技術標準進行編寫的應用軟件,其開放性使Oracle應用系統11i版本有越來越強的生命力,Oracle應用系統充分采用了數據庫上的先進技術,將有些系統功能放到數據庫中去實現,而不是通過編程的方式,因而大大簡化了程序,提高了效率。使用Oracle ERP標準功能開發工具,能夠很好地實現二次開發與ERP的集成,界面風格統一,并且在系統升級時也能很好地得到支持。
Delphi以C/S構架為主,是一種面向對象編程的工具,特別適用于企業局域網內大批量數據處理。特別是其第三方控件豐富,可滿足用戶個性化需求。
ERP二次開發可能用到的開發工具有以下:
⑴ 利用系統標準功能的Form開發,它主要適用于前臺業務操作,如煉鋼、軋鋼車間管理,由于操作相對單一,與ERP標準功能聯系緊密,能完全融合在ERP標準界面內,操作簡單、方便,屬B/S三層模型構架。
⑵ 利用系統標準功能的支持Web的PL/SQL工具,它以網頁形式返回輸出,可以使結果動態化,主要用于數據展示,如報表綜合查詢。
⑶ 利用Delphi,主要用于與ERP標準功能聯系不緊密,個性化多、數據量大的業務操作,如銷售發運平臺、大宗原(燃)材料驗配結算系統,屬于客戶機/服務器(C/S)構架。
⑷ 利用Oracle后臺PL/SQL工具,主要用于后臺數據處理,不需人工干預的地方。如產成品完工入庫完全是在后臺執行的。
3.1.1 使用Delphi開發模板
Delphi是Borland公司研制的新一代可視化開發工具,可在Windows 2000,Windows XP等環境下使用。它擁有一個可視化的集成開發環境(IDE),采用面向對象的編程語言Object Pascal和基于部件的開發結構框架。Delphi它提供了100多個可供使用的構件,使開發人員可以快速地構造出應用系統。開發人員也可以根據需要修改部件或編寫部件。
其主要特點[2]:
⑴ 直接編譯生成可執行代碼,編譯速度快。
⑵ 支持將存取規則分別交給客戶機或服務器處理的兩種方案,允許開發人員建立一個簡單的部件或部件集合,封裝所有的規則,獨立于服務器和客戶機,所有的數據轉移通過這些部件來完成。大大減少了對服務器的請求和網絡上的數據傳輸量,提高應用處理的速度。
⑶ 提供許多快速方便的開發方法,使開發人員能用盡可能少的重復性工作完成各種不同的應用。
⑷ 具有可重用性和可擴展性。開發人員不必再對諸如標簽、按鈕及對話框等Windows的常見部件進行編程。Delphi包含許多可以重復使用的部件,允許用戶控制Windows的開發效果。
⑸ 具有強大的數據存取功能。
Delphi 開發模板主要利用了Delphi 本身面向對象編程(OOP)的精髓:如類(Class)、繼承(Inherited)、重載(Overload)、超載(Override)技術。
這些主要特性的組合使用,最終可完成Delphi開發模板的各項功能:模板技術。
3.1.2 PL/SQL
Oracle是一種功能非常強大且非常靈活的關系數據庫系統,其強大的功能和靈活性,使Oracle非常復雜。為了實現基于Oracle 設計有用的應用程序,則有必要理解Oracle是如何操作存儲在系統中的數據的。PL/SQL就是這樣一種實現數據操作的重要工具,用于從各種環境中訪問Oracle數據庫的一種比較復雜的編程語言[4]。由于它與數據庫服務器集成在一起,其代碼可以得到快速有效的處理。
⑴ PL/SQL的特點
SQL(Structured Query Language)結構化查詢語言是第四代語言(4GL),描述的是應該做什么,而不是怎么做,此功能特性專門用來處理和檢驗關系型數據。例如,下面的SQL語句將從數據庫中刪除所有主修營養學的學生記錄:
DELETE FROM STUDENTS WHERE major='Nutrition';
而面向對象語言,如C++或Delphi,是第三代語言(3GL),雖然融合了面向對象設計的原則,但在解決問題時是按一步接一步的算法,例如,用以下的語句來完成DELETE操作:
每種類型的語言都有其優點和缺點。一般而言,象SQL這樣的第四代語言相當簡單(與第三代語言相比),提供了較少的命令。第四代語言讓用戶不必關心那些由運行系統實現的底層數據結構和算法。但在某些情況下,3GL中的過程性結構對于某些程序的表達是非常有用的。這就是為什么使用PL/SQL的原因所在。它將4GL的強大性和靈活性與3GL的過程性結構融為一體。例如,用以下的PL/SQL程序完成上面的DELETE操作:
⑵ PL/SQL和網絡流量
無論應用程序是客戶/服務器還是三層模型,在客戶端將請求直接或間接發送到數據庫服務器時,使用PL/SQL語言實現要比使用單個SQL語言實現的網絡流量要大大減少;應用程序執行速度快。因為前者是通過打包作為一個單獨的單位發往服務器,后者要經過多次網絡傳輸交互。
3.1.3 支持Web的PL/SQL
PL/SQL主要用于后臺編程進行數據處理,而HTML語言主要用于WEB頁面顯示。Oracle ERP提供的支持Web的PL/SQL就是二者完美結合產品。它類似于ASP編程,程序員只要稍有一點網頁制作經驗,就很容易用其進行開發。支持Web的PL/SQL主要用于數據展示,如報表開發、數據查詢。下面給出用Web的PL/SQL語言開發的產品組碼監控調度程序,通過圖2鋼材產出組碼、判定、入庫監控所示,可以看出該開發工具的使用和輸出效果:
3.2 數據來源及存貯方式
⑴ 手工錄入:這主要指基本數據,如開單重量、發貨的倉庫等;
⑵ 從ERP系統獲取:如銷售訂單、物料編碼、物料事務處理明細;
⑶ 從數據采集系統獲取:產成品基本信息,批號、批次屬性、能源動力消耗;
⑷ 從二次開發的其他模塊中獲取信息:如驗配結算系統從質量模塊中獲取檢驗信息,實際成本還原從銷售發運平臺、驗配結算中提取結算單等。
3.3 接口方式
從數據交換方向上區分,有的是雙向的,一方面從ERP系統提取數據到用戶表,處理完畢后向ERP傳回結果,如驗配結算系統、銷售發運平臺;有的是單向的,只是從ERP系統提取數據,并不返回數據給ERP,如實際成本還原。
從數據傳遞形式上區分,有的采用接口表的方式,如物資暫估入庫;有的采用API調用的方式,如產品完工入庫;也有的是上述幾種方法的結合,如:銷售發運平臺等;也有的直接更改系統表。
接口表形式直觀,容易實現,按接口表要求填入數據由系統自動處理即可,速度快,適用于批量數據錄入,但由于實現簡單,容易產生鎖表現象,需要經常在前臺處理。
API調用實現相對復雜,需要手工控制、跟蹤執行進程,執行速度銷慢,但不容易產生鎖表現象,適合于少量數據處理。
3.4 服務器體系結構
ERP硬件配置同MES硬件配置同步設計、實施。如圖3所示為服務器體系結構。兩臺IBM P570小型機分別作為生產環境的應用服務器、數據庫服務器;一臺IBM P550小型機作為測試服務器;IBM存貯為ERP實現MES共享共用,占用不同的存貯空間;一臺IBM3582磁帶機用作備份。服務器與存貯設備通過交換機采用SAN方式進行網絡聯結,以提高IO性能。SAN是存儲區域網(Storage Area Network)的縮寫。SAN的核心在于通過網絡方式進行多主機與多存儲器間的整合和統一訪問。
4 結束語
本文主要以鋼鐵行業的ERP二次開發作為研究對象,利用Oracle ERP系統二次開發所特有的開放性和靈活性,以及Delphi模板技術、PL/SQL強大處理數據功能和改造接口技術,實現ERP與各管理系統的完整集成,并與同步實施的MES進行無縫聯接,使鋼鐵企業的計劃、采購、生產指揮、質量控制、計量、銷售、物流、財務、成本管理等實現完整的全流程信息化管理,達到物流、資金流、信息流的和諧統一,實現“產銷一體化、財務業務一體化、數據集中管理”[6],所產生的效果突出。
參考文獻:
[1] 羅鴻.ERP原理、設計、實施[M].電子工業出版社,2005.
[2] 牛光濤等.Delphi6.0網絡實例編程[M].中國水利水電出版社,1995.
[3] 陳維軍,王蕾等譯.Oracle 9i PL/SQL 程序設計[M].機械工業出版社,2002.
[4] Dogglas Scherer等.Oracle9i數據庫開發技術與技巧[M].機械工業出版社,1995.
[5] 郭振斌,黃業清.Delphi高級界面特效制作百例[M].中國電力出版社,1996.
[6] 楊建青,劉海青,張朝輝,制造型企業管理信息化技術研究[J].工業控制計算機,2003.16(1).