如何自行查找出 SAP ABAP 标准的 OData 服务返回数据的后台数据库表和表字段名称试读版

简介: 如何自行查找出 SAP ABAP 标准的 OData 服务返回数据的后台数据库表和表字段名称试读版

笔者的知识星球有朋友提问,询问如何查找一个 SAP ABAP OData 服务,暴露出的字段到底来自 SAP ABAP 后台哪些数据库表的哪些字段。


要回答这个问题,需要综合运用到我们过去学过的包括 ABAP 后台程序单步调试的知识。


本文我们还是通过之前使用过的 SAP CRM 标准的 Fiori 应用,My Accounts 作为例子进行讲解。


在 Fiori Launchpad 里点击 My Accounts tile 之后,能看到 SAP OData 服务返回的 Accounts 数据列表。


点击其中一个行项目,就能进入 Accounts 的明细页面。这里在 SAP UI5 应用界面上看到的字段,都是该应用对应的 OData 服务从 SAP 后台业务服务器取回的。


在实际的 SAP 集成项目中,我们有时候会需要知道这些 OData 返回字段值,到底是存储在哪些数据库表的哪些字段中。这些信息作为系统集成二次开发的理论前提。


本教程前一篇文章,已经介绍了如何通过 Chrome 开发者工具,自行找到该 SAP UI5 应用使用的 OData 服务的名称,以及运行时部署在 SAP Gateway 系统上的 SAP UI5 应用,发出的 OData 服务,到底被哪一台 SAP 后台服务器接收并处理。



11be632b46db1b4c4f57d5657373dc70_49ed3923ea67d2193c057eb3ec58cc0f.png


本文首先介绍另一种方式,不通过 Chrome 开发者工具,即可直接找到 My Accounts 应用使用的 OData 服务名称。

按照笔者这篇教程介绍的步骤,即可轻松找到 OData 服务的名称为 CRM_BUPA_ODATA.


并且能够快速获得下面这张列表,即 OData CRM_BUPA_ODATA 在运行时访问的 SAP 数据库表的清单。


从清单里我们很容易找到 Fiori UI 上的 Account 字段,对应数据库表里哪些存储字段。


上图第三列 Accesses 列表示该行表示的数据库表在整个执行过程中,被访问的次数,第四列 Net 代表访问该数据库表耗费的时间,单位是微秒。Short Description 即数据库表的描述信息,Package 即所在 ABAP 开发包的名称。


从上图描述信息能够看出,BUT000 这张表存储了 Business Partner 数据模型的抬头信息。本文讨论的 My Accounts 应用里显示的 Account 模型,是一种特殊类型的 Business Partner.


比如 My Accounts 应用显示的 First Name 和 Last Name 的值:

实际存储在数据库表 BUT000 如下图所示的 NAME_LASTNAME_FIRST 字段里。


通过这张表里的 PERSNUMBER 字段作为外键:

还能链接到其他数据库表,比如同样出现在 SAT 事务码结果列表里的 ADR12, Account 在 Fiori UI 上显示的 WebSite,就存储在这张数据库表的 URI_SRCH 字段里。


总结


这篇文章首先介绍了已知一个 SAP UI5 应用名称,如何通过 SAP 官方工具,快速查找到其使用的 OData 服务名称。接着介绍了如何在 ABAP 调试器里,通过内置的 ABAP Trace 将调试器里执行的 ABAP 代码的明细全部记录下来,保存成能够在事务码 SAT 里查看的 Trace 文件。最后通过实际的例子,展示了如何在事务码 SAT 里查看 OData 服务运行时访问了哪些数据库表,以及将 SAP UI5 界面上的字段同这些数据库表的字段进行一一匹配。


相关文章
|
1天前
|
存储 监控 物联网
时间序列数据库:处理时间数据的利器
【6月更文挑战第16天】时间序列数据库(TSDB)是处理按时间顺序排列数据的专用工具,优化了数据压缩、查询性能和可扩展性,适合高并发写入与实时查询。TSDB在存储成本、查询效率和实时分析上具优势,广泛应用在物联网、金融、能源和制造业等领域,随着技术发展,其重要性日益凸显。
|
1天前
|
存储 NoSQL 算法
图数据库:连接数据的新模式
【6月更文挑战第16天】图数据库是处理复杂关系数据的新兴技术,使用节点、边和属性表示数据间关系。它提供强大的关系表达能力、灵活性、实时性和扩展性。新模式包括关系网络可视化、基于路径的查询、内置图算法支持,适用于推荐系统和社交网络分析,助力企业挖掘数据价值并应对大数据时代挑战。随着技术发展,图数据库将在数据连接和分析中扮演关键角色。
|
1天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之在进行Oracle数据库的全量同步时,只同步了一条数据而源表实际上包含多条数据,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2天前
|
SQL 关系型数据库 数据库
实时计算 Flink版产品使用问题之如何同步一个数据库的数据转换到另一个库
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2天前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用问题之连接到Oracle数据库但无法读取到数据,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3天前
|
SQL 关系型数据库 MySQL
MySQL数据库子查询练习——单个数据的子查询
MySQL数据库子查询练习——单个数据的子查询
8 1
|
5天前
|
SQL 关系型数据库 MySQL
MySQL中如何查看所有数据库的名称?
【6月更文挑战第12天】MySQL中如何查看所有数据库的名称?
16 3
|
6天前
|
SQL 安全 数据库
数据库||数据定义
数据库||数据定义
|
6天前
|
SQL 存储 数据管理
数据管理DMS产品使用合集之如何把整个数据库的表和数据全部导出来
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
7天前
|
存储 SQL 关系型数据库
使用关系型数据库三级模式存储数据的优缺点
【6月更文挑战第10天】数据模型是DBMS的核心,提供数据透明性和设计指导。包括概念、逻辑和物理三层:概念模型(如ER模型)用于理解和收集需求,逻辑模型(如关系模型)关注设计,物理模型涉及实际存储实现。
12 0
使用关系型数据库三级模式存储数据的优缺点

热门文章

最新文章