【技巧】根據(jù)消息號(hào)查找消息代碼位置

在SAP項(xiàng)目中,經(jīng)常會(huì)遇到一個(gè)比較復(fù)雜的程序報(bào)出個(gè)錯(cuò)誤消息(有時(shí)會(huì)是一個(gè)標(biāo)準(zhǔn)SAP程序報(bào)錯(cuò)),但是不知道到底是哪段ABAP代碼出錯(cuò)了。

下面通過(guò)一個(gè)簡(jiǎn)單的例子,來(lái)介紹6種方法來(lái)定位報(bào)message的ABAP程序。

  • 程序名 ZMMR020
  • 事物碼 ZMM020
  • 消息號(hào) TD600【沒(méi)有發(fā)現(xiàn)文本 4500000003 ID F01 語(yǔ)言 ZH】E

錯(cuò)誤的類型:

代號(hào) 類型 描述
E Error 錯(cuò)誤
W Warning 警告
I Information 信息窗口
A Abortion 終止程序
S Success 成功

第一種 利用Where use list功能

  1. T-code:SE91
  2. 輸入
  3. 點(diǎn)擊Where-Used List【使用位置列表】
  • Message Class【消息類】 :TD
  • Message【消息】- Number 【編號(hào)】 :600
  1. 一般會(huì)找到很多程序,這時(shí)候只能靠人工過(guò)濾,找到正確的出錯(cuò)位置,然后設(shè)置斷點(diǎn),再運(yùn)行一下程序,確認(rèn)一下。

第二種 設(shè)置Sy-msgid的Watch Point斷點(diǎn)

  1. 在命令欄輸入/h,回車激活Debug模式
  2. 選擇Break./Watchpoint【斷點(diǎn)/監(jiān)控點(diǎn)】窗口
  3. 選擇Watchpoint【監(jiān)控點(diǎn)】窗口
  4. Create Watchpoint【創(chuàng)建監(jiān)控點(diǎn)】
  • Variable【變量】 :Sy-msgid
  • Free Condition Entry【可用條件條目】 := ‘TD’
  1. Create Watchpoint【創(chuàng)建監(jiān)控點(diǎn)】
  • Variable【變量】 :Sy-msgno
  • Free Condition Entry【可用條件條目】 := ‘600’
  1. 激活監(jiān)控點(diǎn)后,回到【桌面 3】窗口,點(diǎn)擊F7,跳轉(zhuǎn)到消息處。

第三種 設(shè)置ABAP Command類型斷點(diǎn)

  1. 在命令欄輸入/h,回車激活Debug模式
  2. 選擇Breakpoints【斷點(diǎn)】- Breakpoint At【斷點(diǎn)位置】- Breakpoint At Message【消息處斷點(diǎn)】
  3. 選擇Message【消息】窗口
  4. 輸入
  • ID :TD
  • Number 【編號(hào)】 :600
  1. 回到【桌面 3】窗口,點(diǎn)擊F7,跳轉(zhuǎn)到消息處。

第四種 源代碼查詢

方法1 RS_ABAP_SOURCE_SCAN

  1. T-code:SE38
  2. 運(yùn)行RS_ABAP_SOURCE_SCAN
  3. 輸入
  • String Searched For【字符串搜索】 :MESSAGE E600
  • Package【包】 :STXD
  1. 然后手動(dòng)分析結(jié)果,找到出錯(cuò)的ABAP程序。

方法2 CODE_SCANNER

  1. T-code:CODE_SCANNER
  2. 輸入
  • Package【包】 :STXD
  • Search String 1【搜索字符串 1】 :MESSAGE E600
  1. 然后手動(dòng)分析結(jié)果,找到出錯(cuò)的ABAP程序。

第五種 使用SAT工具

  1. T-code:SAT
  2. 選擇Edit【編輯】- Variant【變式】- Create...【創(chuàng)建...】
  3. 選擇Aggregation【集合】 – None【無(wú)】
  4. 保存 - DEFAULT
  5. 然后在SAT主屏幕中輸入
  • Variant【變式】 :DEFAULT
  • Transaction【業(yè)務(wù)】 :ZMM020
  1. 點(diǎn)擊Execute【執(zhí)行】
  2. 運(yùn)行后返回,會(huì)顯示跟蹤結(jié)果,選擇Call Hierarchy【調(diào)用層級(jí)】窗口
  3. 點(diǎn)擊Find【查找】
  4. 輸入
  • Statement/Event【說(shuō)明/事件】 :MESSAGE E600
  1. 在Hit List【命中清單】中雙擊行就能跳到具體的ABAP代碼處。

第六種 使用ST05工具

  1. T-code:ST05
  2. 點(diǎn)擊Activate Trace,啟動(dòng)追蹤
  3. 點(diǎn)擊打印彈出錯(cuò)誤信息
  4. 點(diǎn)擊Deactivate Trace,關(guān)閉追蹤
  5. 點(diǎn)擊Display Trace,進(jìn)入追蹤信息
  6. 點(diǎn)擊Execute,執(zhí)行
  7. 選擇黃色位置,點(diǎn)擊Display ABAP Call Location,顯示報(bào)錯(cuò)代碼位置。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 聲明:本文來(lái)自Jerry Wang在SAP社區(qū)的一篇分享,本人在學(xué)習(xí)過(guò)程中順便做了翻譯。Jerry 是我很喜歡的一...
    三月行者閱讀 6,114評(píng)論 0 4
  • 1 調(diào)試1.1 調(diào)試方式1.2 調(diào)試過(guò)程中的功能鍵的作用2 調(diào)試模式的斷點(diǎn)2.1 斷點(diǎn)類型2.2 靜態(tài)斷點(diǎn)2.3 ...
    abapCiCi閱讀 502評(píng)論 0 1
  • 轉(zhuǎn)載 與調(diào)試器共舞 - LLDB 的華爾茲: https://objccn.io/issue-19-2/ 推薦:i...
    F麥子閱讀 3,457評(píng)論 0 10
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,818評(píng)論 16 22
  • 創(chuàng)業(yè)是很多人的夢(mèng)想,多少人為了理想和不甘選擇了創(chuàng)業(yè)來(lái)實(shí)現(xiàn)自我價(jià)值,我就是其中一個(gè)。 創(chuàng)業(yè)后,我由女人變成了超人,什...
    亦寶寶閱讀 2,007評(píng)論 4 1

友情鏈接更多精彩內(nèi)容