必威电竞|足球世界杯竞猜平台

abap
來源:互聯(lián)網(wǎng)

ABAP((Advanced Business Application Programming))是一種高級企業(yè)應(yīng)用編程語言,起源于20世紀(jì)80年代。經(jīng)過不斷的發(fā)展,現(xiàn)在的版本為ABAP/4,SAP R/3的應(yīng)用程序就是用ABAP/4編寫的。

綜述

ABAP/4是面向?qū)ο笳Z言。它支持封裝性和繼承性。封裝性是面向?qū)ο蟮幕A(chǔ),而繼承性則是建立在封裝性基礎(chǔ)上的重要特性。ABAP/4具有事件驅(qū)動(dòng)的特性。

ABAP/4和COBOL具有類似之處。

ABAP/4適合生成報(bào)表。

ABAP/4支持對數(shù)據(jù)庫的操作。

SAP系統(tǒng)最初開發(fā)ABAP/4(高級商業(yè)應(yīng)用程序設(shè)計(jì))語言僅為內(nèi)部使用,為應(yīng)用程序員提供優(yōu)化的工作環(huán)境。經(jīng)過不斷的改進(jìn)和修改以滿足商業(yè)領(lǐng)域的需要。ABAP/4已成為SAP開發(fā)所有自己的應(yīng)用程序的僅有工具。

SAP客戶用ABAP/4進(jìn)行其自身開發(fā)。這樣的開發(fā)對R/3標(biāo)準(zhǔn)解決方案適應(yīng)特殊問題非常重要。ABAP/4開發(fā)工作平臺(tái)包含所有用于創(chuàng)建和維護(hù)ABAP/4程序的工具。

ABAP/4的可解釋特性使其易于生成、測試并運(yùn)行程序的中級版本,以便將來生成最終版本。此過程也叫做早期原形處理,意味著您不必丟棄中級版本。

ABAP/4是第四代支持結(jié)構(gòu)化程序設(shè)計(jì)的語言。它合并了所有通常的控制結(jié)構(gòu)和模塊化概念。

- 帶有各種類型和結(jié)構(gòu)的聲明數(shù)據(jù)的聲明元素

- 數(shù)據(jù)制作的操作元素

- 控制程序流的控制元素

- 反應(yīng)外部事件的事件元素

· ABAP/4支持多種語言。文本摘要(例如,標(biāo)題、頁眉和其他文本)將根據(jù)程序代碼分別存儲(chǔ)。您可以隨時(shí)在不改變程序代碼的情況下更改、轉(zhuǎn)換和維護(hù)這些文本摘要。

· ABAP/4支持商業(yè)數(shù)據(jù)類型和操作。您可以用特殊日期和時(shí)間字段進(jìn)行計(jì)算。系統(tǒng)會(huì)自動(dòng)執(zhí)行必需的類型轉(zhuǎn)換。

· ABAP/4提供一系列功能處理字符串。

· ABAP/4包含一個(gè)叫OpenSQL的SQL子集。用OpenSQL,您可以讀取和訪問數(shù)據(jù)庫表,與所用的數(shù)據(jù)庫系統(tǒng)無關(guān)。

· ABAP/4允許您定義和處理內(nèi)部表,該表只在運(yùn)行程序時(shí)存在。內(nèi)部表使其更容易處理數(shù)據(jù)表,并幫助使用程序中的復(fù)雜數(shù)據(jù)結(jié)構(gòu)

· ABAP/4允許您定義和調(diào)用子程序。也可以調(diào)用其他程序的子程序。參數(shù)能夠以各種方式從子程序傳遞或傳遞到子程序。

· ABAP/4包含一種特殊子程序,叫做功能模塊。您可以在中央庫中創(chuàng)建和維護(hù)功能模塊。在調(diào)用程序和子程序之間功能模塊有一個(gè)明確定義的數(shù)據(jù)接口。它們能夠以調(diào)用程序的獨(dú)立模式進(jìn)行分別測試。

這里有兩種主要的ABAP/4程序類型:

· 報(bào)表程序

