点击蓝字 关注我们

前言

前文介绍了数据同步平台的功能及执行过程.

详见链接

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

本文主要讲解一下数据同步平台的相关配置点

通过不同的配置方式实现不同的数据同步场景

配置表

  • ZTIF002             接口定义

  • ZTSYNC_C1       同步数据库表配置

  • ZTSYNC_C2       同步数据库表-字段映射(特殊隐射规则),

ZTIF002

接口定义

详细配置见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(二 接口定义表)

ZTSYNC_C1

同步数据库表配置

主要配置接口的数据同步的基本属性,同时记录本次处理的时间戳.

01

JIEKNO

JIEKNO 接口编号

02

CON_NAME

CON_NAME 数据库连接的逻辑名称

配置方式详见链接

无峰,公众号:ABAP 技巧与实战ABAP基础知识 访问外部数据库-配置篇

935705123f16af63b8896d4bb8ad8769.png

03

TABNAME

TABNAME 表名

接口需要同步的主表名

在表名配置中可以实现在不同表名之间同步数据

575f6ed08c86876d9935931dbd5beb4d.png

04

SEC_TABNAME

SEC_TABNAME 需要同步的从表, 多个从表通过逗号',' 分割

710c6378e9c59d02228f0b5ef601c99b.png

05

LINK_SEC

LINK_SEC 连接从表的字段 多个字段通过','分割

一般情况使用主表的主键字段作为连接字段, 特殊业务也允许使用非主键的字段

cee1515cbcabef976a6c9a305314c9cf.png

06

TIMESTAMP_TYPE

TIMESTAMP_TYPE 时间戳类型

旧时间戳通过 SY-DATUM && SY-UZEIT 获取 类型 CHAR 14

新时间戳通过 GET TIMESTAMP 获取  类型  DEC 21.7 或 DEC 15.0

85f080737f14c159c032c413155447de.png

07

FIELDNAME_TIMESTAMP

FIELDNAME_TIMESTAMP 读取变化量的时间戳字段名. 用来识别主表中的时间戳字段.通过时间戳比对获取变化量

35c3425c05cf4c20fff9ee3bf4344f30.png

08

IFDIR

IFDIR 接口方向:I/O

暂时只支持I 模式:从外部数据库同步数据到ECC/S4

e7666b306f599c3c23ed75151331c3d0.png

09

FILTER

FILTER 主表过滤条件

主表的额外过滤条件,可以用来过滤集团或特殊业务逻辑

d0c47553cf5f05d8b3a4a0d686476ad4.png

10

FILTER_SEC

FILTER_SEC 从表过滤条件 从表过滤条件顺序需要与从表顺序一致. 通过逗号分割

a978a95acc5fec6a04f713845716613f.png

11

PACKAGE_NUM

PACKAGE_NUM 每个包的条目数(大量数据读取时,每个包读取的条目数,0表示一次性读取).设置合理的条目数可以获取更好的性能或避免超出内存限制的SHORT DUMP

12

SET_ZSBC001

SET_ZSBC001 设置表的ZSBC001结构相关内容

ZSBC001包含了表的简单日志字段:包含创建/修改的日期,时间,用户,事务,程序,时间戳.

f227e474df4b20cdcc97a559f9b78c20.png

484744f99591df397c7e487d456c0799.png

13

MAPPING_FIELD

MAPPING_FIELD 启用字段映射

启用字段隐射会影响性能.如果确保表中字段名一致,无需启动字段隐射. 如果勾选但是没有维护字段映射关系,视同为没有启动字段映射.

fd8c58938eac0ca59b5bf08eae446e1a.png

14

LAST_TIMESTAMP

LAST_TIMESTAMP 上次执行的时间戳

记录上次接口执行的旧格式时间戳, 下次执行时用于比对变化的数据

LAST_TIMESTAMP_N

LAST_TIMESTAMP_N 上次执行的时间戳(新)

记录上次接口执行的新格式时间戳, 下次执行时用于比对变化的数据

15

