一, 什么是ABAP:
定義:ABAP=Advanced business application program
SAP最初開發(fā)ABAP/4語言僅為內(nèi)部使用,為應(yīng)用程序員提供優(yōu)化的工作環(huán)境。經(jīng)過不斷的改進(jìn)和修改以滿足商業(yè)領(lǐng)域的需要。現(xiàn)在, ABAP/4 已成為SAP開發(fā)所有自己的應(yīng)用程 序的僅有工具。
ABAP/4 是第四代支持結(jié)構(gòu)化程序設(shè)計(jì)的語言。它合并了所有通常的控制結(jié)構(gòu)和模塊化概念。同時(shí),它還支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,這就為ABAP的應(yīng)用開發(fā)開拓了更廣闊的空間。而且,它還可以實(shí)現(xiàn)和其他編程語言的合成,如VB,JAVA,C/C++等。
二, ABAP的一些特性:
1. ABAP包括:
2. ABAP/4 支持商業(yè)數(shù)據(jù)類型和操作。您可以用特殊日期和時(shí)間字段進(jìn)行計(jì)算。 系統(tǒng)會(huì)自動(dòng)執(zhí)行必需的類型轉(zhuǎn)換。
3. ABAP/4 包含一個(gè)叫 Open SQL 的SQL子集。用 Open SQL,您可以讀取和訪問數(shù)據(jù)庫(kù)表,與所用的數(shù)據(jù)庫(kù)系統(tǒng)無關(guān)
4. ABAP/4 允許您定義和調(diào)用子程序。也可以調(diào)用其他程序的子程序 。參數(shù)能夠以各種方式從子程序傳遞或傳遞到子程序。
5. ABAP/4 包含一種特殊子程序,叫做功能模塊。您可以在中央庫(kù)中創(chuàng)建和維護(hù)功能模塊。在調(diào)用程序和子程序之間功能模塊有一個(gè)明確定義的數(shù)據(jù)接口。它們能夠以調(diào)用程序的獨(dú)立模式進(jìn)行分別測(cè)試。
6. ABAP/4 報(bào)表程序用于分析數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。這種分析的結(jié)果可以顯示在屏幕上或發(fā)送到打印機(jī)上。邏輯數(shù)據(jù)庫(kù)支持報(bào)表程序。
7. ABAP/4將對(duì)話程序組織為包含對(duì)話模塊的模塊池。每個(gè)動(dòng)態(tài)程序 (由一個(gè)屏 幕及其流邏輯組成的“ 動(dòng)態(tài)程序” )都基于一個(gè)ABAP/4 對(duì)話程序。流邏輯包含對(duì) ABAP/4對(duì)話模塊的調(diào)用。
三, 和ABAP相關(guān)聯(lián)的SAP BASIS結(jié)構(gòu):
SAP R/3系統(tǒng)是一個(gè)典型的三層架構(gòu)系統(tǒng),包括:
表現(xiàn)層(Presentation Layer):這是SAP用戶和R/3系統(tǒng)交流的接口,用戶在這一層對(duì)SAP系統(tǒng)進(jìn)行操作。這層將用戶的命令或者操作傳送給R/3系統(tǒng),然后系統(tǒng)進(jìn)行相應(yīng)的處理后把數(shù)據(jù)返還給用戶。
應(yīng)用層(Application layer):這層包括一個(gè)或者多個(gè)應(yīng)用服務(wù)器和一個(gè)消息服務(wù)器。每一個(gè)應(yīng)用服務(wù)器包括一系列服務(wù)以便運(yùn)行應(yīng)用程序。所有的服務(wù)分置在這些應(yīng)用服務(wù)器之中,其實(shí)用戶需要的只是其中的一個(gè)應(yīng)用服務(wù)器,多個(gè)服務(wù)器之間傳遞信息以決定用戶到底需要的是哪個(gè)服務(wù)器的服務(wù)。
數(shù)據(jù)庫(kù)層(Database layer):這里就是SAP系統(tǒng)的核心,存放了所有SAP系統(tǒng)的數(shù)據(jù)。
SAP支持很多數(shù)據(jù)庫(kù)系統(tǒng),包括:Microsoft SQL Server,ORACLE,INFORMIX,DB2等主流數(shù)據(jù)庫(kù)系統(tǒng)。
四, ABAP的第一個(gè)程序:
好了,看了這么多,自己都暈了,還是言歸正傳來做開發(fā)吧。
首先要介紹一下事務(wù)代碼(Transaction Code)的概念:
在SAP中,每一個(gè)功能基本上都對(duì)應(yīng)了一個(gè)事務(wù)代碼,你可以輸入相應(yīng)的事務(wù)代碼來執(zhí)行相應(yīng)的功能,事務(wù)代碼在SAP MENU下面的輸入框中輸入。
第一個(gè)程序,HELLO WORLD:
1. 用ABAP REPORT來實(shí)現(xiàn):
很簡(jiǎn)單:(1.進(jìn)入SAP系統(tǒng)—〉SE38 。
(2.輸入程序名z_hello,選擇Create 。
注意:自己開發(fā)的程序一定要用Z或者Y開頭,這是因?yàn)镾AP在升級(jí)的時(shí)候不會(huì)覆蓋這些程序。
(3.這時(shí)會(huì)彈出一個(gè)對(duì)話框,輸入TITLE,選擇Type為Executable program 。
(4.然后又會(huì)彈出一個(gè)對(duì)話框,讓你選擇開發(fā)類(Package),如果你有自己的開發(fā)類的話,輸入就可以,沒有直接點(diǎn)下面的Local Object 。
(5.ABAP編輯器出現(xiàn)了,輸入代碼:
“WRITE: 'HELLO,WORLD!' .” 。
(6.按Ctrl+F2:語法檢查;Ctrl+F3:激活;F8:執(zhí)行。
到這里,ABAP的第一個(gè)程序就寫出來了,好簡(jiǎn)單?。。?
2. 用 ABAP DIALOG來實(shí)現(xiàn):
比較麻煩,在這里詳細(xì)的介紹怎么建立SCREEN,以后就不介紹了
1. 建立一個(gè)DIALOG程序,步驟同上,只不過在Type里選擇Module pool,
假設(shè)程序名為:Z_SCREEN
2. 執(zhí)行SE51,在Program里輸入程序名稱:Z_SCREEN;
在screen number里輸入屏幕的號(hào)碼:9000
然后點(diǎn)Create
3. 在short description中輸入你的描述:hello world screen
4. 點(diǎn)layout,調(diào)出屏幕編輯器,建立一個(gè)標(biāo)簽,輸入hello world
5. 點(diǎn)激活,或者Ctrl+F3
6. 執(zhí)行SE93:建立事務(wù)代碼:輸入z_hello,點(diǎn)Create,會(huì)出現(xiàn)對(duì)話框,輸入short text,選擇Program and screen,然后輸入你建立的程序名以及屏幕號(hào),
這里是Z_SCREEN,9000
7. 點(diǎn)保存,然后會(huì)出現(xiàn)對(duì)話框,選擇LOCAL Object
好了,執(zhí)行z_hello,看到了吧,不過這個(gè)程序還沒有退出的功能,后面會(huì)慢慢加上去的。
最后,綜述:
ABAP編程不是簡(jiǎn)單的編程,SAP中最主要的語言,一個(gè)是ABAP,一個(gè)是JAVA
ABAP以后的路應(yīng)該往OO方向發(fā)展,
還有JAVA方面,中國(guó)適應(yīng)的太少,使用SAP集成的太多,什么ITS,等等,最新的BSP技術(shù),也是以后ABAPER需要了解和掌握的。
開發(fā)包括幾大部分,最簡(jiǎn)單的REPORT和DIALOG,還有很多其他的,比如WEB,WORKFLOW,BAPI,以及和其他PC系統(tǒng)的接口。
REPORT最簡(jiǎn)單的,最重要的,提高代碼執(zhí)行效率。(SD的報(bào)表是多多的,表也是大大的,月報(bào)表是運(yùn)行慢慢的,以后發(fā)展的路就是提高SD報(bào)表運(yùn)行的效率)
DIALOG不常用的,除非你需要開發(fā)自己的一套系統(tǒng),只是使用SAP平臺(tái)。
WORKFLOW要和HR相結(jié)合的。所以你是需要理解HR的東西的
WEB東西就是更多了,EP只是一個(gè)平臺(tái),EP不能滿足你所有的功能。最新的BSP技術(shù)是全新的,中國(guó)好象沒有幾家在用的。
BW是個(gè)模塊,嚴(yán)格上來說,是不屬于ABAPER的范圍。