報(bào)表程序用于分析數(shù)據(jù)庫表中的數(shù)據(jù)。這種分析的結(jié)果可以顯示在屏幕上或發(fā)送到打印機(jī)上。邏輯數(shù)據(jù)庫支持報(bào)表程序。邏輯數(shù)據(jù)庫是特殊的ABAP/4程序,使開發(fā)者不必編碼所有的數(shù)據(jù)庫訪問。

· 對話程序

將對話程序組織為包含對話模塊的模塊池。每個(gè)動(dòng)態(tài)程序(由一個(gè)屏幕及其流邏輯組成的“動(dòng)態(tài)程序”)都基于一個(gè)ABAP/4對話程序。流邏輯包含對ABAP/4對話模塊的調(diào)用和熟練操作。

發(fā)展歷史

了解一下ABAP的發(fā)展歷史是必要的,ABAP產(chǎn)生的最初的目的是用以生成簡單打印報(bào)表程序,我們知道SAP系統(tǒng)最初是為解決財(cái)務(wù)實(shí)時(shí)數(shù)據(jù)處理問題的,ABAP(Advanced Business Application Programming->;高級業(yè)務(wù)應(yīng)用編程語言)用于編寫SAP AG的幾乎全部產(chǎn)品源代碼。嚴(yán)格地講,ABAP/4不僅僅是一個(gè)開發(fā)工具,而且是一套完整的client/server開發(fā)環(huán)境,這很好理解,微軟的Visiual Studio是一開發(fā)環(huán)境,VB,VC++等是開發(fā)工具.ABAP開發(fā)環(huán)境包含支持程序開發(fā)的一些函數(shù)和包等。

SAP系統(tǒng)開發(fā)環(huán)境的三層(多層)概念也不新鮮,比如在安裝SAP時(shí)也可將DB instance安在一臺(tái)server,Central instance在另一臺(tái)所謂的Application server(我想這應(yīng)是相關(guān)SAP基礎(chǔ)系統(tǒng)包括各種應(yīng)用程序所在),而通常客戶端安裝的SAP Logon Front End,SAP會(huì)話管理器等是所謂的表示層,它通過TCP/IP,SAP演示協(xié)議或RFC和應(yīng)用服務(wù)器進(jìn)行數(shù)據(jù)傳輸,用戶看到的只是處理后的數(shù)據(jù)返回。

和Delphi的三層邏輯相近,在應(yīng)用層包含多個(gè)組件象ABAP開發(fā)平臺(tái),身份驗(yàn)證系統(tǒng)管理維護(hù)等用以處理會(huì)話,更新,排隊(duì),網(wǎng)關(guān),數(shù)據(jù)層處理native和Open SQL等(這是從內(nèi)部機(jī)制方面看),SAP系統(tǒng)各模塊應(yīng)用的業(yè)務(wù)邏輯都在應(yīng)用層被處理(從用戶角度)然后結(jié)果被返回。

SAP Logon,表示應(yīng)用服務(wù)器(通常企業(yè)為了節(jié)省成本和方便管理可能會(huì)將應(yīng)用服務(wù)器和數(shù)據(jù)庫安裝在同一起),System number,舉個(gè)實(shí)例,開發(fā)和測試服務(wù)共用一臺(tái)服務(wù)器,開發(fā)使用system number00,而測試使用system number 01,通過system number邏輯地將一臺(tái)physical server邏輯地分成了兩臺(tái)application server。

特征

1.和SAP系統(tǒng)緊密結(jié)合,尤其在開發(fā)報(bào)表方面,坦率地講,除了和SAP集成的好處,.我認(rèn)為ABAP在報(bào)表開發(fā)上比Crystal report Tool要高效簡單。

2.和VB一樣,ABAP是解釋型的,如讀者精通VB,學(xué)習(xí)ABAP應(yīng)該毫不費(fèi)力,倒是既然SAP是企業(yè)管理解決方案,ABAPer必須對企業(yè)管理流程熟悉。

