如何自行給指定的SAP OData服務新增自定義日誌記錄功能
有的時候,SAP標準的OData實現或者相關的工具沒有提供我們想記錄的日誌功能,此時可以利用SAP系統強大的擴充套件特性,進行自定義日誌功能的二次開發。
以SAP CRM Fiori應用“My Opportunity”為例:我們首先在其OData服務CRM_OPPORTUNITY的實現類CL_CRM_OPPORTUNITY_IMPL的建構函式方法CONSTRUCTOR裡設定一個值為GET_BADI的動態斷點,這樣除錯模式下,ABAP偵錯程式會自動停在所有出現了GET BADI關鍵字呼叫的地方。
透過這個方法,我們很快找到了一個能夠放置我們自定義日記記錄邏輯的地方:就是程式碼85行的BAdI定義,CRM_OPPORTUNITY_ODATA_DB. 在SAP標準OData服務實現的讀取操作裡,每次從資料庫呼叫One Order API讀取Opportunity資料後,都要執行這個BAdI.
這是該BAdI執行的呼叫棧:
事務碼SE18,根據我們剛剛找到的BAdI定義建立一個增強實現:
這個增強實現類ZCL_JERRY_ODATA_TRACE裡,現在可以編寫我們的日誌記錄邏輯了。
首先建立一個資料庫表,用於存放我們的日誌記錄。為簡單起見,我僅僅記錄了請求的使用者名稱,請求日期和時間,大家可以根據自己實際需求新增相關欄位。
增強程式碼也很簡單:
DATA(ls_log) = VALUE zorder_guid( user_name = sy-uname
req_date = sy-datum req_time = sy-timlo ).
CALL FUNCTION 'SYSTEM_UUID_CREATE'
IMPORTING
uuid = ls_log-guid.
INSERT zorder_guid FROM ls_log.
啟用這個增強後,到Fiori UI上隨便做幾個點選操作:
回到我們自定義的日誌記錄表裡,發現填充了一些記錄了,這個自定義日誌記錄功能就實現了。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2666010/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python日誌記錄中新增自定義屬性Python
- 使用OData服務將SAP C4C自定義BO的TextCollection暴露給外部消費者
- 如何給 SAP Fiori Elements 應用新增自定義按鈕
- 操作日誌記錄(包括輸出至自定義日誌檔案)
- 如何給 SAP ABAP SEGW 開發的 OData 服務新增 Access-Control-Allow-Origin 響應頭
- laravel5.7 不記錄 sql 報錯日誌,自定義日誌資訊LaravelSQL
- Laravel 中自定義日誌目錄Laravel
- 如何給 SAP ABAP ALV 報表的修改功能新增自定義校驗邏輯試讀版
- 如何使用 ABAP 程式消費 SAP ABAP OData 服務
- 如何使用 SEGW 的 redefine 功能對 SAP 標準 OData 服務進行擴充套件套件
- 基於.NetCore3.1系列 —— 日誌記錄之自定義日誌元件NetCore元件
- Laravel 指定日誌檔案記錄任意日誌Laravel
- .NET 8使用日誌功能以及自定義日誌提供程式
- 微服務體系操作日誌如何記錄?微服務
- Windows服務使用log4net記錄日誌Windows
- SAP ABAP OData 服務的 $count 操作實現
- [Linux]如何給Nginx新增服務LinuxNginx
- CentOS7使用systemctl新增自定義服務CentOS
- Rust 實現日誌記錄功能Rust
- Lumen 日誌自定義
- gunicorn 自定義日誌
- 使用 SAP Cloud SDK 連線 OData 服務Cloud
- SAP ABAP OData 服務如何支援 $orderby (排序)操作試讀版排序
- 自定義SAP功能表
- 自定義註解+反射 實現給註解新增功能的效果反射
- 如何給SAP Cloud for Customer UI上的欄位新增自定義校驗邏輯CloudUI
- Windows如何安裝自定義服務Windows
- 學會使用 SAP ABAP Application Log 在程式碼裡新增應用日誌記錄功能試讀版APP應用日誌
- laravelS 記錄accesslog日誌,服務慢查詢預警Laravel
- Linux下rsyslog日誌收集服務環境部署記錄Linux
- 日誌服務
- SAP ABAP OData 服務如何支援 $filter (過濾)操作試讀版Filter
- SAP ABAP OData 服務如何支援建立(Create)操作試讀版
- SAP ABAP OData 服務如何支援刪除(Delete)操作試讀版delete
- 自定義Nginx日誌格式Nginx
- 如何自行查詢出 SAP ABAP 標準的 OData 服務返回資料的後臺資料庫表和表欄位名稱資料庫
- 如何優雅的記錄操作日誌?
- SAP Gateway Service Builder 裡的 OData 服務實現方式GatewayUI