ABAP 增強實戰:Enhancement Implementation增強點實施例子


今天遇到一個需求,很有意思,所以我把它記錄下來。

 

 

 

需求: IW32輸入order ,進入界面中后點擊change Status,之后會顯示一個子屏幕,想通過增強的方式,把這個自屏幕的內容設為不可編輯。

尋找增強:我們直接通過F1幫助進入子屏幕,先看看當前屏幕的PBO有沒有出口,

 

很幸運,我們剛好發現程序本身就有對這個字段不可輸入的控制,而控制的字段,我們發現是一個叫DISPLAY_ON的變量,經過DEBUG發現,這個字段確實能控制這個屏幕的不可編輯。

 

 

 

下面我們有兩種想法,一種可以嘗試在這里直接加,還有就是看一下這個display在哪里賦值,是否還控制其他內容。

 

 

 

 

 

 

發現當前位置沒有合適的點,那我們只能去看一下這個display_NO的賦值位置。

反查這個變量賦值的位置,發現兩處賦值。

 

 

 

在這兩個位置打斷點之后,運行程序,發現程序運行到這個function中,我點擊他的上一個調用的位置,發現它僅僅是由一個自定義的變量L_display控制的。

 

而且debug測試這個字段賦值后,可以能成功,所以我覺得在這個位置加增強點,而且這個位置是有加增強點的位置的。

 

 

下面創建增強(創建增強,創建一次后面就是傻瓜式點鼠標,重點還是在上面的查找增強,能找到一個合適的增強點,才是增強中比較困難的部分。)

首先點擊這個鳴人卷似的按鈕,然后選擇顯示隱式增強

 

 

 

 

 

 

把光標放在有黑色箭頭的那行上,點擊Create

 

 

 

選擇code

 

 

 

點擊新建

 

 

 

輸入新建Enhancement Implementation的命名及簡短描述

 

 

 

創建完了,再點對勾

 

 

 

然后這個位置就會出現可編輯的區域了。

 

 

 

我一般喜歡在里面加個include,在include里面寫相關代碼,我們需要加上對應的tcode限制及公司代碼限制,並且我們發現下面的變量是定義在我們出口下方的,所以我們需要新定義一個變量去調用下面那個函數,並且在后面寫個return,跳過下方的代碼。

 

 

 

結果成功顯示不可編輯的樣子。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM