ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具试读版

简介: ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具试读版

ABAP 泛型编程技术,在本教程之前的多篇文章已经有所介绍:

笔者在实际工作中,经常需要对一些 SAP 系统标准的数据库表进行一些调研工作,比如调整数据库表的字段,或者对这张标准数据库表的内容,进行增删改查等等。

因为是调研性质,自己也没有 100% 把握,所以我一般习惯先将标准的数据库表,拷贝出来成为一个 Z 表。比如下面这张 SAP CRM 系统里标准的数据库表 ZCRMC_OBJECTS:

使用 SE11 事务码里提供的拷贝功能:

在表名字前添加 Z 即可:

下面是拷贝出来的 Z 表,数据结构同原来标准的表一模一样:

然而这只是数据库表的结构做了拷贝,不包含数据库里存放的记录。为此我开发了一个小工具,利用了 ABAP 泛型编程技术,只需要在工具输入参数里,指定源数据库表,和目标数据库表这两张表的名称,工具就能自动将源数据库表的全部内容,拷贝到目标数据库表去。

当然,既然是泛型编程,我的工具源代码里,就没有硬编码任何关于 CRMC_OBJECTS 或者 ZCRMC_OBJECTS 这两张数据库表的结构信息。

所谓 ABAP 泛型编程,主要通过泛型数据类型 来实现,而泛型数据类型的实现,离不开 ABAP 的 Field Symbol.

泛型数据类型允许我们在声明变量、类或接口时不指定具体的数据类型,而是使用类型为 ANY 或者 TABLE 的 Field Symbol 来表示。这些 Field Symbol 在应用程序执行时,才能确定其具体的数据类型。

听起来可能有些抽象,不过不要紧,我们通过具体的例子来实战。

执行笔者开发的数据库表内容拷贝工具(完整源代码在文末),指定两个参数:

  • 源数据库表名:维护想要将其内容复制出来的数据库表名称,在我的使用场景里,通常是 SAP 标准数据库表名称。
  • 目标数据库表名:从 SAP 标准数据库表拷贝出来的 Z 表的名称。

执行完毕后,打印出成功拷贝的数据库表记录数:

下面是详细的源代码讲解。

相关文章
|
1月前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
15 0
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
|
1月前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
20 1
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
14天前
|
SQL 关系型数据库 MySQL
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
|
15天前
|
SQL 关系型数据库 MySQL
第十三章 Python数据库编程
第十三章 Python数据库编程
|
15天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
15天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
|
19天前
|
SQL 存储 数据库连接
C#编程与数据库交互的实现
【4月更文挑战第20天】C#与数据库交互是现代软件开发的关键,涉及数据库连接、数据操作和访问方式。使用ADO.NET建立连接,执行SQL实现读取、插入、更新和删除数据。可通过直接SQL或数据访问对象进行操作。注意性能优化,使用连接池,处理异常,确保安全,以提升应用性能和稳定性。
|
1月前
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
16 1
|
1月前
|
存储 API
如何在 SAPGUI 的 ABAP 报表里显示图片试读版
如何在 SAPGUI 的 ABAP 报表里显示图片试读版
21 1
|
1月前
|
存储 UED 开发者
ABAP Screen 编程里 OK_CODE 的重要作用
ABAP Screen 编程里 OK_CODE 的重要作用
11 0