美文网首页SAP想法简友广场
SAP工具箱 数据同步平台( 二 配置 )

SAP工具箱 数据同步平台( 二 配置 )

作者: syjf1976_abap | 来源:发表于2021-11-13 06:14 被阅读0次

    点击蓝字 关注我们

    前言

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

    详见链接无峰,公众号: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


    相关文章

      网友评论

        本文标题:SAP工具箱 数据同步平台( 二 配置 )

        本文链接:https://www.haomeiwen.com/subject/cluazltx.html