一
前言
資料字典是ABAP中最基本的知識,充分使用資料字典可以給你的程式提供一些基本功能(幫助,搜尋幫助,資料校驗等)
這些功能可以改善程式對使用者的友好度
本文主要介紹資料字典提供的基本功能
希望本文對你的ABAP程式設計習慣能有一些積極的影響。
二
基本功能
資料字典給ABAP程式提供如下基本功能
F1幫助
F4搜尋幫助
資料校驗
日誌記錄
填入之前使用的值
多語言支援
SAP邏輯鎖
……
三
F1幫助
透過資料元素文件獲取
定義的表或者結構欄位使用資料元素提供欄位的基本屬性。可以在資料元素的文件功能中維護該欄位的詳細解釋。 這樣,所有用到這個欄位的介面(SCREEN,ALV等),都可以直接透過F1獲取到欄位的幫助。
給欄位新增詳細描述是很好的習慣。使用者或其它開發可以透過欄位幫助瞭解到這個欄位在程式中的具體作用。
可以在幫助中把這個欄位對業務的影響,相關配置點,相關功能,維護方式,維護示例,對程式作用等等資訊詳細的寫出來。
圖一是維護資料元素文件的方式
圖二是在SE16N介面(ALV介面)中在該欄位按F1功能鍵獲取的幫助資訊
圖一
圖二
四
F4搜尋幫助
SAP系統資料字典透過以下層級提供搜尋幫助功能,
域值
外來鍵表(包括文字表)
資料元素搜尋幫助
表字段搜尋幫助獲取
在表維護介面(SE11)可以看到欄位搜尋幫助的來源(優先順序4>3>2>1)
在透過外來鍵表獲取輸入幫助的時候, 外來鍵表最好維護一個文字表,否則搜尋幫助中只有關鍵字,沒有描述資訊。
圖三:搜尋幫助來源是域值,資料元素搜尋幫助,欄位搜尋幫助
圖四:搜尋幫助來源是外來鍵表
圖五:文字表和主表外來鍵關係
使用資料字典的搜尋幫助是程式獲取搜尋幫助的基本方法,程式中也可以透過語句設定特定的搜尋幫助。
圖三
圖四
圖五
五
資料校驗
透過域值限制或外來鍵表獲取資料校驗
域定義中,可以透過固定值,範圍值或值表校驗資料內容(圖六)
可以透過表中定義外來鍵關係限制校驗資料內容(圖七)
在SCREEN或者ALV中如果輸入值超出限定,系統會給出報錯資訊。
如圖八,透過SE16N(ALV)維護EKKO時, 輸入憑證型別ZP99超出了限定,系統報錯
需要注意的是,外來鍵有可能是聯合主鍵, 如果定義外來鍵時沒有把相關表的聯合主鍵都定義進去, 則會出現資料無法維護的情況(透過SE16N無法維護)
需要說明的是,這些校驗在輸入介面上自動觸發(輸入介面上的欄位必須參考資料字典欄位)。 透過SQL語句寫入資料不會觸發這些校驗
圖六
圖七
圖八
六
日誌記錄
設定資料元素change documnet 記錄的開關(圖九)。 勾選更改文件標記後, 透過SAP標準變更文件物件(SCDO),就能記錄欄位級別的內容變更日誌。
表技術設計中的日誌資料記錄。(圖十)。 勾選日誌資料更改後, 同時設定系統引數 rec/client 系統就會把表內容的變更記錄下來,透過事務程式碼SCU3可以檢視這些變更的日誌
注意: 儘量只對配置表勾選日誌資料記錄,對業務表勾選並激活引數將導致資料庫資源的大量佔用。
圖九
圖十
圖十一
七
填入之前使用的值
透過資料元素的引數ID 可以為螢幕欄位設定引數ID。 引數ID可以保留上次錄入的內容,下次在該欄位上自動帶出。
八
多語言支援
資料元素的描述在介面上會自動帶出, 並且可以透過標準翻譯功能翻譯到其它語言中,切換登入語言後,系統會自動切換對應語言的描述顯示在螢幕上。
標準翻譯功能 (SE63)
快速翻譯功能 詳見連線
無峰,公眾號:ABAP 技巧與實戰SAP開發框架系列之 快速翻譯功能
九
SAP邏輯鎖
定義鎖物件,會自動生成相應的加鎖,解鎖函式。 透過對加鎖函式的呼叫, 會生成一個邏輯鎖(透過SM12可以檢視系統中的所有邏輯鎖)。
十
總結
SAP資料字典給ABAP程式提供了很多基本功能。
因此在定義資料字典的時候遵照以下規則
儘量使用資料元素/域定義欄位屬性
儘量透過域值或者外來鍵表限定欄位內容
儘量使用文字表定義編碼的描述
儘量在資料元素中新增幫助文字
儘量在資料元素中繫結搜尋幫助
勾選資料元素的更改文件標記
……
在開發程式的時候,更多的使用資料字典物件,可以讓程式附帶資料字典提供的基本功能,尤其是幫助功能。更多的幫助資訊可以讓程式更易懂,更容易被使用者使用。