天天看點

如何查找Fiori UI上某個字段對應的底層資料庫表

很多從事ABAP開發的朋友們,想必都閱讀過這個文檔的英文或中文版:

18 Techniques for Locating the Underlying Data of a Screen Field

在SAP GUI裡查找一個螢幕字段對應的底層資料庫表的18種方法

作者是Dennis Barrett:

到了Fiori時代,裡面的很多辦法都不再适用了。

本文介紹一種方法能找出Fiori UI上某字段對應的ABAP背景資料庫存儲表。雖然不一定足夠通用,但确實能解決Jerry當時實際工作中遇到的一個問題。

這是SAP S/4HANA一個标準的Fiori應用: Product Master

我的需求是,找到字段"Number of Goods Receipt"在背景是存儲在哪張表裡的。

下面是Jerry自己探索的詳細步驟。

(1) 我們知道SAP UI5也是一個基于MVC的前端架構,架構支援雙向綁定。在Chrome開發者工具裡,找到這個UI字段綁定的模型字段名稱:

NmbrOfGROrGISlipsToPrintQty

(2) 找到該Product Master Fiori應用基于的OData服務,浏覽器裡輸入其metadata url檢視結果,找到字段NmbrOfGROrGISlipsToPrintQty的從屬資料類型為:

C_ProductstorageType

(3) 登入ABAP Development Tool,使用菜單"Open ABAP Development Object":

把第二步找到的資料類型C_ProductstorageType,根據命名規範,将Type前面的值C_Productstorage作為關鍵字查詢:

排在結果清單第一位的C_PRODUCTSTORAGE, 是一個CDS view.

該視圖從I_ProductStroageWD裡讀取資料,

I_ProductStorageWD又從I_Productstorage裡讀取:

最終,I_Productstorage從資料庫表MARA裡讀取資料。

在這個視圖的源代碼裡,根據第二步找到的字段名稱NmbrOfGROrGISlipsToPrintQty進行搜尋,立即就找到了對應的資料庫表MARA裡的字段為wesch:

再到SE16裡打開MARA确認一下,發現Fiori UI上看到的23.671這個字段果然存儲在MARA.WESCH裡,任務完成。

更多閱讀

本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。