解釋型的另一好處是可以很好跟蹤程序邏輯(使用/H),這對了解業(yè)務(wù)邏輯的實(shí)時(shí)追蹤錯(cuò)誤很有效. 和VB不同的是,VB跟蹤時(shí)允許程序運(yùn)行指針隨意往回或往全拉而ABAP程序卻不行,但是ABAP程序允許在運(yùn)行時(shí)修改變量的值,這是編譯程序不能做到的。當(dāng)然通常編譯比解釋執(zhí)行的速度會(huì)更快。

ABAP程序執(zhí)行并不直接讀取源代碼,而是執(zhí)行內(nèi)部經(jīng)過“生成”的描述,對于ABAP/4字典的修改激活后將觸發(fā)內(nèi)部描述的重新生成,如程序并沒激活就執(zhí)行原版本,或者出現(xiàn)錯(cuò)誤(程序沒激活可能造成ABAP Dumping ABAP)。

3.在對數(shù)據(jù)庫處理方面,除了可直接執(zhí)行SQL(使用native sql,缺點(diǎn)是錯(cuò)誤處理很難控制,相當(dāng)于有開發(fā)環(huán)境將SQL語句直接傳給DB去執(zhí)行),SAP系統(tǒng)在ABAP開發(fā)環(huán)境層還提供了一套Open SQL訪問底層數(shù)據(jù)庫。

4. 程序員都知道Windows平臺(tái)下開發(fā)都支持事件驅(qū)動(dòng),Windows系統(tǒng)本身也支持事件驅(qū)動(dòng),ABAP也提供了事件驅(qū)動(dòng),這表DIALOG編程方面,但是ABAP在此方面并不強(qiáng),而且相對講也比較難于掌握(在后面會(huì)討論)。

5.基于面向?qū)ο蟮娘L(fēng)靡,ABAP在此方面也有相當(dāng)反應(yīng),在SAP強(qiáng)大的軟件包中提供了大量可重復(fù)使用的程序,讀者也可定義類并使用它快速建立新的對象。

6.類似Java,ABAP開發(fā)的程序能運(yùn)行于任何操作系統(tǒng)(Java有Java虛擬機(jī),ABAP也有ABAP processor),多種數(shù)據(jù)庫(比如在ABAP字典中實(shí)現(xiàn)了透明表對各種底層數(shù)據(jù)庫表的映射,這樣在ABAP層看到的透明表就和具體數(shù)據(jù)庫無關(guān)),各種網(wǎng)絡(luò)系統(tǒng)。

命名規(guī)則

當(dāng)創(chuàng)建程序名稱時(shí)請遵循如下規(guī)則:

- 使用至少1個(gè)但不超過8個(gè)字符。

- 不要使用下列字符

- 句點(diǎn)(.)

- 逗號(,)

- 空格()

- 括號'('')'

- 單引號(')

- 雙引號(")

- 等號(=)

- 星號(*)

- 元音變音(_,_,_,_,_,_)和'_'

-百分號(%)和下劃線(_):因?yàn)檫@些符號是SQL的通配符,所以也會(huì)導(dǎo)致問題(參見為在程序中選定行指定條件)。SAP系統(tǒng)建議在程序名稱中不要使用它們。

創(chuàng)建程序名稱時(shí)請遵守這些命名約定:

_ 報(bào)表程序(以列表格式輸出數(shù)據(jù)分析):Yaxxxxxx或Zaxxxxxx。用應(yīng)用程序區(qū)的分類字母替換a。用任何有效字符替換x。注意SAP報(bào)表程序遵守相似的命名約定:Raxxxxxx。

_ 任何其它ABAP/4程序(培訓(xùn)程序或事務(wù)程序):SAPMYxxx或SAPMZxxx。用有效字符替換x。注意標(biāo)準(zhǔn)SAPABAP/4程序遵守相似的命名約定:SAPMaxxx,其中a代表某應(yīng)用程序區(qū)。

程序?qū)傩?/h2>

簡介

程序?qū)傩詻Q定程序?qū)儆谀姆N應(yīng)用程序以及程序所鏈接的邏輯數(shù)據(jù)庫。必須謹(jǐn)慎輸入屬性以便系統(tǒng)能正確處理程序(有關(guān)程序?qū)傩缘脑敿?xì)信息,參見重要的程序?qū)傩裕?59))。

