如何自行查找出 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 界面上的字段同这些数据库表的字段进行一一匹配。


相关文章
|
22天前
|
SQL 数据库 微服务
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
|
21天前
|
弹性计算 NoSQL 网络安全
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
|
1月前
|
关系型数据库 数据管理 数据库
数据管理DMS产品使用合集之如何极速恢复RDS(关系型数据库服务)中的数据表
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
1月前
|
关系型数据库 MySQL 数据库
Mysql数据库服务的启动与停止及数据库选择
Mysql数据库服务的启动与停止及数据库选择
18 0
|
2月前
|
Cloud Native 数据管理 关系型数据库
【阿里云云原生专栏】云原生数据管理:阿里云数据库服务的分布式实践
【5月更文挑战第21天】阿里云数据库服务在云原生时代展现优势,应对分布式数据管理挑战。PolarDB等服务保证高可用和弹性,通过多副本机制和分布式事务确保数据一致性和可靠性。示例代码展示了在阿里云数据库上进行分布式事务操作。此外,丰富的监控工具协助用户管理数据库性能,支持企业的数字化转型和业务增长。
205 1
|
2月前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
|
1月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之DataWorks是否支持通过SQL方式在MaxCompute中查询数据,并通过数据集成服务将查询结果同步至MySQL数据库
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
|
2月前
|
NoSQL 安全 MongoDB
MongoDB为提供MongoDB数据库服务的云服务合作伙伴推出认证计划
Certified by MongoDB DBaaS计划还将为云计算合作伙伴提供构建深度技术集成所需的专业支持,同时还将携手MongoDB合作伙伴生态系统(MongoDB Partner Ecosystem)共同推出一系列联合的进入市场举措,使云服务合作伙伴能够助力其客户快速走向成功。
3118 0