配置实例

  • 从相同系统的300集团复制数据表ZTTS_H/ZTTS_I的内容到本地,使用了简单时间戳 YYYYMMDDHHMMSS.同时启用字段隐射

  • 从远程系统S4Q复制EKKO/EKPO/EKET 到本地 限定了集团和单号,行项目表限定了EKPO-LOEKZ = '' 未限定EKET的过滤条件.使用了系统自带的时间戳

  • 从相同系统的 300 集团复制数据ZTTS_H_TMP到ZTTS_H ZTTS_I到ZTTS_I.

51c5ed6560ff56941ab2f09dfa30adca.png

ZTSYNC_C2

同步数据库表-字段映射(特殊隐射规则)

用于维护同步表的特殊字段映射规则.

01

JIEKNO

JIEKNO 接口编号

02

SOURCE_TABNAME

SOURCE_TABNAME 源表名称

设定接口字段对应的源表,源表与目标表的对应关系维护在下列表字段中.

ZTSYNC_C1- TABNAME

ZTSYNC_C1-SEC_TABNAME 

03

SOURCE_FIELDNAME

SOURCE_FIELDNAME 源表字段名

源表字段名和目标字段名都是主键, 允许把一个源表字段映射到多个目标字段

04

TARGET_FIELDNAME

TARGET_FIELDNAME 目标字段名

目标字段可以和源表字段不同,以便跨字段名映射

也可以和源表字段名相同,使用映射方式或映射函数实现特殊逻辑

05

MAP_METHOD

MAP_METHOD 字段映射方式

映射字段方式应用自动生成下传接口程序中配置的字段映射方式

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(一)

通过域值定义,在类方法 

zcl_data_helper=>auto_conversion_if_output 

中实现并扩展

0c0c8b2fd48b2ba659c32ab2169879de.png

6a8aa9bc6dc5c08ae48333096ed16239.png

06

参数

RULE_PAR1 规则的输入参数1-数字

RULE_PAR2 规则参数(字符)

特定的字段隐射方法中使用参数传递的变量. 在表同步中应该无法应用

07

MAP_FUNCTION

MAP_FUNCTION映射函数

可以在通过DEMO 函数

Z_BC_SYNC_MAPPING_DEMO

复制一个函数,与DEMO函数相同的界面. 在函数中实现自定义的字段转换逻辑.

  • 传入的结构 IS_SOURCE 来自远程数据库表定义.
    传入传出的结构 CS_TARGET 来自本地数据库表定义. 理论上函数中可以修改CS_TARGET中的任意字段.

  • IS_C2 配置的字段,包含传入字段与目标字段的映射.

  • IV_SOURCE 传入的源字段值.

  • CV_TARGET 传入传出的目标字段值. 函数通过修改CV_TARGET 实现自由自定义功能的字段映射. 也可以修改CS_TARGET中的任意字段

示例函数中给出了两种调整内容的方式

4d7f86bae3b2466b4ee9853119d3467e.png

8ee70aca4c8a84b5bc0f347d75457652.png

08

配置示例

  • 通过映射方式215 给日期字段ZTTS_H-ERDAT 添加当前日期

  • 把字段ZTTS_H-KUNNR 映射到 WERKS 字段

  • 把字段WAERS 通过函数转换

  • 把字段ZTTS_H-WERKS 隐射到KUNNR 字段

a36fa485becec6a7861334fb200ef973.png

总结

数据同步平台的部分配置参考了LT的配置(比如映射),只是实现方式不太相同. 通过配置,可以让数据同步平台实现更多的应用场景

数据同步平台通过简单配置就能实现一些比较复杂的数据同步需求.

数据同步平台的一个最大的缺陷: 删除的记录无法同步删除目标系统. 这也是所有基于表数据内容及时间戳同步数据方式方案都存在的一个缺陷. 可以通过限定数据用删除标记代替物理删除来解决这个问题.

再通过集中的删除作业删除过期的存在删除标记的数据, 之前开发过一个通用删除程序. 在项目中应用,反应良好.

1eadd5b49ebced584dd86c1cf9c11760.png

THE

END

约定

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

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

0c6a6df9241c950d3e600a658e84284f.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