已經(jīng)將名稱分配給程序并選擇“ABAP/4編輯器初始屏幕”上的“創(chuàng)建”時(shí),出現(xiàn)“ABAP/4:程序?qū)傩浴逼聊弧?/p>

操作

1. 在字段“標(biāo)題”中輸入程序標(biāo)題。選擇描述程序功能的標(biāo)題。系統(tǒng)自動(dòng)將標(biāo)題與文本摘要合并。如果以后要更改標(biāo)題,請按如下操作進(jìn)行:

- 選擇“ABAP/4編輯器初始屏幕”上的“文本摘要”或“屬性”。

- 選擇“更改”。

2. 完成兩個(gè)強(qiáng)制字段:

- 如果創(chuàng)建報(bào)表程序,則在“類型”字段中輸入1,如果創(chuàng)建模塊存儲(chǔ),則在“類型”字段中輸入M。關(guān)于可能類型的列表,請單擊可能條目態(tài)射

- 在“應(yīng)用程序”字段中為應(yīng)用程序輸入分類字母,如財(cái)務(wù)會(huì)計(jì)輸入F。

3. 如果創(chuàng)建報(bào)表(類型=1),請選擇“確定”。

系統(tǒng)將特定報(bào)表屬性自動(dòng)插入輸入字段。然后看見附加字段“邏輯數(shù)據(jù)庫”、“從應(yīng)用程序”和“選擇屏幕”(版本)。

4. 指定與程序相關(guān)的所有其他屬性(有關(guān)程序?qū)傩缘脑敿?xì)信息,參見重要的程序?qū)傩裕?59))。

5. 選擇“保存”以保存屬性。

6. 出現(xiàn)“維護(hù)對象目錄條目”窗口。

7. 輸入開發(fā)類。

如果為培訓(xùn)或測試目的創(chuàng)建程序(如某私有對象),則輸入開發(fā)類$TMP或選擇“邏輯對象”。

8. 選擇“保存”以保存開發(fā)類。

這將關(guān)閉“維護(hù)對象目錄條目”窗口并返回“ABAP/4:程序?qū)傩浴逼聊弧?/p>

9. 選擇“后退”離開屏幕。如果要直接轉(zhuǎn)到ABAP/4編輯器,請選擇“轉(zhuǎn)向->;源代碼”。

如果通過預(yù)定義開發(fā)類在“對象瀏覽器”中創(chuàng)建程序,則跳過步驟6到8。

最重要的程序如下所述。關(guān)于其它屬性的詳細(xì)信息(或關(guān)于此處描述的屬性的詳細(xì)信息),請選擇相關(guān)的輸入字段,并單擊可能的條目態(tài)射

注意下述某些屬性只適用于報(bào)表程序并不適用于其他ABAP/4程序。

1. 在“SAPR/3”初始屏幕上選擇“工具->ABAP/4工作臺(tái)”。

出現(xiàn)“ABAP/4開發(fā)工作臺(tái)”屏幕

2. 選擇“ABAP/4編輯器”

“ABAP/4編輯器初始屏幕”如下所示:

3. 為在“程序”字段中創(chuàng)建的程序輸入名稱(關(guān)于創(chuàng)建程序名稱的詳細(xì)信息,參見命名程序規(guī)則(頁455))。

4. 選擇“創(chuàng)建”。

不論在“對象組件”下選擇什么,都出現(xiàn)“ABAP/4:程序?qū)傩浴逼聊弧?/p>

當(dāng)命名并創(chuàng)建程序后,可以定義其屬性(關(guān)于定義程序?qū)傩缘脑敿?xì)信息,參見指定程序?qū)傩裕?57))。

創(chuàng)建ABAP/4程序還有其它過程。例如,可以:

1. 選擇“ABAP/4開發(fā)工作臺(tái)”屏幕上的“對象瀏覽”。

2. 選擇“對象列表”下的“程序”。

