摘要:國內外的各種ERP系統(tǒng)已經(jīng)在市場上運行了十幾年,一些企業(yè)通過運用ERP系統(tǒng),在企業(yè)的物料管理、庫存控制、生產(chǎn)計劃等生產(chǎn)經(jīng)營、管理和營銷方面取得了顯著的經(jīng)濟效益,從而對企業(yè)的管理現(xiàn)代化建設產(chǎn)生了很大的意義。我公司運用的ERP系統(tǒng)是通過PB與ORACLE實現(xiàn)的。PB是一個數(shù)據(jù)庫前端開發(fā)工具,它是完全按照客戶/服務器體系構造而開發(fā)制定的,與應用對象對應,實現(xiàn)圖形化環(huán)境的數(shù)據(jù)庫前端開發(fā)工具。ORACLE數(shù)據(jù)庫作為大型數(shù)據(jù)庫管理系統(tǒng),其強大而完善的數(shù)據(jù)庫管理功能使其成為IT業(yè)界矚目的焦點。
關鍵詞:ERP;PB開發(fā)工具;ORACLE數(shù)據(jù)庫
一、引言
ERP是一種可以提供跨地區(qū)、跨部門、甚至跨公司整合實時信息的企業(yè)管理信息系統(tǒng)。它在企業(yè)資源最優(yōu)化配置的前提下,整合企業(yè)內部主要或所有的經(jīng)營活動,包括財務會計、管理會計、生產(chǎn)計劃及管理、物料管理、銷售與分銷等主要功能模塊,以達到效率化經(jīng)營的目標。ERP充分采用了計算機和網(wǎng)絡通信技術的優(yōu)秀功能。
ERP系統(tǒng)除了已經(jīng)普遍采用的諸如圖形用戶界面技術(GUI)、SQL結構化查詢語言、關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)、面向對象技術(OOT)、第四代語言/計算機輔助軟件工程、客戶機/服務器和分布式數(shù)據(jù)處理系統(tǒng)等等技術之外,還要實現(xiàn)更為開放的不同平臺相互操作,采用適用于網(wǎng)絡技術的編程軟件,加強了用戶自定義的靈活性和可配置性功能,以適應不同行業(yè)用戶的需要。在眾多的優(yōu)秀軟件中我們采用了客戶機/服務器體系數(shù)據(jù)庫開發(fā)工具PB及高端數(shù)據(jù)庫ORACLE。
二、PB與ORACLE特點與優(yōu)勢
PB與ORACLE的簡述:Power Builder是著名的數(shù)據(jù)庫應用開發(fā)工具,采用可視化技術面向對象,在可視化條件下利用Power Builder,使我們迅速方便地利用后臺服務器數(shù)據(jù)庫中數(shù)據(jù)建立設計出所需應用程序。
PowerBuilder顯著的特點有以下幾點:
1.PowerBuilder對當前常用的大部分關系數(shù)據(jù)庫管理系統(tǒng)都可支持,PowerBuilder應用程序對數(shù)據(jù)庫訪問基本采用國際化標準數(shù)據(jù)庫查詢語言SQL,所以基于PowerBuilder開發(fā)的應用程序是獨立于服務器上的數(shù)據(jù)庫管理系統(tǒng)的。PowerBuilder的工作方式與和大多數(shù)的WINDOWS應用程序一樣屬于事件驅動方式?jīng)]有固定的流程的程序運行,程序的代碼是為各種可能發(fā)生的事件而編寫,開始運行程序時,其可以接受來自,用戶,系統(tǒng)以及其它應用程序觸發(fā)的事件,然后反饋相應的事件代碼。事件驅動的工作方式和面向對象技術密切相關,而PowerBuilder應用程序使用過程中,程序界面中的各種可視化對象也就是發(fā)生的事件。
2.PowerBuilder是面向對象的開發(fā)工具,各種視屏界面應用程序中常見的菜單、控件、窗口等都只是一個個的對象。我們還可以在PowerBuilder中創(chuàng)建自己的用戶對象。而且PowerBuilder全面支持對面向對象方法中的各種技術,我們可以利用面向對象方法中的對象的多態(tài)性、繼承性、封裝性等特點,讓我們的應用程序具備更大的可擴展性和可重用性。同時PowerBuilder有自己的編程語言POWERSCRIPT,可提供最基本的流程控制語句以及幾百個函數(shù)來控制各種對象和提供如OLE,DDE等不同方面的支持。我們也可以自己定義函數(shù),完成特定事件處理。PowerBuilder基本內容就是PowerBuilder提供的各種類型函數(shù)模塊。
3.PowerBuilder數(shù)據(jù)窗口對象的概念。PowerBuilder中有一種對象類型即數(shù)據(jù)窗口對象,數(shù)據(jù)窗口對象與其它對象不同的是專門服務于后臺的數(shù)據(jù)庫訪問,我們在數(shù)據(jù)窗口對象定義了數(shù)據(jù)的顯示風格和數(shù)據(jù)來源,從而我們就可以把全部精力完全放在應用程序中。如果需要,只要對數(shù)據(jù)窗口對象進行修改就可以使用數(shù)據(jù)庫中不同的數(shù)據(jù)。在數(shù)據(jù)窗口對象PowerBuilder中提供了非常豐富的數(shù)據(jù)顯示方式,用以滿足各種不同的數(shù)據(jù)需要。
ORACLE數(shù)據(jù)庫是一種大型數(shù)據(jù)庫系統(tǒng),一般應用于商業(yè),政府部門,它的功能很強大,能夠處理大批量的數(shù)據(jù),在網(wǎng)絡方面也用的非常多。Oracle數(shù)據(jù)庫基于“客戶端/服務器”(Client/Server)的模式結構。服務器系統(tǒng)負責管理各種操作數(shù)據(jù)和各種數(shù)據(jù)信息的活動。其用來接收用戶信息,向“服務器端”發(fā)送用戶請求??蛻舳说膽贸绦蛑饕獔?zhí)行與用戶進行交互的活動。Oracle數(shù)據(jù)庫的特性如下:(1)支持大事務量、多用戶的事務處理數(shù)據(jù),同時完整性和安全性具有有效控制;(2)支持分布式數(shù)據(jù)處理;(3)可移植性很強。
Oracle數(shù)據(jù)庫包括Oracle數(shù)據(jù)庫服務器和客戶端
Oracle Server提供全面的、集成的和開放的信息管理方法。一個 Oracle DB和一個 Oracle Server實例組成一個Server體系。它提供數(shù)據(jù)存儲透明機制和場地自治性(Site Autonomy),這就實現(xiàn)了數(shù)據(jù)存儲的透明性。每個 Oracle數(shù)據(jù)庫對應唯一的一個實例名SID,一般Oracle數(shù)據(jù)庫服務器啟動后,至少會有幾個用戶,具體如下:1.Internal,其并不是一個真實的用戶名,是具有SYSDBA優(yōu)先級的Sys用戶的別名,由DBA用戶來使用并完成數(shù)據(jù)庫的管理任務,其中包括啟動和關閉數(shù)據(jù)庫;2.Sys,是一個 DBA的用戶名,它具有最大的數(shù)據(jù)庫操作執(zhí)行權限;3.System,它是一個權限僅次于 Sys用戶的 DBA用戶名。
在客戶端為數(shù)據(jù)庫用戶操作端,由應用、工具、SQL* NET組成,用戶操作數(shù)據(jù)庫時,必須連接到一服務器,該數(shù)據(jù)庫稱為本地數(shù)據(jù)庫(Local DB)。在網(wǎng)絡環(huán)境下其它服務器上的 DB稱為遠程數(shù)據(jù)庫(Remote DB)。用戶要存取遠程 DB上的數(shù)據(jù)時,必須建立數(shù)據(jù)庫鏈。
三、PB與ORACLE的運用
(一)PB中的幾個常見應用
1.數(shù)據(jù)的轉儲和調入功能的實現(xiàn)。安全性部分是一個數(shù)據(jù)處理系統(tǒng)及整個系統(tǒng)的關鍵部分,對一些需PowerBuilder要長期保存的歷史數(shù)據(jù)來說更是必不可少。PowerBuilder中ImportFile()、SaveAs()兩函數(shù)可以實現(xiàn)有這方面需要的操作,而dwcontrol.SaveAs()可以提供多種數(shù)據(jù)的存儲格式。
2.PB的數(shù)據(jù)管道,數(shù)據(jù)管道是一個很有用的工具,利用它可以創(chuàng)建和復制數(shù)據(jù)表結構和數(shù)據(jù),也可以在不同數(shù)據(jù)庫中轉移數(shù)據(jù)表。
3.窗體時用戶與計算機交互的主要工具,在PB中可以創(chuàng)建一下幾種窗體:主窗體、彈出式窗體、子窗體、應答窗體以及多文檔框架窗體
4.控件在一個應用程序中主要用來與用戶進行交互操作,PB提供了大量的控件,可以很輕松的完成復雜而美觀的界面和功能設計,例如:按鈕控件、復/單選框控件、標簽控件、圖像控件、群組控件等等。
5.SQL語句的實際操作使用。用PowerBuilder編程時,經(jīng)常需要使用SQL語句用來對數(shù)據(jù)庫進行操作,特別注意SQL語言語句使用中格式要求非常嚴格,同時使用SQL語句之前,必須要用Connect與數(shù)據(jù)庫連接,每一條SQL語句結尾必須為“;”字符。
6.Datawindow數(shù)據(jù)窗口在PB中不但是連接服務器與客戶端的橋梁,同時也是用來瀏覽、插入、刪除和查詢數(shù)據(jù)等操作的舞臺。使用數(shù)據(jù)而不需要編寫復雜的SQL語句,即可實現(xiàn)對數(shù)據(jù)庫中的數(shù)據(jù)進行操作。數(shù)據(jù)窗口在PB中是功能最強大的控件。創(chuàng)建數(shù)據(jù)窗口的步驟主要有3步。第一步是創(chuàng)建數(shù)據(jù)窗口對象并為數(shù)據(jù)窗口選擇數(shù)據(jù)源。第二步是選擇數(shù)據(jù)窗口的顯示風格,根據(jù)用戶需求以及數(shù)據(jù)庫量的大小選擇數(shù)據(jù)窗口的顯示格式。第三步可以對設置的數(shù)據(jù)窗口進行確認或修改等操作,或向數(shù)據(jù)窗口中添加其他不同的對象。
(二)ORACLE中常見應用
1.SQL語句是ORACLE用的語言工具,SQL是一種非過程化語言,它一次處理的是一個記錄集合,對數(shù)據(jù)提供自動導航。下面分別介紹一下查詢中用的SQL語句,數(shù)據(jù)操作中用的SQL語句、表操作中的SQL語句及用戶角色管理的SQL語句。SQL查詢:SELECT [DISTINCT/ALL]FROM[模式名][WHERE條件]
SQL操作:INSERT INTO 表名VALUES(值1,--)
SQL表操作:CREATE TABLE[表名] {TABLESPACE}[STORAGE][ENABLE][ AS QUERY]
2.ORACLE數(shù)據(jù)庫有兩種備份模式:ARCHIVELOG和NOARCHIVELOG.四種數(shù)據(jù)庫備份的方案:ORACLE恢復管理器、使用ORACLE輸入/輸出實用工具、使用ORACLE備份管理器、使用ORACLE系統(tǒng)管理器。
3.模式管理器是最完整其應用最廣泛的ORACLE數(shù)據(jù)庫系統(tǒng)管理工具,模式管理器一層次結構列表形式管理蔟、約束、數(shù)據(jù)庫鏈接、函數(shù)、索引、分區(qū)、權限、過程、隊列、刷新組、序列、快照日志、快照、同義詞、表、觸發(fā)器、視圖以及這些對象之間的關系。
4.ORACLE的主要工具:ORACLE ENTERPRISE MANAGER、存儲管理器、SQL*PLUS、NET8、ACCESS數(shù)據(jù)庫遷移助手、數(shù)據(jù)庫助手、性能監(jiān)測器。其中,ORACLE企業(yè)管理器主要工具有:實例管理器、模式管理器、安全管理器、SQL工作單、存儲管理器、數(shù)據(jù)管理器、備份管理器和系統(tǒng)管理員工具欄。ORACLE自帶了兩個工具一是SQL*PLUS一是SQL工作單,在ORACLE中查看和操作Oracle中的數(shù)據(jù)的一個直接方法是寫SQL代碼并使用SQL*PLUS直接在數(shù)據(jù)庫中運行。NET8存在于ORACLE服務器和客戶機之間的軟件層,使得服務器和客戶機在網(wǎng)絡上互相通訊,建立對話,傳輸數(shù)據(jù),并維護客戶到服務器的連接和數(shù)據(jù)庫數(shù)據(jù)的完整性。
四、PB與ORACLE的連接運用
打開PB運行界面,PB提供了與ORACLE連接的專用接口。選擇ORACLE單擊“CONNECT”按鈕后,開始與ORACLE建立了連接。在PB中我們可以對ORACLE中的數(shù)據(jù)查詢,建表,插入等等操作。譬如我們需要通過PB操作數(shù)據(jù)庫中的各表。首先我們需要創(chuàng)建數(shù)據(jù)窗口,連接上放數(shù)據(jù)的ORACLE數(shù)據(jù)庫,然后根據(jù)需要創(chuàng)建不同顯示風格的數(shù)據(jù)窗口。
創(chuàng)建好數(shù)據(jù)窗口后,可以對所連接的數(shù)據(jù)庫進行編輯。例如增加一些界面元素:文本、圖形、圖像,設置數(shù)據(jù)表中數(shù)據(jù)字段的屬性等等操作,很直觀很簡單。
通過PB可以無需編程就對數(shù)據(jù)庫中的數(shù)據(jù)進行編輯,也可通過ORACAL本身支持的SQL語言進行一些編輯、查詢。
create aaaa as
the_seq_no wo_detail.seq_no%type;
the_order_no wo_detail.order_no%type;
the_qty_get wo_detail.qty_get%type;
cursor bb is
select seq_no, order_no ,qty_get from wo_detail
where work_id = '1013000'
and status_id='5';
update wo_detail
set time_run = the_time_run,
time_setup = the_time_setup
where work_id = the_work_id
and order_no in (select order_no from wo_head where item_no = the_item_no)
and seq_no = the_seq_no;
以上包括了三個語句一個是查詢語句SELECT [DISTINCT/ALL]FROM[模式名][WHERE條件]。一個是創(chuàng)建表語句CREATE語句。一個是修改數(shù)據(jù)的UPDATE語句。
作為系統(tǒng)管理員,會經(jīng)常用到PB與ORACLE去處理數(shù)據(jù),這兩個軟件都是非常優(yōu)秀的關于數(shù)據(jù)庫的軟件。只有把這兩種語言用好才可能保證ERP的正常運行。
(作者單位:山西經(jīng)緯合力機械制造有限公司)