SAP工具箱 同步外部数据库任意表
2021-10-23 本文已影响0人
syjf1976_abap
一
前言
前文介绍过怎么通过ABAP访问外部数据库
配置篇,详见链接无峰,公众号:ABAP 技巧与实战ABAP基础知识 访问外部数据库-配置篇
开发篇,详见链接无峰,公众号:ABAP 技巧与实战ABAP基础知识 访问外部数据库-开发篇
本文主要介绍一个简单的工具
同步外部数据库的任意表到ECC/S4的表中
通过文末的代码,大家也可以了解一下ABAP怎么通过ADBC动态访问外部数据库表
二
程序执行
输入需要同步的数据库连接(详见配置篇). 需要同步的表名,及读取数据的限制条目.
执行后,提示成功的记录数
该程序连接外部ORACLE数据库及外部HANA数据库,测试通过
三
注意事项
程序主要从外部数据库读取表内容写入同名本地表中
需要同步的表需要在ECC/S4系统中存在并且远程数据库的表关键字必须与本地表一致(因为使用modify 从内表更新表, 如果主键不一致,会导致更新后的数据减少)
非关键字段无需一致,同名字段自动赋值.
每次执行只能同步一个表的内容,如果需要批量同步多个表,需要再写一个程序调用该程序.
外部系统也可以是ECC/S4系统. 这样就可以实现两个ECC系统中的表数据内容同步了.
该程序未对日期字段做特殊处理,实际应用时需要调整读取外部系统的SQL语句.
四
源代码截图
程序实现代码非常简单, 动态读取外部表内容的FORM详见文末源代码部分.
动态读取外部表内容部分有详细的注释,解释每个语句的含义.
五
总结
同步外部数据库的表到ECC/S4系统是ADBC访问数据库的一个简单应用. 在这个基本功能的基础上,通过补充部分配置信息,可以实现一个简单的LT系统(SAP的一个数据底层数据同步工具)
关于LTRC的配置详见链接无峰,公众号:ABAP 技巧与实战SAP操作手册之 LT数据同步配置
待增加功能:
-
补充配置表维护需要同步的表,同步周期,时间戳字段名,上次时间戳值等
-
简单过滤条件(只同步需要的数据)
-
补充配置表维护字段隐射关系(包含内容转换关系)
-
实现双向同步
-
......
后续考虑补充上述逻辑实现这个简单的数据同步工具.