您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關怎么自行給指定的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上隨便做幾個點擊操作:
回到我們自定義的日志記錄表里,發現填充了一些記錄了,這個自定義日志記錄功能就實現了。
感謝各位的閱讀!關于“怎么自行給指定的SAP OData服務添加自定義日志記錄功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。