3. 選擇“單一對象”下的“程序?qū)ο蟆薄?/p>

4. 輸入程序名并單擊“顯示”。

類型

除了類型1(如同報(bào)表的獨(dú)立程序)和M(模塊存儲(chǔ)),還應(yīng)該注意類型I(包含程序)。包含程序是個(gè)獨(dú)立的程序,它有兩個(gè)主要特征。首先,它包含程序代碼,不同程序都可使用該代碼。其次,它用于模塊化程序源代碼,該代碼分成邏輯相關(guān)部分。其中每個(gè)部分都存儲(chǔ)在不同的包含程序中。包含程序改善源代碼的可讀性并有助于維護(hù)。(有關(guān)包含程序的詳細(xì)信息,參見包含程序)。

應(yīng)用程序

“應(yīng)用程序”字段包括應(yīng)用程序的縮寫,如,財(cái)務(wù)會(huì)計(jì)縮寫為F。該必需條目使系統(tǒng)能將程序分配給適當(dāng)?shù)臉I(yè)務(wù)區(qū)。

開發(fā)類

開發(fā)類對系統(tǒng)之間進(jìn)行傳輸非常重要。執(zhí)行傳輸時(shí),可以將分配給某個(gè)開發(fā)類的工作臺(tái)對象組合起來。

如果用戶在某組中工作,也許要將程序分配給現(xiàn)有開發(fā)類或創(chuàng)建新的開發(fā)類。分配給開發(fā)類$TMP的程序是私有對象并且不能傳輸?shù)狡渌到y(tǒng)。

但是,也可以通過選擇“ABAP/4編輯器初始屏幕”上的“計(jì)算機(jī)程序>重新分配...”更改分配給程序的開發(fā)類。

應(yīng)用程序中的邏輯數(shù)據(jù)庫(僅報(bào)表程序)

這些屬性決定報(bào)表使用哪個(gè)邏輯數(shù)據(jù)庫檢索數(shù)據(jù),以及邏輯數(shù)據(jù)庫屬于哪個(gè)應(yīng)用程序。應(yīng)用程序中數(shù)據(jù)庫名稱必須是唯一的。但是,整個(gè)系統(tǒng)可以包括數(shù)個(gè)同名數(shù)據(jù)庫。因此指定應(yīng)用程序很重要。關(guān)于邏輯數(shù)據(jù)庫的詳細(xì)信息,參見邏輯數(shù)據(jù)庫的特性和維護(hù)。

如果報(bào)表程序直接讀取數(shù)據(jù),而未使用邏輯數(shù)據(jù)庫(關(guān)于此主題的詳細(xì)信息,參見訪問帶邏輯數(shù)據(jù)庫的數(shù)據(jù)庫表),則應(yīng)該象通常一樣指定應(yīng)用程序,但將“邏輯數(shù)據(jù)庫”字段置空。

選擇屏幕版本(僅報(bào)表程序)

如果沒有指定選擇屏幕版本,則系統(tǒng)在邏輯數(shù)據(jù)庫選擇標(biāo)準(zhǔn)、報(bào)表特定參數(shù)及選擇選項(xiàng)的基礎(chǔ)上自動(dòng)創(chuàng)建選擇屏幕(關(guān)于選擇屏幕的詳細(xì)信息,參見使用選擇屏幕)。

如果想使用自己的選擇屏幕,請?jiān)诖俗侄沃休斎胩柎a。該號碼必須小于1000。可以通過按F4或在DBxxxSEL程序中找到現(xiàn)有選擇屏幕號碼(詳細(xì)信息,參見邏輯數(shù)據(jù)庫選擇)。

大寫/小寫

顯示和存儲(chǔ)時(shí),如果要讓ABAP/4編輯器將程序代碼與輸入時(shí)保持相同,則請將該字段置空。如果選擇該字段,則所有的程序代碼(除了引號中的文本及注釋外)都轉(zhuǎn)換成大寫字母。屏幕顯示依賴于所使用的編輯器模式(詳細(xì)信息,參見文檔ABAP/4工作臺(tái)工具。

編輯器鎖定

如果設(shè)置此屬性,則其他用戶則不能修改、改名或刪除程序。只有用戶可以更改程序、維護(hù)屬性、文本摘要及文檔;或者解除鎖定。

定點(diǎn)算術(shù)

如果設(shè)置此屬性,系統(tǒng)則根據(jù)小數(shù)點(diǎn)位數(shù)將類型P字段四舍五入,或用零填補(bǔ)(關(guān)于類型P字段的詳細(xì)信息,參見數(shù)字?jǐn)?shù)據(jù)類型(頁3-4))。這種情況下,無論在用戶主記錄中指定了什么,小數(shù)點(diǎn)字符總是句點(diǎn)(.)。

通過變式啟動(dòng)(僅報(bào)表程序)

如果設(shè)置該屬性,則用戶只可以使用變式啟動(dòng)報(bào)表程序。在啟動(dòng)程序之前,必須創(chuàng)建至少一個(gè)報(bào)表變式(關(guān)于創(chuàng)建變式的詳細(xì)信息,參見使用變式預(yù)設(shè)置選擇)。

程序應(yīng)用

概述

在ABAP/4編輯器中編寫ABAP/4程序。

可以直接從“ABAP/4程序?qū)傩浴逼聊磺袚Q到編輯器,也可以從“ABAP/4編輯器初始屏幕”中調(diào)用編輯器。

編寫程序操作

1. 在“ABAP/4程序?qū)傩浴逼聊簧线x擇“轉(zhuǎn)向->;源代碼”或“源代碼”。

選定“源代碼”并選擇“ABAP/4編輯器初始屏幕”上的“更改”。

出現(xiàn)“ABAP/4編輯器編輯程序”屏幕。

系統(tǒng)自動(dòng)輸入第一個(gè)ABAP/4語句,如

REPORT or PROGRAM .

對于 人名>;,系統(tǒng)使用在“ABAP/4編輯器初始屏幕”上輸入的名稱。

語句REPORT和PROGRAM實(shí)際上具有相同功能。它們使系統(tǒng)能識(shí)別報(bào)表程序或任何其他ABAP/4程序并允許為輸出列表指定一定的標(biāo)準(zhǔn):

REPORT或PROGRAM語句可以有不同的參數(shù),如LINE-開本、LINE-計(jì)數(shù)或NO STANDARD PAGE HEADING。這些參數(shù)主要適用于報(bào)表程序,用來分析數(shù)據(jù)并輸出結(jié)果列表。

關(guān)于列表的詳細(xì)信息,參見[ See also: 第六章 創(chuàng)建列表 ]或參見REPORT和PROGRAM上的關(guān)鍵字文檔。

2. 輸入程序代碼。

3. 選擇“檢查”進(jìn)行語法檢查。然后系統(tǒng)掃描程序代碼尋找語法錯(cuò)誤及不相容處。如果檢查出錯(cuò)誤,則出現(xiàn)消息報(bào)告它并且有可能的話將建議解決方案或更正。將光標(biāo)放在適當(dāng)?shù)奈恢蒙稀?/p>

4. 選擇“保存”保存代碼。

源文本存儲(chǔ)在程序庫中。

測試程序

測試程序檢查代碼是否正確工作。

為測試目的要運(yùn)行程序,選擇“ABAP/4編輯器編輯程序”屏幕上的“計(jì)算機(jī)程序>;執(zhí)行”。

系統(tǒng)執(zhí)行該程序,如同從“ABAP/4編輯器初始屏幕”中啟動(dòng)的一樣。例如,創(chuàng)建報(bào)表程序之后,則首先出現(xiàn)從中輸入條件的選擇屏幕,然后是結(jié)果列表。

如果正創(chuàng)建ABAP/4程序模塊,則必須在運(yùn)行程序之前創(chuàng)建事務(wù)代碼(關(guān)于創(chuàng)建事務(wù)代碼的詳細(xì)信息,參見對話編程簡介)。

