點擊藍字 關(guān)注我們
一
前言
之前寫了一篇文章,介紹怎么同步外部數(shù)據(jù)庫的任意表(付費文章無法添加鏈接,感興趣的請自行在公眾號中查找).當時就萌發(fā)了一個念頭. 把這個工具擴展一下功能,設計成為一個數(shù)據(jù)同步平臺.
這一周沒怎么寫公眾號文章,原因之一就是在忙于設計開發(fā)這個平臺.
本文主要介紹數(shù)據(jù)同步平臺的功能
二
功能簡介
數(shù)據(jù)同步平臺 ZBC_SYNC_REMOTE_TABLE
數(shù)據(jù)同步平臺可以完成數(shù)據(jù)在不同系統(tǒng)的表中同步,類似于LT的功能(超級簡化版).
可以通過配置實現(xiàn)一些簡單的接口(限定為數(shù)據(jù)通過中間表傳遞的方式).同時與ZIFLOG接口日志整合,作為整體接口設計的一個可選方案.
數(shù)據(jù)同步平臺設計了如下功能, 目前大部分的功能已經(jīng)實現(xiàn)(出站尚未支持)
全量/變化量方式同步
同時同步多個相關(guān)表
對源表的額外過濾條件
字段映射
兩種同步方向:出站/入站支持
整合在接口集中監(jiān)控
TIPS
SPRING
出站: 數(shù)據(jù)從ECC/S4系統(tǒng)同步到外部系統(tǒng)數(shù)據(jù)庫
入站: 數(shù)據(jù)從外部系統(tǒng)數(shù)據(jù)庫同步到ECC/S4系統(tǒng)
外部系統(tǒng)數(shù)據(jù)庫可以是HANA,ORACLE,SQLSERVER等DBCO支持的數(shù)據(jù)庫類型
關(guān)于DBCO的配置詳見鏈接無峰,公眾號:ABAP 技巧與實戰(zhàn)ABAP基礎知識 訪問外部數(shù)據(jù)庫-配置篇
三
ZIFLOG
ZTIFLOG作為接口集中監(jiān)控平臺,整合了以下接口方式的接口內(nèi)容顯示
RFC函數(shù)(界面內(nèi)容顯示)
直接調(diào)用外部系統(tǒng)的HTTP服務可以封裝在RFC函數(shù)中(JSON內(nèi)容顯示)
通過PO的接口(XML內(nèi)容顯示)
數(shù)據(jù)同步平臺實現(xiàn)的接口(表內(nèi)容顯示)
詳見鏈接無峰,公眾號:ABAP 技巧與實戰(zhàn)SAP工具箱之 接口調(diào)用集中監(jiān)控
四
兩種處理模式
數(shù)據(jù)同步平臺支持兩種處理模式
接口模式
表模式
01
接口模式
接口模式需要配置接口相關(guān)的表
ZTIF002? ? ? ? ? ? 接口定義
ZTSYNC_C1? ? ? 同步數(shù)據(jù)庫表配置
ZTSYNC_C2? ? ? 同步數(shù)據(jù)庫表-字段映射(特殊隱射規(guī)則),
ZTIF002中主要配置接口編號及接口的激活狀態(tài),記錄日志,記錄接口內(nèi)容等信息
接口配置字段詳見鏈接無峰,公眾號:ABAP 技巧與實戰(zhàn)SAP工具箱 自動生成發(fā)出接口程序(二 接口定義表)
ZTSYNC_C1 用于配置接口同步的主表,從表及主從表的關(guān)聯(lián)字段,時間戳字段等信息
支持全量及變化量同步數(shù)據(jù).
支持同時同步多個表:一個主表,多個從表
支持表同步的額外數(shù)據(jù)過濾
支持遠程表與本地表的字段映射
支持復雜的字段映射關(guān)系
ZTSYNC_C2 可以不配置,此時需要確保目標表和源表字段一致(至少主鍵字段一致).
02
表模式
該模式下無需配置任何表, 但是平臺只能簡單的把指定表的所有記錄從遠程同步到本地,該模式可以用來快速實現(xiàn)不同ECC系統(tǒng)之間的數(shù)據(jù)同步或不同CLIENT的數(shù)據(jù)同步).
通過DB連接及集團限定,可以處理以下兩種數(shù)據(jù)同步場景
同一個服務器不同CLIENT的同步(指定CLIENT,不指定DB連接,默認連接當前數(shù)據(jù)庫)
不同的服務器的同步(指定CLIENT,指定DB連接)
五
執(zhí)行過程
數(shù)據(jù)同步平臺的執(zhí)行過程
啟動程序ZBC_SYNC_REMOTE_TABLE或事務代碼ZSYNC
01
選擇處理模式
接口模式下, 只能輸入接口編號(接口對應的表及相關(guān)同步參數(shù)在配置表
ZTIF002/ZTSYNC_C1/ZTSYNC_C2中維護)
表模式下,允許輸入需要同步的表,指定DB連接名稱,接口方向等.
還需添加一個源集團限制(以便同步不同ECC系統(tǒng)的表)
為了數(shù)據(jù)安全,默認只同步Z開頭的表(可以去掉勾選).
02
執(zhí)行同步
如果勾選了顯示詳細日志. 執(zhí)行后可以看到數(shù)據(jù)同步的結(jié)果,包含下述內(nèi)容
接口編號
日志ID
表名
數(shù)據(jù)處理狀態(tài): S 成功 E 失敗 R 回滾
讀取條目數(shù)
寫入條目數(shù)
持續(xù)時間(微秒)
執(zhí)行的SQL語句
數(shù)據(jù)處理狀態(tài) R : 一個接口的多個表,如果有一個表同步失敗,則其它表標記為狀態(tài) R.
03
顯示同步內(nèi)容
點擊日志ID,可以跳轉(zhuǎn)到ZIFLOG ,也可以單獨執(zhí)行事務代碼 ZIFLOG,輸入接口編號或時間查詢
勾選日志編號,點擊同步按鈕, 可以查看本次同步的數(shù)據(jù)內(nèi)容
如果接口存在多表, 會顯示多表選擇,如果單表,則不會出現(xiàn)該選擇
顯示本次同步的特定表的內(nèi)容
如果同步出現(xiàn)錯誤,日志中會顯示報錯信息
六
總結(jié)
數(shù)據(jù)同步平臺
嘗試通過配置實現(xiàn)一些簡單接口(從外部中間表讀取或數(shù)據(jù)寫入到外部中間表),
嘗試部分取代LT(LT同步數(shù)據(jù)報錯處理比較麻煩,如果源表結(jié)構(gòu)改變,需要重新同步所有數(shù)據(jù)).
作為一個ECC/S4 不同系統(tǒng),不同集團的數(shù)據(jù)同步工具.
關(guān)于LT詳見鏈接無峰,公眾號:ABAP 技巧與實戰(zhàn)SAP操作手冊之 LT數(shù)據(jù)同步配置
數(shù)據(jù)同步平臺的變化量通過時間戳比較獲取,這是獲取變化量的最簡單的方式,便是實現(xiàn).只是需要源表中有一個時間戳字段,數(shù)據(jù)新建或修改后都會更新該字段內(nèi)容.
系統(tǒng)所有的配置表可以通過一個統(tǒng)一方式添加時間戳.
詳見連接無峰,公眾號:ABAP 技巧與實戰(zhàn)SAP小技巧 自定義配置表的簡單日志
數(shù)據(jù)同步平臺目前尚未在項目中應用,后續(xù)會嘗試應用在一些數(shù)據(jù)同步的場景中,根據(jù)實際運行結(jié)果,再調(diào)整或補充功能.
THE
END