使用SAT跟踪监控从浏览器打开的SAP应用的性能和调用栈
今天是農(nóng)歷鼠年大年初四,本文是鼠年第4篇文章,也是汪子熙公眾號(hào)第203篇原創(chuàng)文章。
大家這幾天在家里宅得如何了?貌似不少朋友都悶壞了。
我們繼續(xù)學(xué)習(xí)。
Jerry之前的文章 SAP錯(cuò)誤消息調(diào)試之七種武器:讓所有的錯(cuò)誤消息都能被定位 介紹的第五種武器孔雀翎SAT,曾經(jīng)提到了下面這張SAT的截圖:
大家最常使用SAT的方式,也就是在上圖In Dialog區(qū)域里,輸入事務(wù)碼,ABAP報(bào)表或者Function Module的名稱,然后點(diǎn)擊Execute按鈕. 如此一來,指定的這些ABAP程序會(huì)在SAT Trace模式下運(yùn)行,自動(dòng)生成包含了執(zhí)行性能和調(diào)用棧等信息,在程序結(jié)束退出Trace模式下之后即可查看。
SAT生成的Trace結(jié)果,以樹形結(jié)構(gòu)顯示ABAP程序執(zhí)行的每一調(diào)用棧和性能數(shù)據(jù),無論是進(jìn)行性能分析,還是學(xué)習(xí)一段陌生代碼的執(zhí)行邏輯,都非常有用。
那么這里有個(gè)問題,如果想跟蹤或者想研究的應(yīng)用,是通過瀏覽器打開的,例如SAP S/4HANA Fiori應(yīng)用,SAP ABAP WebDynpro,WebClient UI這種,倘若想研究瀏覽器里某個(gè)應(yīng)用點(diǎn)了某個(gè)按鈕之后,背后發(fā)生了什么,如何用SAT來跟蹤?這也是Jerry的同事過去經(jīng)常問我的一個(gè)問題。
盡管我們可以用SAT界面右部的In Parellel Session來完成,但Jerry覺得其步驟稍嫌繁瑣,反正Jerry從來不用,詳細(xì)步驟在這篇SAP社區(qū)博客里有詳細(xì)介紹:
https://blogs.sap.com/2011/01/18/next-generation-abap-runtime-analysis-sat-how-to-analyze-program-flow/
本文介紹另一種辦法,這也是Jerry工作中用的辦法。
假設(shè)有一個(gè)SAP Fiori應(yīng)用,點(diǎn)了某個(gè)按鈕后,會(huì)觸發(fā)一個(gè)OData服務(wù)調(diào)用,從ABAP Netweaver服務(wù)器上取數(shù)據(jù)。我已經(jīng)在Chrome開發(fā)者工具里把這個(gè)OData服務(wù)的url抄了下來,維護(hù)在Postman里,隨時(shí)可以重復(fù)調(diào)用。
這種方法的思路概括如下:
(1) 在要跟蹤的后臺(tái)代碼的起始和結(jié)束的位置各打一個(gè)斷點(diǎn),假設(shè)起始位置斷點(diǎn)為1,結(jié)束位置為2.
(2) 在瀏覽器或者其他工具里啟動(dòng)應(yīng)用,觸發(fā)斷點(diǎn)1,此時(shí)在調(diào)試器里開啟SAT的Trace模式。
(3) 調(diào)試器里直接按F8,程序會(huì)執(zhí)行到斷點(diǎn)2然后停下來。此時(shí)在調(diào)試器里關(guān)閉SAT的Trace模式。
(4) 結(jié)束程序的執(zhí)行,回到SAT,查看Trace結(jié)果。
這種方法的關(guān)鍵在于找準(zhǔn)斷點(diǎn)1和斷點(diǎn)2的位置。如果是跟蹤自己熟悉的應(yīng)用,找準(zhǔn)位置不難;如果跟蹤的應(yīng)用自己不熟悉,那么就在框架開始執(zhí)行和結(jié)束的位置各設(shè)置一個(gè)斷點(diǎn)就好了。
還是以上面的OData服務(wù)為例,因?yàn)槌聛淼膗rl片段包含了/sap/opu/odata/sap, 這起始已經(jīng)告訴了我們?cè)谀睦镌O(shè)置斷點(diǎn)。
打開事務(wù)碼SICF,輸入OData然后查詢,在結(jié)果列表里雙擊OData節(jié)點(diǎn):
凡是瀏覽器里從ABAP Netweaver后臺(tái)發(fā)起的HTTP調(diào)用,只要url包含/sap/opu/odata, 必定會(huì)被SICF事務(wù)碼里odata這個(gè)節(jié)點(diǎn)分配的ABAP Handler類處理。
雙擊進(jìn)入這個(gè)類的HANDLE_REQUEST方法,在其方法開始的位置設(shè)置斷點(diǎn)1,在這個(gè)方法的最后一行設(shè)置斷點(diǎn)2.
現(xiàn)在打開瀏覽器或者執(zhí)行Postman以觸發(fā)斷點(diǎn)1,在調(diào)試器里點(diǎn)擊New Tool按鈕,
在彈出窗口里,點(diǎn)擊Special Tools里的Trace按鈕,
雙擊這個(gè)圖標(biāo),開啟SAT的跟蹤模式:
Status欄看到綠燈,說明當(dāng)前已經(jīng)在Trace模式了:
F8執(zhí)行到第二個(gè)斷點(diǎn),雙擊下圖藍(lán)色區(qū)域的圖標(biāo)以關(guān)閉SAT跟蹤模式。關(guān)閉后,Status欄的綠燈變紅,同時(shí)TraceFile里出現(xiàn)一個(gè)卷軸圖標(biāo),提示我們SAT跟蹤文件已經(jīng)生成了。
打開SAT事務(wù)碼,看到這個(gè)成功生成的結(jié)果文件。
樹形結(jié)構(gòu)的調(diào)用棧,每個(gè)棧的執(zhí)行性能清晰地羅列出來。
大家可以把這種方法和Jerry在文章開頭提到的博客里介紹的另一種辦法做比較,看自己更喜歡哪一種。
感謝閱讀,祝大家在家中宅得愉快。
更多閱讀
-
Jerry的ABAP, Java和JavaScript亂燉
-
ABAP開發(fā)人員未來應(yīng)該學(xué)些什么
-
Jerry 2017年的五一小長(zhǎng)假:8種經(jīng)典排序算法的ABAP實(shí)現(xiàn)
-
Jerry的ABAP原創(chuàng)技術(shù)文章合集
-
300行ABAP代碼實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的區(qū)塊鏈原型
-
使用Java+SAP云平臺(tái)+SAP Cloud Connector調(diào)用ABAP On-Premise系統(tǒng)里的函數(shù)
-
在SAP云平臺(tái)的CloudFoundry環(huán)境下消費(fèi)ABAP On-Premise OData服務(wù)
-
ABAP vs Java, 蛙泳 vs 自由泳
-
聊聊C語言和ABAP
-
動(dòng)手使用ABAP Channel開發(fā)一些小工具,提升日常工作效率
-
我用ABAP做過的那些無聊的事情
-
不喜歡SAP GUI?那試試用Eclipse進(jìn)行ABAP開發(fā)吧
-
使用Visual Studio Code編寫和激活A(yù)BAP代碼
-
你的ABAP程序給佛祖開過光么?來試試Jerry這個(gè)小技巧
-
在SAP云平臺(tái)ABAP編程環(huán)境上編寫第一段ABAP程序
-
SAP官方發(fā)布的ABAP編程規(guī)范
-
ABAP Code Inspector那些隱藏的功能,您都知道嗎?
-
還在用ABAP進(jìn)行SAP產(chǎn)品的二次開發(fā)?來了解下這種全新的二次開發(fā)理念吧
-
ABAP Netweaver體內(nèi)的那些寄生式編程語言
-
從SAP社區(qū)上的一篇博客開始,聊聊SAP產(chǎn)品命名背后的那份情懷
-
云端的ABAP Restful服務(wù)開發(fā)
-
如何在SAP云平臺(tái)ABAP編程環(huán)境里把CDS view暴露成OData服務(wù)
-
使用abapGit在ABAP On-Premises系統(tǒng)和SAP云平臺(tái)ABAP環(huán)境之間進(jìn)行代碼傳輸
-
30分鐘用Restful ABAP Programming模型開發(fā)一個(gè)支持增刪改查的Fiori應(yīng)用
-
Jerry帶您了解Restful ABAP Programming模型系列之二:Action和Validation的實(shí)現(xiàn)
-
Jerry帶您了解Restful ABAP Programming模型系列之三:云端ABAP應(yīng)用調(diào)試
-
SAP云平臺(tái)上的ABAP編程環(huán)境里如何消費(fèi)第三方服務(wù)
-
ABAP開發(fā)者上云的時(shí)候到了 - 現(xiàn)在大家可以免費(fèi)使用SAP云平臺(tái)ABAP環(huán)境的試用版了
-
學(xué)而不思則罔 - SAP云平臺(tái)ABAP編程環(huán)境的由來和適用場(chǎng)景
-
SAP云平臺(tái)里的三叉戟應(yīng)用
-
如何基于Restful ABAP Programming模型開發(fā)并部署一個(gè)支持增刪改查的Fiori應(yīng)用
-
SAP 2019 TechEd Key Note解讀:云時(shí)代下SAP從業(yè)人員如何做二次開發(fā)?
-
有哪些ABAP關(guān)鍵字和語法,到了ABAP云環(huán)境上就沒辦法用了?
-
ABAP開發(fā)環(huán)境終于支持以駝峰命名法自動(dòng)格式化ABAP變量名了
-
利用ABAP 740的新關(guān)鍵字REDUCE完成一個(gè)實(shí)際工作任務(wù)
-
一段讓人瑟瑟發(fā)抖的ABAP代碼
-
昨日萬圣節(jié)ABAP怪獸級(jí)代碼謎團(tuán),公布答案啦
-
介紹一種在ABAP內(nèi)核態(tài)進(jìn)行內(nèi)表高效拷貝的方法
-
使用SAP Cloud Application Programming模型開發(fā)OData的一個(gè)實(shí)際例子
-
當(dāng)ABAP遇見普羅米修斯
-
使用ABAP繪制可伸縮矢量圖
-
ABAP開發(fā)環(huán)境語法高亮的那些事兒
-
SAP錯(cuò)誤消息調(diào)試之七種武器:讓所有的錯(cuò)誤消息都能被定位
-
使用ABAP操作Excel的幾種方法
-
SAP GUI里的收藏夾事務(wù)碼管理工具
-
SAP GUI和Windows注冊(cè)表
-
有了Debug權(quán)限就能干壞事?小心了,你的一舉一動(dòng)盡在系統(tǒng)監(jiān)控中
-
ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX這些東東是什么鬼
-
實(shí)現(xiàn)ABAP條件斷點(diǎn)的三種方式
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的使用SAT跟踪监控从浏览器打开的SAP应用的性能和调用栈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 米哈游新作《崩坏:星穹铁道》已开启预下载
- 下一篇: 使用SAP WebIDE创建开发Java