SAP工具箱 数据同步平台(三 改进)

点击蓝字 关注我们

前言

最近使用数据同步平台时,发现不太顺手,又做了一些优化.同时增加了数据同步平台对ORACLE数据库的支持

本文主要介绍数据同步平台的改进功能

数据同步平台的介绍

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台( 一 简介 )

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台( 二 配置 )

完善平台属性

配置表中添加了源数据库连接,目标数据库连接字段.同时在表模式的选择界面也添加了这些参数.

  • CON_NAME 源数据库连接(DEFAULT表示连接当前系统)

  • CON_NAME_TAR 目标数据库连接(DEFAULT表示连接当前系统)

  • WRITE_METHOD写入目标数据库的模式( 如图一) 目前支持写入模式和更新写入模式

这样改进了工具的平台属性, 可以安装在第三方系统中执行.

f5b5754456d638a1e83d430b723755ea.png

fdfa3ad29d422112de9554d36248e12d.png

7b9a229169f55529c5b9e3ece923625c.png

图一

完善集团限制

作为一个安装在ABAP系统中的工具, 对ABAP表常用的集团属性提供了更多的支持.

添加了源集团/目标集团并允许为空. 这样可以更加明确的限制表的集团属性.

MANDT_SOU源集团(如果源表是SAP的集团相关表, 必须指定集团信息)

MANDT_TAR目标集团(目标系统是SAP的集团相关表,需要指定目标集团)

8a67fb1b66f6811620c14f0a4fae684b.png

SCHEMA支持方式

没要在配置表中添加表的schema(模式)属性. 一个主要的原因是通过用户或数据库连接配置已经可以指定schema.所以配置中弱化了这个概念. 如果确实涉及到同一个数据库的不同schema. 可以考虑配置成多个数据库连接,分别指向不同的schema.

34444a4fa92c042dbc68d61288b06c9d.png

完整了日志

日志中添加了写入SQL语句,不同的数据库写入语句不一样,目前支持三种写入语句

  • OPEN SQL 对于目标系统是DEFAULT(当前系统的数据库), 使用OPEN SQL MODIFY 语句写入

  • HANA SQL 对于目标系统是HANA数据库,使用ADBC HANA特性数据写入 INSERT 更新写入 UPSERT

  • ORACLE SQL 对于其它数据库,使用特定的写入语句 写入 INSERT 更新写入 merge ...

f41a87680252e16ad7582e0cec2aa2a6.png

对ORACLE的支持

对ORACLE数据库,生成特定的数据库SQL语句完成写入 或者更新写入的操作

01

写入

d62a1e19d0a86e4fe183ab2906689eb7.png

02

更新写入

6f18eafad9796135fc4fa179c5a024da.png

取消本地依赖

之前会通过程序执行所在的系统获取目标表的结构,集团字段等信息. 这种依赖会弱化程序的平台属性. 取消这些依赖后, 该程序可以安装在任意一个ABAP系统中. 作为同步平台,执行任意指定的两个系统之间的数据同步.

比如

  • S4D 开发系统执行在CAD 与外部数据库之间同步

  • S4D 开发系统执行在 S4Q 与外部数据库之间同步

  • S4Q 测试系统执行在S4D与S4P之间的同步

  • ......

特殊字段处理

特定数据库的特殊字段的写入语句中表达形式不一致. 比如ORACLE数据库, 字符需要添加单引号, 数字不能加单引号 ,日期需要用 to_date 函数转换. 这些细节在独立的方法中实现,后续可以方便的扩展对特殊类型的处理方式.

aa4a45d63c864f9cf40a5711b24a1fd1.png

总结

通过这次改进后,数据同步平台更加名副其实.基本上具备了一个平台雏形.

  • 无需配置或简单配置后,可以实现两个系统的表内容的同步.

  • 详细的日志记录错误信息

  • 同接口整合的日志功能(基于配置的同步)

  • 记录读取和写入的SQL语句,以便分析错误

  • 针对ABAP表的集团属性做了特定的处理.更加适于ABAP数据库使用

  • 针对ORACLE数据库的支持

  • ......

但因为缺少大量验证,可能会有一些特殊的字段在同步时会出现问题. 这个数据平台还需要在项目实际应用中经历更多的洗礼,改进与完善,并增加更多数据库系统的支持.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值