当前位置: 首页 > news >正文

如何查找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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

相关文章:

  • 日志切割
  • Visual Studio 代码折叠快捷键(摘要)
  • 中小型研发团队架构实践九:任务调度Job
  • 数组
  • golang 发送GET和POST示例
  • 监听器
  • 用Hexo搭建属于自己的Blog
  • ipcs命令详解
  • 多态
  • 个人站点的日期查询
  • 2017-2018年度Scrum现状报告发布
  • 我们的春节--2019
  • BZOJ 1412 狼和羊的故事
  • LeetCode29.两数相除 JavaScript
  • vim命令模式下光标移动+查找
  • 【知识碎片】第三方登录弹窗效果
  • Angular 响应式表单之下拉框
  • Django 博客开发教程 16 - 统计文章阅读量
  • idea + plantuml 画流程图
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • MQ框架的比较
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Zepto.js源码学习之二
  • 从tcpdump抓包看TCP/IP协议
  • 给github项目添加CI badge
  • 关于springcloud Gateway中的限流
  • 基于web的全景—— Pannellum小试
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 技术胖1-4季视频复习— (看视频笔记)
  • 简单实现一个textarea自适应高度
  • 普通函数和构造函数的区别
  • 如何设计一个微型分布式架构?
  • 深度解析利用ES6进行Promise封装总结
  • 双管齐下,VMware的容器新战略
  • 我的面试准备过程--容器(更新中)
  • ​Java并发新构件之Exchanger
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (初研) Sentence-embedding fine-tune notebook
  • (顺序)容器的好伴侣 --- 容器适配器
  • ***检测工具之RKHunter AIDE
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET中winform传递参数至Url并获得返回值或文件
  • ::前边啥也没有
  • @ComponentScan比较
  • @Pointcut 使用
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [Assignment] C++1
  • [BUG] Authentication Error
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [hdu 2826] The troubles of lmy [简单计算几何 - 相似]
  • [HITCON 2017]SSRFme perl语言的 GET open file 造成rce