ABAP 面試問題及答案(一) 轉)

2021-09-05 18:28:15 字數 3392 閱讀 2757

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 表中新增欄位的方法是哪兩種?

問題十一:什麼是 badi?

答案:badi 是 business add-in 的縮寫。它是一種新的功能增強概念,使用 abap 物件技術。這是一種使用物件導向的方法來進行 sap 增強。實現 badi 要用到類、介面及方法等物件導向的概念。

要對乙個 sap 應用程式進行增強,必須首先定義 badi。為 badi 建立乙個介面,接著建立乙個介面卡類(adapter class)來實現這個介面, 然後建立這個介面卡類的例項。

**

abap 面試問題

size medium 問題一 鎖物件 lock object 和 fm function module 啟用lock object時,產生的 fm 的名字是什麼?答案 首先要在 abap 字典中建立鎖物件,然後才能在 abap 程式中設鎖。建立鎖物件時,系統會自動生成兩個 fm 來進行鎖管理。用於...

前端面試問題及答案整理

手寫乙個call方法 在這之前需要重新認識一下call方法的執行操作 let mock function mocknum mocknum.call mock 改變了函式中this的指向,當前this指向了mock物件 轉換一下實現方法就是 let mock mock.mocknum 所以經過上面這個...

面試問題(一)

1.string與int之間如何相互轉換?1 intger轉string 方法一 integer類的靜態方法tostring integer a 2 string str integer.tostring a 方法二 integer類的成員方法tostring integer a 2 string ...