使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

i042416發表於2020-02-05

今天是農曆鼠年大年初四,本文是鼠年第4篇文章,也是汪子熙公眾號第203篇原創文章。

大家這幾天在家裡宅得如何了?貌似不少朋友都悶壞了。

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧 使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧 使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

我們繼續學習。

Jerry之前的文章 SAP錯誤訊息除錯之七種武器:讓所有的錯誤訊息都能被定位 介紹的第五種武器孔雀翎SAT,曾經提到了下面這張SAT的截圖:

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

大家最常使用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

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

本文介紹另一種辦法,這也是Jerry工作中用的辦法。

假設有一個SAP Fiori應用,點了某個按鈕後,會觸發一個OData服務呼叫,從ABAP Netweaver伺服器上取資料。我已經在Chrome開發者工具裡把這個OData服務的url抄了下來,維護在Postman裡,隨時可以重複呼叫。

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

這種方法的思路概括如下:

(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節點:

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

凡是瀏覽器裡從ABAP Netweaver後臺發起的HTTP呼叫,只要url包含/sap/opu/odata, 必定會被SICF事務碼裡odata這個節點分配的ABAP Handler類處理。

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

雙擊進入這個類的HANDLE_REQUEST方法,在其方法開始的位置設定斷點1,在這個方法的最後一行設定斷點2.

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

現在開啟瀏覽器或者執行Postman以觸發斷點1,在偵錯程式裡點選New Tool按鈕,

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

在彈出視窗裡,點選Special Tools裡的Trace按鈕,

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

雙擊這個圖示,開啟SAT的跟蹤模式:

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

Status欄看到綠燈,說明當前已經在Trace模式了:

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

F8執行到第二個斷點,雙擊下圖藍色區域的圖示以關閉SAT跟蹤模式。關閉後,Status欄的綠燈變紅,同時TraceFile裡出現一個卷軸圖示,提示我們SAT跟蹤檔案已經生成了。

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

開啟SAT事務碼,看到這個成功生成的結果檔案。

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

樹形結構的呼叫棧,每個棧的執行效能清晰地羅列出來。

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

大家可以把這種方法和Jerry在文章開頭提到的部落格裡介紹的另一種辦法做比較,看自己更喜歡哪一種。

使用SAT跟蹤監控從瀏覽器開啟的SAP應用的效能和呼叫棧

感謝閱讀,祝大家在家中宅得愉快。

更多閱讀


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2674515/,如需轉載,請註明出處,否則將追究法律責任。

相關文章