點擊藍字 關注我們
一
前言
前文介紹了數據同步平臺的功能及執行過程.
詳見鏈接無峰,公眾號: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