SAP工具箱 数据同步平台(五 日志改进)

点击蓝字 关注我们

前言

数据同步平台是在ABAP中开发的一个数据同步工具,类似于LTRC,通过配置实现任意两个数据库的数据同步(ABAP需要配置相关的外部数据库连接).

数据同步平台的底层通过调用ADBC类实现远程数据库的读取,写入.

详情请参阅以下链接

详见链接

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

详见链接

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

详见链接

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

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台(四 大表处理改进)

本文主要介绍数据平台的日志功能改进

旧版日志功能局限

数据同步平台的第一版只考虑了ABAP的表与外部系统表之间的同步,因此大部分功能包括日志功能都会读取ABAP中的数据字典对象, 用来定义内表,定义ALV的字段. 

优化数据同步平台的平台属性后(可以通过平台同步任意两个非ABAP的外部数据库),原本获取ABAP数据内容的逻辑就会出现问题. 有可能读取不到数据字典对象,会导致日志显示同步内容时报错.

思维导图

作为一个程序员,很惭愧一直都没有使用思维导图,因此在这个日志改进时,尝试画了一个思维导图. 

思维导图对于梳理思路还是有一定作用的.

关于思维导图软件

  • Xmind 收费,好看,功能强大

  • freemind 免费,相对难看,功能差不多

4d82eda248c47cf6323aff508fe3c873.png

新版日志功能改进

  • 通过程序调用ID整合日志

  • 考虑字段映射标记

  • 考虑大表分包日志记录

  • 日志中记录表名信息

01

程序调用ID整合日志

每个接口编号可能定义一个主表/多个从表,因此每次执行时会显示多个表的执行结果.

每个表的执行结果单独记录日志ID. 在接口中通过程序调用ID来整合这个接口的所有的日志ID(图一). 

日志显示时,可以看到同一个程序调用ID的所有日志信息(如图二)

如果选中的日志存在多个表,会弹窗让用户选择最终要显示的表内容(如图三)

c14c86e0e3d3af1e90b55077296e8202.png

图一

5ba9f9e6f0ac0c64b8fd08da920a8d2e.png

图二

21ef7fc71afa756d4525c00f5a095457.png

图三

02

日志中记录表名信息

日志ID的记录维度是表名及表的分包,写入日志表时,把目标表名同时写入了<产生的单据号码>字段(如图四).这样,在日志显示时,可以直观的看到表名信息.

2cac38c6785973912640028cef567bfa.png

图四

03

考虑字段映射标记

字段映射功能用来设置是否启用配置表 ZTSYNC_C2中配置的字段隐射规则.如果启用了字段隐射, 源表内容和目标表内容就可能不一致.

改进的日志功能考虑了数据的字段映射标记(图五),同时记录源表数据内容及目标表数据内容.并且根据源或目标数据库是否为当前ABAP系统(连接名DEFAULT)来确定是否使用数据字典定义(使用数据字典定义可以获取更多的字段信息,比如字段描述).

启用后,显示日志时会拆分成源表/目标表两个选项,用户可以选择显示源表或目标表的日志(如图三)

对于没有配置字段隐射的接口, 因为源表与目标表相同,日志中只需要显示目标表内容(如图六)

f58e67f3c8bd9419745289337dc095cb.png

图五

5be3c87cb545895f2364e03ad34ef726.png

图六

04

考虑大表分包处理

为了避免大表处理出现内存溢出的错误,记录的日志内容也依赖于配置中的分包数.每个分包记录一份日志.

如图一的同步结果看到接口SYN001配置了一个主表ZTTS_H,一个从表ZTTS_I .

点击显示日志时, 可以看到主表7条记录按包数2拆分成了4个包,从表6条记录按包数2拆分成3个分包(如图二)

勾选多个日志,可以把这些日志中记录的表内容合并显示. (如图七,因为是外部数据库表,没有获取字段描述,ALV中用字段名显示)

图八中使用了数据字典定义ALV,所以包含了字段描述信息及主键信息.

b3e3dd781c88e635ff97b08e4bed445f.png

图七

63b572f7bbac2e74e0eb3ac34e2cd163.png

图八

总结

数据同步平台改进平台属性后, 日志功能也随之改变.

这样可以真正作为一个平台,同步任意两个数据库系统之间的数据,并且记录详细的操作日志,数据传递内容日志. 

这些日志整合在接口日志查询中(ZIFLOG), 可以查询数据同步平台的执行情况及执行传递的数据内容. 如果接口中启用了字段映射,日志中可以分别查看映射前的源表数据及隐射后的目标表数据.

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

fe7bd2f89462fae6452b53a7ed5cbc0c.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请扫码加入公众号群,提问或参与话题讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值