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