点击蓝字 关注我们
一
前言
前文介绍了数据同步平台的功能及执行过程.
详见链接无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台( 一 简介 )
本文主要讲解一下数据同步平台的相关配置点
通过不同的配置方式实现不同的数据同步场景
二
配置表
ZTIF002 接口定义
ZTSYNC_C1 同步数据库表配置
ZTSYNC_C2 同步数据库表-字段映射(特殊隐射规则),
三
ZTIF002
接口定义
详细配置见链接无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(二 接口定义表)
四
ZTSYNC_C1
同步数据库表配置
主要配置接口的数据同步的基本属性,同时记录本次处理的时间戳.
01
JIEKNO
JIEKNO 接口编号
02
CON_NAME
CON_NAME 数据库连接的逻辑名称
配置方式详见链接无峰,公众号:ABAP 技巧与实战ABAP基础知识 访问外部数据库-配置篇
03
TABNAME
TABNAME 表名
接口需要同步的主表名
在表名配置中可以实现在不同表名之间同步数据
04
SEC_TABNAME
SEC_TABNAME 需要同步的从表, 多个从表通过逗号',' 分割
05
LINK_SEC
LINK_SEC 连接从表的字段 多个字段通过','分割
一般情况使用主表的主键字段作为连接字段, 特殊业务也允许使用非主键的字段
06
TIMESTAMP_TYPE
TIMESTAMP_TYPE 时间戳类型
旧时间戳通过 SY-DATUM && SY-UZEIT 获取 类型 CHAR 14
新时间戳通过 GET TIMESTAMP 获取 类型 DEC 21.7 或 DEC 15.0
07
FIELDNAME_TIMESTAMP
FIELDNAME_TIMESTAMP 读取变化量的时间戳字段名. 用来识别主表中的时间戳字段.通过时间戳比对获取变化量
08
IFDIR
IFDIR 接口方向:I/O
暂时只支持I 模式:从外部数据库同步数据到ECC/S4
09
FILTER
FILTER 主表过滤条件
主表的额外过滤条件,可以用来过滤集团或特殊业务逻辑
10
FILTER_SEC
FILTER_SEC 从表过滤条件 从表过滤条件顺序需要与从表顺序一致. 通过逗号分割
11
PACKAGE_NUM
PACKAGE_NUM 每个包的条目数(大量数据读取时,每个包读取的条目数,0表示一次性读取).设置合理的条目数可以获取更好的性能或避免超出内存限制的SHORT DUMP
12
SET_ZSBC001
SET_ZSBC001 设置表的ZSBC001结构相关内容
ZSBC001包含了表的简单日志字段:包含创建/修改的日期,时间,用户,事务,程序,时间戳.
13
MAPPING_FIELD
MAPPING_FIELD 启用字段映射
启用字段隐射会影响性能.如果确保表中字段名一致,无需启动字段隐射. 如果勾选但是没有维护字段映射关系,视同为没有启动字段映射.
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.
五
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
中实现并扩展
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中的任意字段
示例函数中给出了两种调整内容的方式
08
配置示例
通过映射方式215 给日期字段ZTTS_H-ERDAT 添加当前日期
把字段ZTTS_H-KUNNR 映射到 WERKS 字段
把字段WAERS 通过函数转换
把字段ZTTS_H-WERKS 隐射到KUNNR 字段
六
总结
数据同步平台的部分配置参考了LT的配置(比如映射),只是实现方式不太相同. 通过配置,可以让数据同步平台实现更多的应用场景
数据同步平台通过简单配置就能实现一些比较复杂的数据同步需求.
数据同步平台的一个最大的缺陷: 删除的记录无法同步删除目标系统. 这也是所有基于表数据内容及时间戳同步数据方式方案都存在的一个缺陷. 可以通过限定数据用删除标记代替物理删除来解决这个问题.
再通过集中的删除作业删除过期的存在删除标记的数据, 之前开发过一个通用删除程序. 在项目中应用,反应良好.
THE
END