如何查找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上看到的一致,任务完成。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

原文地址:https://www.cnblogs.com/sap-jerry/p/8438656.html

时间: 2024-08-30 03:13:11

如何查找Fiori UI上某个字段对应的后台存储表的名称的相关文章

如何查找BAPI SD_SALESDOCUMENT_CHANGE里的字段对应的数据库存储表

BAPI函数SD_SALESDOCUMENT_CHANGE可以让我们很方便地通过ABAP代码来修改Sales Order. 其输入参数ORDER_HEADER_IN的类型是BAPISDHD1, 里面包含了这个字段,比如SERV_DATE: service rendered date. 如果想知道一个Sales Order的SERV_DATE字段存储在哪张表,该怎么找呢?注意上图提示,SERV_DATE的类型是FBUDA. 记住这个FBUDA名称. 使用SE37的where used list搜索

SAP S/4HANA系统Fiori UI上Adapt UI按钮显示与否的控制逻辑

I use the same user to log on the same system, however some times the Adapt UI button is available but some times not. This behavior is very weird. See Shell source code for answer. The "Adapt UI" button is only available if shell is working und

如何将BSP应用配置成Fiori Launchpad上的一个tile

当我们通过WebIDE或者Eclipse的插件Team Provider把一个本地开发好的UI5应用部署到了ABAP Netweaver服务器上之后,我们可以将该UI5应用配置成Fiori launchpad上的一个tile,便于客户使用.本文是具体步骤. 1. 使用事务码LPD_CUST,双击角色UICRM001: 进入之后能看到很多记录,每条记录对应着Fiori launchpad上的一个tile: 可以参考标准的CRM Fiori应用My Notes对应的配置. 需要开发人员配置的两个字段

查找、删除多个字段相同的记录

--查找姓名.性别.年龄.地址.电话相同的员工记录. select count(id) as id_count, name, sex, birthday, address, telfrom staffgroup by name, sex, birthday, address, telhaving(count(*) > 1); --删除姓名.性别.年龄.地址.电话相同的重复员工记录(保留ID最大的一条). delete staff where id not in (select max(id) f

unity区分点击在3D物体还是2D UI上

当场景中的3D物体需要响应点击,但同时有UI显示时,存在判断点击是在3D物体上还是UI上的问题,办法如下: 1. 射线检测所有2D 3D物体,有2D物体被检测到时表明当前有UI.但无论Physics2D.Raycast()还是Physics.Raycast()都只能检测到含有Collider组件的物体,普通UI如Image Button等一般用射线是不起作用的.EventSystem.current.RaycastAll()可以将当前屏幕上的所有可检测的物体全部检测到,该方法需要自己构造一个Po

查找本库包含某字段的所有表

数据库表格多了,想找出包含某个字段的所有表. --syscolumns 和 sysobjects 是数据库 维护的 列集表 和 表集表 SELECT col.name TableName FROM syscolumns col JOIN sysobjects tab ON col.id = tab.id AND tab.type='U' AND col.name='Phone' 查找本库包含某字段的所有表,码迷,mamicode.com

linux 查询管道过滤,带上标题字段

linux查询过滤, 带上标题字段例: 一个简单的查询 ps -e | grep httpd 上面经过grep 过滤后, 标题没了, 但是为了看上去更方便,有标题字段看起来更方便一些, 那么可以按下面的写法来实现 命令: ps -e | head -1;ps -e | grep httpd 看一下效果吧: 说明: head -1 就是取第一行  其实就是进行了两次查询, 第一次只取标题, 如果你有更好的方法, 欢迎留言 END/ 原文地址:https://www.cnblogs.com/alex

Unity3D_UGUI判断鼠标或者手指是否点击在UI上

比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分.为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上. 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法. #if UNITY_ANDROID && !UNITY_EDITOR #define ANDROID #endif #if UNITY_IPHONE && !UNITY_EDITOR #define IPHONE #e

UGUI 特效怎样在UI上裁剪

刚好碰到有人问怎样把粒子特效放到 UI 上并且能正确被 Mask 裁剪, 首先想到给粒子效果的 Shader 添加模板模仿一般 UI 的模板方式, 应该就能正确裁剪了吧, 不过没那么简单, 我们看到在一般 UI 上, 没在 Mask 下的 UI 对比在 Mask 下的 UI, 它们的材质设置是不一样的, 也就是说有哪个组件对材质进行了修改, 查了一下就是 Mask 组件, 它会收集子节点下的所有对象, 然后对可以修改的材质进行修改, 所以才能自动控制裁剪. 为了搞清楚, 这里做了一下测试: 1.