Enhancement - ooxxvv/MySAPnotes GitHub Wiki
PageOutline {{{#!comment -------------------------------------------------- 以上的部份是固定的,不要變動 ---------- -------------------------------------------------- 在建立連結時,請標明連結的頁面類型,例如:wiki:WikiStart,而不要只用 WikiStart ---------- }}}
Enhancement
- 指 SAP 在 standard 的系統中預留一些程式缺口可以做客製化的動作。
- 可用 Code20070213 來尋找指定 Tcode 的相關 enhancement
- 有時會加上「s」變成 Enhancements。
Transaction Variants and Screen Variants
- 可設定 Standard 的 Screen 上輸入欄位的預設值
- 用 SHD0 管理
ABAP Dictionary Elements
Table
Append Structures
- 由 SE11 的 Append Structure 產生。
- 每一個 Append Structure 只能針對一個 Table ,無法同時指定多個 Table 。
- Append Structure 的欄位名稱用 「YY」或「ZZ」開頭。
- 當更新 SAP 的版本時,在更新資料庫時不會將 Append Structure 蓋掉。
Customizing Includes
- 系統會預先 Include 一個 「CI_」開頭的 Structure,可藉由更改此 Structure 來增加欄位。
Keywords
- Keywords 指的是 Data Element 的 Field Label。
- 由 CMOD 修改。
- 在 online program 中需注意欄位的設定,否則不會有效果。
- Dict -> Modify -> 不能是F。
- 更新 SAP 版本時,會被新版的蓋掉。
Documentation
- 指按下「F1」時出現的文件。
- 可由 CMOD 更改。
- 可由 SE11 更改。
- 在此新增的文件是多加一份,而非取代。可在按下「F1」後用「上一頁」或「下一頁」來切換不同的文件。
- 可在按下「F1」時出現的視窗中用編輯的方式修改。
- 在更改時需 include sap doku,否則原來的資料會不見
Customer Exists
- 指 SAP 系統中 standard 的程式所預留的缺口,可用來加上自行撰寫的程式。
- 加上的程式不會受到 SAP 系統更新的影響。
- 較新版的修改方法 -> Business Add-in, Enhancement Framework 。
- 經由 CMOD 來管理 Project 。
- 可由 SMOD 來查詢系統中預設的 Enhancement。
- 如要使用變數時,需在該 Function 的 Global Data 中宣告。
- Goto -> Global Data
操作流程
- 由 CMOD 新增一個 Project 。
- 命名儘量以「Y」或「Z」開頭。
- 在 Project 中 Assign Enhancement
- Enhancement 就是程式中預留的可修改的一組程式。
- 一個 Enhancement 只可被 Assign 到一個Project ,不能同時指定給不同的 Project。
- 修改 Enhancement 中的 Component
- Component 就是一支單一的程式。
- Activate Project
- Activate 時,此 Project 底下所有的 Enhancement 及 Component 會一起 Activate,無法分開 Activate。
Function Module
- 找程式中的 Enhancement
- 在程式中用關鍵字「CALL CUSTOMER-FUNCTION」搜尋。
- 其所呼叫的 Component 會用「EXIT_原始的程式名_編號」的方式命名。
- 在 Assign Enhancement 時用 -> 「F4」 -> All Selections -> 用 Component 的名稱找。
- SE81
- SE84
- SPRO 的 IMG 文件中
Menu
- 會和相關的 Function Exits 在同一個 Enhancement 中。
- 其 Function Code 會以「+」開頭。
Screen
- 可在程式中用關鍵字「CALL CUSTOMER-SUBSCREEN」搜尋。
Enhance Spot
-
新的 Enhancement 方式 (ECC6)
-
此 Enhancement 的程式碼在 Debug 模式下不會出現在畫面中,但此部份的程式碼仍然會被執行。
-
Tcode
-
SE80_ENH => 管理 Enhance Spot
-
使用方式:
- 進入在 Source Code 的檢視畫面
- 按下工具列上的 Enhance Source Code (Shift+F4) 按鈕
- Edit -> Enhancement Operations -> Show Implicit Enhancement Options
- 在程式碼上會出現底色為黃色的區塊,即是可插入程式碼的地方 (Enhancement Spot)
- 在要修改的黃色區塊上按右鍵 -> Enhancement Implementation
- Create => 建立
- Undo => 取消
- 和一般的程式碼的建立方式相同,也是以 「Z」 或 「Y」為開頭
- 可用 SE80_ENH 來管理程式碼
- 程式碼建立完成後要按下 Active Enhancement (Shift+F3) 來 Active 程式碼