百科解釋
目錄·歷史·實現(xiàn)·ABAP程序的類型·ABAP Workbench ABAP (高級商務應用編程)是一種高級編程語言,由德國軟件公司SAP開發(fā)。目前,和最近引入的Java一起,ABAP主要用作SAP的web應用服務器編程。這個服務器軟件是SAP NetWeaver平臺的一部分,這個平臺主要用來開發(fā)商務應用。ABAP的語法和COBOL有些像。 歷史 ABAP作為一種面向特定應用的第四代編程語言最早在20世紀80年代開發(fā)。它原本是作為一種報表語言應用在SAP R/2上,這是一個幫助大型公司在大型機上建立原材料管理和財務會計管理商務應用的平臺。ABAP本來也是德語Allgemeiner Berichtsaufbereitungsprozessor的縮寫,意思是“通用報表預處理器”。ABAP第一次引入了“邏輯數(shù)據(jù)庫”的概念,它在基本的數(shù)據(jù)庫層提供了更高級的抽象。 ABAP編程語言最初被SAP的開發(fā)者用于開發(fā)SAP R/3平臺。但它也被設計讓SAP的客戶用于增強SAP的軟件應用–客戶可以用ABAP編程開發(fā)自定義的報表和界面。這個編程語言對于程序員來說很容易學習但并不是一個非程序設計人員可以直接使用的工具。編寫ABAP程序需要良好的編程技巧和關系數(shù)據(jù)庫方面的知識,如果知道面向?qū)ο笤O計的概念更好。 雖然SAP最早于1992年就發(fā)布了R/3,但ABAP現(xiàn)在仍可以用于為R/3系統(tǒng)編寫程序。在20世紀90年代,隨著計算機硬件的發(fā)展,越來越多的SAP的應用軟件和系統(tǒng)都用ABAP來實現(xiàn)。一直到2001年,幾乎所有的基本功能都是由ABAP編程實現(xiàn)的。在1999年,SAP在發(fā)布R/3 4.6版的同時也發(fā)布了一個對ABAP的面向?qū)ο髷U展,叫做ABAP Objects。 SAP最新的開發(fā)平臺NetWeaver同時支持ABAP和Java。 實現(xiàn) ABAP程序運行在哪里? 所有的ABAP程序都駐留在SAP數(shù)據(jù)庫里。他們不像Java或者C++程序那樣存儲在一個單獨的外部文件里,在數(shù)據(jù)庫里所有的ABAP代碼都以兩種形式存在:可以用ABAP workbench查看和編輯的源代碼和由ABAP運行環(huán)境載入和解釋的“編譯”代碼(技術上更精確的說是“產(chǎn)生”代碼)。當一段ABAP源代碼第一次被調(diào)用時會隱含的進行代碼產(chǎn)生。如果稍后源代碼改變了或者程序訪問的對象改變了(比如數(shù)據(jù)庫的表添加了新的字段),產(chǎn)生代碼就會自動重新產(chǎn)生。 ABAP程序在運行時系統(tǒng)(SAP核心的一部分)的控制下運行在SAP應用服務器里.運行時系統(tǒng)負責處理ABAP語句,控制顯示的邏輯序列和響應事件(比如,用戶按一下屏幕上的一個按鈕)。ABAP運行時系統(tǒng)的一個關鍵組件是數(shù)據(jù)庫接口,它把ABAP的數(shù)據(jù)庫無關語句(“開放SQL”)變成底層數(shù)據(jù)庫管理系統(tǒng)可以理解的語句(“本地SQL”)。數(shù)據(jù)庫接口處理ABAP程序和關系數(shù)據(jù)庫之間所有的通信;它也有一些其他的作用,比如把經(jīng)常訪問的數(shù)據(jù)緩存到應用服務器本地的存儲器里。 SAP 系統(tǒng)和風景帶 所有的SAP數(shù)據(jù)和軟件都存在/運行于SAP系統(tǒng)的環(huán)境中。這個系統(tǒng)包括一個中心關系數(shù)據(jù)庫和一個或多個訪問該數(shù)據(jù)庫里的數(shù)據(jù)和程序的應用服務器(“實例”)。一個SAP系統(tǒng)至少包括一個實例,但可以更多,主要看大小和性能上的需求。在一個多實例系統(tǒng)中,負載平衡機制來保證負載比較平均的分攤到各個可用的應用服務器上。 典型安裝的Web應用服務器 (風景帶)包括三個系統(tǒng):一個用于開發(fā),一個用于測試和質(zhì)量保證,一個用于生產(chǎn)。這個風景帶可以包含更多的系統(tǒng),比如一個單獨用于單元測試和產(chǎn)前測試的系統(tǒng),或者也可以不完全包含這三個系統(tǒng),比如只有開發(fā)和生產(chǎn),沒有單獨的質(zhì)量保證系統(tǒng); 但三個是最常見的。 ABAP程序的創(chuàng)建和首次運行都在開發(fā)系統(tǒng)里。然后被分發(fā)到風景帶的其他系統(tǒng)里。這些都是在變化和傳輸系統(tǒng)(CTS)的控制下進行的。CTS是一個負責并發(fā)控制(比如防止兩個開發(fā)人員同時修改同一段代碼),版本管理和在質(zhì)量保證和產(chǎn)品系統(tǒng)上部署程序的系統(tǒng)。 Web應用服務器有三層組成:數(shù)據(jù)庫層,應用層和表現(xiàn)層。這些層可以在同一臺或不同的物理機器上運行。數(shù)據(jù)庫層包括關系數(shù)據(jù)庫及相關軟件。應用層包括系統(tǒng)的實例。所有應用相關的過程,包括業(yè)務事務和ABAP開發(fā),都運行在應用層。表現(xiàn)層處理和系統(tǒng)的用戶之間的交互。對ABAP應用服務器的在線訪問可以通過專用圖形接口SAPGUI或者瀏覽器進行。 ABAP程序的類型 ABAP有兩種不同類型的程序: 報表程序 報表程序遵循一個相對簡單的編程模型,用戶可選的輸入一系列參數(shù)(比如,在一個數(shù)據(jù)子集上的選擇),然后程序根據(jù)輸入的參數(shù)以一個交互式列表的形式產(chǎn)生一張報表。報表程序的輸出之所以是交互式的是因為它不是一個被動的顯示;它允許用戶使用ABAP語言通過深入挖掘功能以獲得某個數(shù)據(jù)更細節(jié)的視圖,或者通過菜單命令觸發(fā)更深入的處理,比如按不同的方式排序數(shù)據(jù)或者按某種選擇條件過濾數(shù)據(jù)。這種表現(xiàn)報表的方法有很大的優(yōu)勢,特別是對于那些需要處理大量信息但又要以很靈活的方式來檢查這些信息的用戶,這樣他們就不會再被限制到一種固定的顯示形式或者大小上無法管理的列表形式的報表中了。這種方便的開發(fā)交互式報表的方式是ABAP語言的一大重要閃光點。 “報表”這個詞有時會給人一種誤解,其實創(chuàng)建數(shù)據(jù)可以在底層數(shù)據(jù)庫修改而不僅僅是只讀的報表程序是完全可以的。 在線程序 在線程序 (也叫模塊池)不產(chǎn)生列表。這些程序使用一系列的屏幕來定義更復雜的用戶交互模式。術語“屏幕”是指用戶看到的實際的物理圖像。每個屏幕還有一個“流邏輯”;這是指由屏幕觸發(fā)的ABAP代碼,比如初始化屏幕,響應用戶請求的應答和控制模塊池的屏幕之間的序列的邏輯。每個屏幕都有自己的流邏輯,每個流邏輯都分為“PBO” (輸出前處理)和“PAI” (輸入后處理)部分。在SAP的文檔中,術語“dynpro” (動態(tài)程序)用來表示這種屏幕和流邏輯的結合。 在線程序并不是通過名字調(diào)用的,而是和一段事務代碼聯(lián)系在一起。用戶可以通過自定義,角色依賴,事務菜單來觸發(fā)它們。 除了報表和在線程序外,以類庫,功能庫和子程序池的形式開發(fā)共享代碼段也是可以的。 ABAP Workbench ABAP Workbench有幾個不同的工具用于編輯容器對象。這些工具可以為你提供涵蓋整個軟件開發(fā)周期各階段的輔助。 創(chuàng)建和編輯容器對象的最重要的工具有: ABAP Editer:編寫程序代碼 ABAP Dictionary:處理數(shù)據(jù)庫表定義,檢索全局類型 Menu Painter:設計用戶界面(包括菜單欄,標準工具欄,應用欄,配置功能鍵) Screen Painter:為用戶對話框設計屏幕(動態(tài)程序) Function Builder:顯示和處理功能模塊 Class Builder:顯示和處理ABAP對象類
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團隊博客 | 免責聲明 | 關于詞典 | 幫助