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 表的名称。

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

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

相关文章
|
2月前
|
SQL 存储 NoSQL
Redis6入门到实战------ 一、NoSQL数据库简介
这篇文章是关于NoSQL数据库的简介,讨论了技术发展、NoSQL数据库的概念、适用场景、不适用场景,以及常见的非关系型数据库。文章还提到了Web1.0到Web2.0时代的技术演进,以及解决CPU、内存和IO压力的方法,并对比了行式存储和列式存储数据库的特点。
Redis6入门到实战------ 一、NoSQL数据库简介
|
2月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
206 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
2月前
|
SQL 数据库
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
|
2月前
|
存储 前端开发 关系型数据库
秀啊,用Python快速开发在线数据库更新修改工具
秀啊,用Python快速开发在线数据库更新修改工具
|
2月前
|
前端开发 数据库 Python
用Python轻松开发数据库取数下载工具
用Python轻松开发数据库取数下载工具
|
2月前
|
SQL 关系型数据库 MySQL
干货!python与MySQL数据库的交互实战
干货!python与MySQL数据库的交互实战
|
2月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
1月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
59 0
|
2月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`<s:checkbox>`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
67 0
|
2月前
|
数据库 测试技术 开发者
Play Framework的测试魔法:让代码在舞台上翩翩起舞,确保应用质量的幕后英雄!
【8月更文挑战第31天】Play Framework不仅以其高效开发与部署流程著称,还内置了强大的测试工具,提供全面的测试支持,确保应用高质量和稳定性。本文将详细介绍如何在Play Framework中进行单元测试和集成测试,涵盖`WithApplication`、`WithServer`及`WithDatabase`等类的使用方法,并通过示例代码手把手教你如何利用Play的测试框架。无论是单元测试、集成测试还是数据库操作测试,Play Framework均能轻松应对,助你提升应用质量和开发效率。
29 0
下一篇
无影云桌面