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

dicksonjyl560101發表於2015-04-25
最近在準備面試,在網上找了一份英文文件: 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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-1598563/,如需轉載,請註明出處,否則將追究法律責任。

相關文章