除錯使用了函式模組的程式時需要注意的一個小問題
昨天下午複製了一個系統標準程式,在它的 SAP List Viewer 控制元件裡新增一個顯示欄位,結果在內表裡增加了欄位以後,除錯了一個小時也沒能在 List Viewer 中顯示出來。看看所有呼叫的地方該新增的都新增了,就是執行到系統的函式模組 REUSE_ALV_FIELDCATALOG_MERGE 時,新增的欄位就死活出不來。因為快下班了,就沒有繼續調——加班解決問題是個不好的工作習慣。
今天早上來了之後,開啟程式繼續查,在呼叫 REUSE_ALV_FIELDCATALOG_MERGE 的地方加了個斷點,深入函式模組內部繼續觀察。結果,居然昨天沒有顯示的欄位今天自己就出來了,這也太奇怪了吧。
回想這期間做的工作,再聯想到最近看的標準教程,忽然覺悟——由於函式模組所屬的函式組在函式模組被呼叫時會整體載入,同時函式組中間的全域性資料物件也一起被載入,並且在程式執行過程中一直保持。
這樣這個問題就可以解釋了,昨天除錯,一直是在事務碼 SE38 下進行的,無論怎麼改程式,都沒有退出事務碼,也就沒有退出整個程式的內部會話,這樣,REUSE_ALV_FIELDCATALOG_MERGE 所屬的函式組 SALV 也就總在這個內部會話中盤踞著,導致某些 SALV 中的全域性變數在呼叫時值未改變,從而使輸出結果也無法達到預期的內容。而今天是退出 SE38 並重新讀取和執行程式,退出後內部會話所佔用的記憶體已經清除,重新執行時會再次載入函式組並初始化相應全域性變數,這樣用新值運算出來的結果就正確了。
由此想到,學習基礎知識確實非常重要。如果沒有最近學習標準教程,對此問題就無法解釋,最後只能歸於 RPWT,而現在能夠解釋原因並寫出這篇文章為後來的朋友解惑,我也感覺到十分欣慰。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7941665/viewspace-974841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 除錯433M模組遇到的問題除錯
- JavaScript ES6 Fetch API時需要注意的一個Cookie問題JavaScriptAPICookie
- 10個需要注意的SQL問題SQL
- Python讀書筆記:需要注意的70個小問題Python筆記
- 安裝rac時需要注意的問題
- 兩個需要求 sg 函式的樹上博弈問題函式
- 運用mysqldump 工具時需要注意的問題MySql
- 關於python3.7中 scipy模組輸出函式出錯問題的解決Python函式
- 在下載opencv等類似的包時,需要注意到的一個大問題!OpenCV
- 關於使用toFixed()函式時報錯”toFixed() is not a function”的問題函式Function
- visual studio建立專案時需要注意的問題
- python將函式寫入模組中的小技巧Python函式
- Python import 時要注意的幾個問題PythonImport
- 使用 sendBeacon 需要注意的問題
- 幽默:除錯程式碼問題的最佳方法除錯
- 刷題時需要的注意事項
- 選擇代理IP時需要注意的三大問題
- 教育培訓APP開發時需要注意的問題APP
- 微信小程式開發需要注意的29個坑微信小程式
- 做聚合支付代理需要注意的這幾個問題?
- 聊一聊 GDB 除錯程式時的幾個實用命令除錯
- 用函式實現模組化程式設計習題函式程式設計
- 用函式實現模組化程式設計一函式程式設計
- Angular 內容投影 content projection 的一個問題的單步除錯AngularProject除錯
- 小程式呼叫上一個頁面的函式函式
- 樹莓派除錯PCF8591遇到的小問題樹莓派除錯
- IDEA的這幾個除錯的騷操作,用了都說爽!Idea除錯
- Android一個小知識點: 多個介面同時使用一個資源佈局的時候,修改背景需要注意的坑Android
- 線上教育程式開發時應注意的問題
- socket模組函式函式
- JavaScript Source Code對映引起的一個SAP C4C程式碼除錯問題JavaScriptC程式除錯
- plsql 除錯 pipelined 函式SQL除錯函式
- Oracle remap_schema需要注意的問題OracleREM
- Python初學者需要注意的問題Python
- python合併多個csv檔案需要注意的問題(合併多個列名問題)Python
- 問一個很基礎小白的問題,類與函式的關係。RT函式
- python檢視模組下的函式Python函式
- Promise使用時應注意的問題Promise
- 使用了一下perl的XML::Smart模組,真是太好用了XML