天天看點

ABAP 面試問題及答案(一):資料庫更新及更改 SAP Standard (轉)

最近在準備面試,在網上找了一份英文文檔: ABAP 面試問題及答案。該文檔的英文原标題為: SAP ABAP Interview Questions, Answers, and Explanations: ABAP Certification Review,作者為 Barry Fewer。

現将其翻譯出來,權當在做筆記。

PS,實際上,就我經過的幾次面試看,沒有問得這麼詳細的。就把這當作是學習筆記吧,這些細節對平時的開發也非常有用。

問題一:鎖對象(Lock Object)和 FM(Function Module)

激活鎖定對象時,産生的 FM 的名字是什麼?

答案:首先要在 ABAP 字典中建立鎖對象,然後才能在 ABAP 程式中設鎖。建立鎖對象時,系統會自動生成兩個 FM 來進行鎖管理。用于設鎖的 FM 為: ENQUEUE_。它用于在鎖表(Lock Table)中生成一個鎖項(Lock Entry)。若設鎖不成功的話,就會在 Return 中反映出來。

用于釋放鎖的 FM 為:DEQUEUE_。它用于從鎖表中删除一個鎖項。

在 ABAP 程式中,隻需使用 "CALL FUNCITION ..." 語句就可以調用它們。

這兩個鎖 FM 是在 SAP 系統的一個特殊工作程序中執行的,專門進行鎖管理。它運作在一個單獨的伺服器上,而該伺服器專門用于維護整個 SAP 系統的主鎖表(Central Locak Table)。

有兩種鎖類型:

共享鎖——隻讀鎖,一個使用者正在讀資料時,阻止其他使用者更改該資料。

獨占鎖——可寫鎖,一個使用者正在修改資料時,阻止其他使用者更改該資料。

問題二:更新方面的 FM

更新 FM 分為 V1 和 V2,那麼首先會執行哪一種更新類型呢?每種類型又是以哪種模式(異步、同步或本地)執行的呢?

答案:V1 更新類型比 V2 更新類型的優先級高,是以,V1 比 V2 行執行。V1 的執行模式可以為異步、同步或本地;V2 隻能為異步執行。

問題三:ABAP 記憶體(ABAP Memory)交換

在使用 ABAP 記憶體的程式間進行資料交換時用到的兩個語句是什麼?

答案:EXPORT to MEMORY ID 用于将資料複制到 ABAP 記憶體,IMPORT from MEMORY ID 用于将資料從 ABAP 記憶體複制到程式中。

在 ABAP 記憶體間進行交換的資料必須在兩個程式中都進行聲明,并包含同樣的資料聲明。

問題四:授權對象(Authorization Objects)

什麼是授權對象?在 ABAP 程式中使用哪條語句進行授權檢查?

答案:授權對象由一組字段組成,這些字段中的值将被用于進行授權檢查。ABAP 程式中使用 AUTHORITY-CHECK 語句根據授權對象進行授權檢查。在 AUTHORITY-CHECK 語句中,必須指明授權對象的所有字段,但有一個例外,可以用 DUMMY 關鍵字來繞過某個字段的檢查。

一個授權對象中最多可以定義 10 個字段。

問題五:修改(Modifications)

在 SAP 系統中是怎樣定義"修改"的?它們對更新(upgrade)有怎樣的影響?

答案:修改是指使用者對 SAP 釋出的庫對象(Repository Object)進行的更改。

必須在更新期間對修改進行評審(Review),來決定是否應該使用新的 SAP 對象,以及将來使用時是否需要進一步修改該對象。

問題六:修改助手(Modification Assistant)

什麼是修改助手?

答案:修改助手是 4.5 版中引入的一個工具,用于簡化更新過程。可以通過 ABAP 編輯器觸發修改助手,它會記錄對系統進行的修改。修改助手支援通過 ABAP 編輯器、Screen Painter、Menu Painter、文本元素維護、Function Builder 和 ABAP 字典進行的修改。

問題七:功能子產品出口(Function Module Exit)

實作功能子產品出口時 SAP 應用程式中應使用哪條語句?

答案:某些 SAP 應用程式中存在功能子產品出口,它使使用者能夠向 SAP 程式中添加一些功能。通過搜尋 "CALL CUSTOMER" 可以發現是否存在功能子產品出口。

問題八:事務變式(Transaction Variants)

什麼是事務變式?為何要使用它?

答案:事務變式是一組螢幕變式,用于預定義螢幕行為和預設值。通過使用變式功能,可以将使用者不需要的字段、子螢幕及全螢幕從使用者視圖中取消。可以給任何輸入字段設定預設值,字段也可以不用帶 "Ready for Input" 狀态。

隻能為對話和報表事務建立事務變式;變式中隻能包含普通螢幕、子螢幕及對話螢幕。

開發人員可以使用 GuiXT 腳本語言通過事務變式維護對螢幕進行修改。修改螢幕布局的方式有:插入按鈕、值幫助(Value Helps)、移動對象、插入螢幕等等。

問題九:更改 SAP (Changing SAP)

請列出使用者修改 SAP 标準功能的不同方式。

答案:SAP Standard 可以通過 Personalization、Customizing、Modifications、Enhancements 及自定義 ABAP 程式進行更改。這些方式的示例如下:

Personalization——Personalization 技術包含建立變式、設定/擷取參數及活動組(Activity Groups)。

Customizing ——是最常用的使用 SAP 工具(如 R/3 Reference Model and Implementation Guide)更改 SAP Standard 的方式。可以認為 Customizing 是實施 R/3 所必需的,通常由 Functional Team 來執行。

Enhancements——常由開發 Team 執行,包含的活動有:字典增強、Funciton Module Exits、菜單和螢幕出口及 Business Add-ins (BADI)。

自定義 ABAP 程式——可以與 SAP 對象或自定義開發的對象一起工作。

Modifications——不建議對 SAP 對象使用 Modifications。使用 SSCR (SAP Software Change Registration)注冊所有對 SAP 對象的手動修改。

問題十:添加字段

向 SAP 表中添加字段的方法是哪兩種?

答案:這兩種方法是:Append 結構(Append Structure)和自定義 Include(Customizing Include)。Append 結構是在向表尾添加字段時建立的,自定義 Include 由 SAP 開發人員指定,以使使用者可以建立新字段。

問題十一:什麼是 BADI?

答案:BADI 是 Business Add-in 的縮寫。它是一種新的功能增強概念,使用 ABAP 對象技術。這是一種使用面向對象的方法來進行 SAP 增強。實作 BADI 要用到類、接口及方法等面向對象的概念。

要對一個 SAP 應用程式進行增強,必須首先定義 BADI。為 BADI 建立一個接口,接着建立一個擴充卡類(Adapter Class)來實作這個接口, 然後建立這個擴充卡類的執行個體。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1752173