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」為開頭
  • 程式碼建立完成後要按下 Active Enhancement (Shift+F3) 來 Active 程式碼

{{{#!comment -------------------------------------------------- 以下的部份是固定的,不要變動 ---------- }}}