出于測試目的,可以先不進(jìn)行保存,直接運(yùn)行某個(gè)不是模塊存儲(chǔ)部件的程序。編輯器保留一個(gè)包含更改的臨時(shí)版本。但是,測試結(jié)束后必須返回編輯器以確保所有更改都已保存。

程序的顯示更改

本節(jié)主要說明如何顯示或更改現(xiàn)有程序。此處相關(guān)的是技術(shù)步驟而不是實(shí)際代碼更改。

要顯示或更改程序,請進(jìn)行如下操作:

1. 在“ABAP/4編輯器初始屏幕”上的“程序”字段中輸入要更改的程序名稱。

2. 選擇“源代碼”并選擇“顯示”或“更改”。

如果選擇“更改”則繼續(xù)步驟3。

如果選擇“顯示”,則看到“ABAP/4編輯器顯示程序”屏幕。此處也顯示源代碼,但不能進(jìn)行更改。可以通過選擇“顯示->;更改”切換到更改模式。

3. 如果其他用戶鎖定該程序?qū)?a href="/hebeideji/3382258480047259800.html">編輯器的訪問,則系統(tǒng)顯示下列消息:

User <人名> forbade all changes.

在這種情況下,不能更改程序。要更改程序,必須將它復(fù)制到新程序中并用新程序名再開始步驟1。否則,繼續(xù)步驟5。

4. 輸入對程序代碼的更改。

5. 選擇“檢查”檢查語法。

6. 保存程序的更改版本。

如果更改程序的私有版本(開發(fā)類$TMP),則立即保存更改版本。

如果從$TMP之外的開發(fā)類更改程序,則會(huì)出現(xiàn)一個(gè)窗口,從中可以指定更正請求號(Change Request Number)。

7. 運(yùn)行程序測試它(關(guān)于測試的詳細(xì)信息,參見測試程序(頁11))。

配給程序

介紹

可以將事務(wù)代碼分配給類型1的單獨(dú)程序,以后就將這些程序作為事務(wù)代碼處理。在[ See also: 第三部分 編寫ABAP/4事務(wù) ]中對事務(wù)有說明。

運(yùn)用

1. 按照本節(jié)上述主題所述,創(chuàng)建單獨(dú)程序。

2. SAP菜單樹:工具 -> ABAP 工作臺(tái) -> 開發(fā) -> 其他工具 -> 事務(wù),事務(wù)代碼:SE93。

3. 填入事務(wù)代碼并選擇“維護(hù)事務(wù)”屏幕上的“創(chuàng)建”

4. 在下列對話屏幕上選擇“報(bào)表事務(wù)”;

5. 在下列“創(chuàng)建報(bào)表事務(wù)”屏幕上填入所需條目“事務(wù)說明”和“程序”。

6. 將事務(wù)代碼保存在開發(fā)類中。

開發(fā)類可以用事務(wù)代碼SM30維護(hù)視圖V_TDEVC來創(chuàng)建或修改。

快速入門

首先、ABAP是技術(shù)開發(fā),想要快速入門,或是遇到問題想要解決,可以找個(gè)質(zhì)量高一點(diǎn)的技術(shù)交流論壇,比如ABAP大坑網(wǎng)。

想快速培訓(xùn)出師,你必須得有編程基 礎(chǔ)。從這點(diǎn)考察培訓(xùn)機(jī)構(gòu),你就看看他們有沒有筆試,如果 啥條件都不要求,那肯定是不能參加的。編程基礎(chǔ)不是一天 兩天都鍛煉出來的。

其二、打聽定向委培的公司,是否真正有項(xiàng)目。這個(gè)很好辦,招聘求職的網(wǎng)上一搜就知道了。

其三、看培訓(xùn)機(jī)構(gòu)的老師水平和課程安排如何。這個(gè)沒辦法 從網(wǎng)上了解太多,只能實(shí)地考察了。

其四、做好這方面的求職準(zhǔn)備。培訓(xùn)機(jī)構(gòu)推薦是一回事,你自 己找機(jī)會(huì)也不能忽略。

