如何查找Fiori UI上某个字段对应的后台存储表的名称
今天微信群里有朋友问到这个问题。
如果是SAPGUI里的事务码,比如MM01,对于开发者来说这个任务非常容易完成。
比如我想知道下图“Sales Unit”这个字段的值到底保存在哪张表的哪个字段里,只需要选中这个字段,按F1,在弹出窗口里即可得知表名是MVKE,字段名是VRKME.
在S/4 Fiori UI里,因为UI是由SAP UI5开发的,所以F1这个功能键无法继续使用。我们需要Chrome Development Tool的帮助。
还是看个具体例子: 我希望知道S/4HANA的Material master data这个Fiori应用里这个标签为"Number of Goods Receipt/Issue Slips"是存在哪张表里的。
详细步骤如下:
1. 搞清楚这个UI字段是绑在哪个模型字段上的。这里的模型指的就是MVC里的Model。
用Chrome打开Fiori 应用,按F12打开Chrome development tool, 然后在下图的UI5 tab里找到这个字段的绑定细节: 得知它绑到了模型字段NmbrOfGROrGISlipsToPrintQty。
如果你的Chrome development tool打开没有看到这个UI5 tab, 是因为没有装一个名叫UI5 Inspector的Chrome扩展程序。
具体怎么安装,可以查看我的博客An useful Chrome extension - UI5 Inspector
如果有时间,不妨多花点时间在Chrome development tool上,这个工具之于Fiori UI的重要性就像ABAP Debugger之于SAPGUI的重要性一样,在上面投资时间比较值得。
我的一些日常工作的关于使用Chrome development tool的心得总结在这篇博客: Chrome Development Tool tips used in my daily work
2. 在Chrome里打开当前Fiori应用所消费的OData service的metadata url。
怎么找到这个url呢?重新打开你的Fiori应用,在Chrome development tool的Network tab里的filter输入框里,输入meta, 这样metadata请求的url就被显示出来了,如下图红色横线标注的url。
浏览器打开Open the metadata url之后,快捷键Ctrl+F, 输入第一步找到的模型字段的名称NmbrOfGROrGISlipsToPrintQty。这时就能找到该模型字段所属的Entity Type为C_ProductstorageType.
3. 用ABAP development studio登陆ABAP系统:
输入第二步找到的类型名称: C_Productstorage(把末尾的Type去掉)
C_PRODUCTSTORAGE就是CDS view的名称。打开它的定义,发现它从另一个CDS view I_ProductStorageWD取数据,那么再打开I_ProductStorageWD:
I_ProductStorageWD又是从P_ProductStorageWD取:
P_ProductStorageWD从I_Productstorage取:
最终的数据源是表MARA, 字段名为wesch:
到SE16里打开MARA,发现字段WESCH存储的值确实和Fiori UI上看到的一致,任务完成。