使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧
今天是農曆鼠年大年初四,本文是鼠年第4篇文章,也是汪子熙公眾號第203篇原創文章。
大家這幾天在家裡宅得如何了?貌似不少朋友都悶壞了。
我們繼續學習。
Jerry之前的文章 SAP錯誤訊息除錯之七種武器:讓所有的錯誤訊息都能被定位 介紹的第五種武器孔雀翎SAT,曾經提到了下面這張SAT的截圖:
大家最常使用SAT的方式,也就是在上圖In Dialog區域裡,輸入事務碼,ABAP報表或者Function Module的名稱,然後點選Execute按鈕. 如此一來,指定的這些ABAP程式會在SAT Trace模式下執行,自動生成包含了執行效能和呼叫棧等資訊,在程式結束退出Trace模式下之後即可檢視。
SAT生成的Trace結果,以樹形結構顯示ABAP程式執行的每一呼叫棧和效能資料,無論是進行效能分析,還是學習一段陌生程式碼的執行邏輯,都非常有用。
那麼這裡有個問題,如果想跟蹤或者想研究的應用,是透過瀏覽器開啟的,例如SAP S/4HANA Fiori應用,SAP ABAP WebDynpro,WebClient UI這種,倘若想研究瀏覽器裡某個應用點了某個按鈕之後,背後發生了什麼,如何用SAT來跟蹤?這也是Jerry的同事過去經常問我的一個問題。
儘管我們可以用SAT介面右部的In Parellel Session來完成,但Jerry覺得其步驟稍嫌繁瑣,反正Jerry從來不用,詳細步驟在這篇SAP社群部落格裡有詳細介紹:
Next Generation ABAP Runtime Analysis (SAT) How to analyze program flow
本文介紹另一種辦法,這也是Jerry工作中用的辦法。
假設有一個SAP Fiori應用,點了某個按鈕後,會觸發一個OData服務呼叫,從ABAP Netweaver伺服器上取資料。我已經在Chrome開發者工具裡把這個OData服務的url抄了下來,維護在Postman裡,隨時可以重複呼叫。
這種方法的思路概括如下:
(1) 在要跟蹤的後臺程式碼的起始和結束的位置各打一個斷點,假設起始位置斷點為1,結束位置為2.
(2) 在瀏覽器或者其他工具裡啟動應用,觸發斷點1,此時在偵錯程式裡開啟SAT的Trace模式。
(3) 偵錯程式裡直接按F8,程式會執行到斷點2然後停下來。此時在偵錯程式裡關閉SAT的Trace模式。
(4) 結束程式的執行,回到SAT,檢視Trace結果。
這種方法的關鍵在於找準斷點1和斷點2的位置。如果是跟蹤自己熟悉的應用,找準位置不難;如果跟蹤的應用自己不熟悉,那麼就在框架開始執行和結束的位置各設定一個斷點就好了。
還是以上面的OData服務為例,因為抄下來的url片段包含了/sap/opu/odata/sap, 這起始已經告訴了我們在哪裡設定斷點。
開啟事務碼SICF,輸入OData然後查詢,在結果列表裡雙擊OData節點:
凡是瀏覽器裡從ABAP Netweaver後臺發起的HTTP呼叫,只要url包含/sap/opu/odata, 必定會被SICF事務碼裡odata這個節點分配的ABAP Handler類處理。
雙擊進入這個類的HANDLE_REQUEST方法,在其方法開始的位置設定斷點1,在這個方法的最後一行設定斷點2.
現在開啟瀏覽器或者執行Postman以觸發斷點1,在偵錯程式裡點選New Tool按鈕,
在彈出視窗裡,點選Special Tools裡的Trace按鈕,
雙擊這個圖示,開啟SAT的跟蹤模式:
Status欄看到綠燈,說明當前已經在Trace模式了:
F8執行到第二個斷點,雙擊下圖藍色區域的圖示以關閉SAT跟蹤模式。關閉後,Status欄的綠燈變紅,同時TraceFile裡出現一個卷軸圖示,提示我們SAT跟蹤檔案已經生成了。
開啟SAT事務碼,看到這個成功生成的結果檔案。
樹形結構的呼叫棧,每個棧的執行效能清晰地羅列出來。
大家可以把這種方法和Jerry在文章開頭提到的部落格裡介紹的另一種辦法做比較,看自己更喜歡哪一種。
感謝閱讀,祝大家在家中宅得愉快。
更多閱讀
- Jerry的ABAP, Java和JavaScript亂燉
- ABAP開發人員未來應該學些什麼
- Jerry 2017年的五一小長假: 8種經典排序演算法的ABAP實現
- Jerry的ABAP原創技術文章合集
- 300行ABAP程式碼實現一個最簡單的區塊鏈原型
- 使用Java+SAP雲平臺+SAP Cloud Connector呼叫ABAP On-Premise系統裡的函式
- 在SAP雲平臺的CloudFoundry環境下消費ABAP On-Premise OData服務
- ABAP vs Java, 蛙泳 vs 自由泳
- 聊聊C語言和ABAP
- 動手使用ABAP Channel開發一些小工具,提升日常工作效率
- 我用ABAP做過的那些無聊的事情
- 不喜歡SAP GUI? 那試試用Eclipse進行ABAP開發吧
- 使用Visual Studio Code編寫和啟用ABAP程式碼
- 你的ABAP程式給佛祖開過光麼? 來試試Jerry這個小技巧
- 在SAP雲平臺ABAP程式設計環境上編寫第一段ABAP程式
- SAP官方釋出的ABAP程式設計規範
- ABAP Code Inspector那些隱藏的功能,您都知道嗎?
- 還在用ABAP進行SAP產品的二次開發?來了解下這種全新的二次開發理念吧
- ABAP Netweaver體內的那些寄生式程式語言
- 從SAP社群上的一篇部落格開始,聊聊SAP產品命名背後的那份情懷
- 雲端的ABAP Restful服務開發
- 如何在SAP雲平臺ABAP程式設計環境裡把CDS view暴露成OData服務
- 使用abapGit在ABAP On-Premises系統和SAP雲平臺ABAP環境之間進行程式碼傳輸
- 30分鐘用Restful ABAP Programming模型開發一個支援增刪改查的Fiori應用
- Jerry帶您瞭解Restful ABAP Programming模型系列之二:Action和Validation的實現
- Jerry帶您瞭解Restful ABAP Programming模型系列之三: 雲端ABAP應用除錯
- SAP雲平臺上的ABAP程式設計環境裡如何消費第三方服務
- ABAP開發者上雲的時候到了 - 現在大家可以免費使用SAP雲平臺ABAP環境的試用版了
- 學而不思則罔 - SAP雲平臺ABAP程式設計環境的由來和適用場景
- SAP雲平臺裡的三叉戟應用
- 如何基於Restful ABAP Programming模型開發並部署一個支援增刪改查的Fiori應用
- SAP 2019 TechEd Key Note解讀:雲時代下SAP從業人員如何做二次開發?
- 有哪些ABAP關鍵字和語法,到了ABAP雲環境上就沒辦法用了?
- ABAP開發環境終於支援以駝峰命名法自動格式化ABAP變數名了
- 利用ABAP 740的新關鍵字REDUCE完成一個實際工作任務
- 一段讓人瑟瑟發抖的ABAP程式碼
- 昨日萬聖節ABAP怪獸級程式碼謎團,公佈答案啦
- 介紹一種在ABAP核心態進行內表高效複製的方法
- 使用SAP Cloud Application Programming模型開發OData的一個實際例子
- 當ABAP遇見普羅米修斯
- 使用ABAP繪製可伸縮向量圖
- ABAP開發環境語法高亮的那些事兒
- SAP錯誤訊息除錯之七種武器: 讓所有的錯誤訊息都能被定位
- 使用ABAP操作Excel的幾種方法
- SAP GUI裡的收藏夾事務碼管理工具
- SAP GUI和Windows登錄檔
- 有了Debug許可權就能幹壞事?小心了,你的一舉一動盡在系統監控中
- ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX這些東東是什麼鬼
- 實現ABAP條件斷點的三種方式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2674515/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 ABAP 事物碼 SAT 對從瀏覽器開啟的 SAP應用進行效能監控和測量瀏覽器
- SAP Corbu Theme 在瀏覽器和 SAPGUI 應用中的使用場景ORB瀏覽器GUI
- 報表開啟慢跟蹤難?可通過效能監控快速解決
- 如何使用SAP事務碼SAT進行UI應用的效能分析UI
- Java呼叫鏈跟蹤關鍵技術(四)SQL監控JavaSQL
- macOS Big Sur 如何使用Safari瀏覽器智慧防跟蹤功能?Mac瀏覽器
- 使用 Prometheus 監控 SAP ABAP 應用程式Prometheus
- shellinabox 可以用瀏覽器開啟的 SSH瀏覽器
- 使用chrome瀏覽器驅動自動開啟瀏覽器Chrome瀏覽器
- 使用SAP WebIDE建立開發Java應用,並且在瀏覽器裡除錯WebIDEJava瀏覽器除錯
- 【瀏覽器開啟匯出的excel】瀏覽器Excel
- 呼叫瀏覽器的爬蟲——selenium瀏覽器爬蟲
- ie瀏覽器開啟變成別的瀏覽器怎麼辦 開啟ie瀏覽器變成360怎麼改瀏覽器
- 怎麼用谷歌瀏覽器開啟jupyter谷歌瀏覽器
- python用selenium開啟瀏覽器後瀏覽器關閉---解決辦法Python瀏覽器
- chrome開啟瀏覽器的python指令碼Chrome瀏覽器Python指令碼
- Sentry 監控 - 全棧開發人員的分散式跟蹤 101 系列教程(第一部分)全棧分散式
- 如何在瀏覽器裡開發並執行 SAP UI5 應用瀏覽器UI
- Google Chrome等瀏覽器不再允許關閉點選跟蹤GoChrome瀏覽器
- 瀏覽器開啟md文件瀏覽器
- ie瀏覽器在電腦哪裡 電腦自帶的ie瀏覽器怎麼開啟使用瀏覽器
- CSS動畫的效能分析和瀏覽器GPU加速CSS動畫瀏覽器GPU
- 使用Prometheus和Grafana監控Spring Boot應用PrometheusGrafanaSpring Boot
- win10系統下edge瀏覽器如何開啟flash_win10edge瀏覽器啟用flash的步驟Win10瀏覽器
- Android開發之跟蹤應用更新大小Android
- 監聽瀏覽器的後退事件瀏覽器事件
- 替代Edge瀏覽器?微軟開發新的瀏覽器:採用Chrome核心瀏覽器微軟Chrome
- 【譯】Google - 使用 webpack 進行 web 效能優化(三):監控和分析應用GoWeb優化
- SAP ABAP程式碼中開啟瀏覽器跳轉訪問URL瀏覽器
- puppeteer中如何複用啟動中的瀏覽器瀏覽器
- 應用推薦:來自 KDE 的 Falkon 開源 Web 瀏覽器Web瀏覽器
- win10系統如何開啟/關閉"應用程式啟動跟蹤"功能Win10
- 黑客入侵Chrome和Firefox瀏覽器,利用TLS以追蹤使用者黑客ChromeFirefox瀏覽器TLS
- SkyWalking —— 分散式應用監控與鏈路追蹤分散式
- 使用SpringBoot Actuator監控應用Spring Boot
- 使用 sentry 除錯應用和監控異常除錯
- SAP Data Intelligence Graph使用瀏覽器訪問的url規範Intel瀏覽器
- 大象跳轉-使用JS實現在微信中呼叫外部瀏覽器開啟指定連結JS瀏覽器