其五、ABAP職位需求非常旺盛,有點(diǎn)譜,學(xué)到了其實(shí)是蠻 容易找工作的。培訓(xùn)帶你入門,修行看個(gè)人嘛 我見到過很好 的培訓(xùn)機(jī)構(gòu),里面有的學(xué)員照樣學(xué)不出來,為啥?不努力唄!

最后,市 面上做這方面培訓(xùn)的,叫的出來的有達(dá)沃旗,sap私塾和91abap,賽跑網(wǎng)ABAP。選擇比較好的培訓(xùn)機(jī)構(gòu)至關(guān)重要。建議考慮口碑,價(jià)格,就業(yè)率等等各方面的因素。

展示報(bào)表

ABAP是SAP的基石,入門SAP,首先學(xué)好ABAP至關(guān)重要,ABAP中ALV部分也很重要,展示一個(gè)例子:

TABLES:marav. "MARA&MAKT 視圖

*---------------------------------------------------------------------*

數(shù)據(jù):BEGIN OF gt_tab OCCURS 100,

matnr LIKE marav-matnr,

maktx LIKE marav-maktx,

matkl LIKE marav-matkl,

ntgew LIKE marav-ntgew,

gewei LIKE marav-gewei,

END OF gt_tab.

DATA i_repid LIKE sy-repid.

***ALV設(shè)定

TYPE-POOLS: slis.

數(shù)據(jù) gt_fieldcat TYPE slis_t_fieldcat_alv.

DATA is_layout TYPE slis_layout_alv.

***選擇屏幕制作

SELECT-OPTIONS:

s_matnr FOR marav-matnr MATCHCODE OBJECT mat1.

START-OF-SELECTION.

***取數(shù)據(jù)

SELECT * FROM marav

INTO CORRESPONDING FIELDS OF TABLE gt_tab

WHERE

matnr IN s_matnr.

END-OF-SELECTION.

i_repid = sy-repid.

*使用函數(shù)得到gt_fieldcat內(nèi)表

CALL 函數(shù) 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_人名 = i_repid

i_internal_tabname = 'GT_TAB' "capital letters!

i_inclname = i_repid

CHANGING

ct_fieldcat = gt_fieldcat

EXCEPTIONS

inconsistent_接口 = 1

program_error = 2

OTHERS = 3.

IF sy-subrc <> 0.

ENDIF.

***layout設(shè)定

is_layout-zebra = 'X'.

is_layout-colwidth_optimize = 'X'. "優(yōu)化列寬選項(xiàng)是否設(shè)置

***單擊彈出明細(xì)設(shè)定

* is_layout-f2code = '&ETA'.

* is_layout-detail_popup = 'X'.

* is_layout-detail_initial_lines = 'X'.

* 展示數(shù)據(jù)

CALL 函數(shù) 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

it_fieldcat = gt_fieldcat

i_save = 'A'

i_callback_user_command = 'FRM_UCOMM' "實(shí)現(xiàn)雙擊事件

is_layout = is_layout

Tables

t_outtab = gt_tab

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

ENDIF.

ABAP中的指針

1. 什么是ABAP指針:

在ABAP里面,field symbol就相當(dāng)于c語言的指針。如果你定義并且分配了相應(yīng)的結(jié)構(gòu)或者變量給它,其實(shí)它就指向這個(gè)結(jié)構(gòu)或者變量的地址,如果修改了field symbol的值,則相應(yīng)結(jié)構(gòu)或者變量的值也隨之更改。

2. 如何定義指針:

基本形式:領(lǐng)域SYMBOLS .

附加信息:

1. ... TYPE :定義一個(gè)數(shù)據(jù)類型,然后定義指針

2. ... TYPE REF TO :指針指向類或者接口

3. ... TYPE REF TO :指針指向數(shù)據(jù)結(jié)構(gòu)

4. ... TYPE LINE OF :指針內(nèi)表的行項(xiàng)目

5. ... LIKE :指針為數(shù)據(jù)庫表類型

6. ... LIKE LINE OF :指針類型為數(shù)據(jù)庫表的行項(xiàng)目

參考資料 >

生活家百科家居網(wǎng)