SAP工具箱 數(shù)據(jù)同步平臺(五 日志改進(jìn))

點(diǎn)擊藍(lán)字 關(guān)注我們

前言

數(shù)據(jù)同步平臺是在ABAP中開發(fā)的一個數(shù)據(jù)同步工具,類似于LTRC,通過配置實(shí)現(xiàn)任意兩個數(shù)據(jù)庫的數(shù)據(jù)同步(ABAP需要配置相關(guān)的外部數(shù)據(jù)庫連接).

數(shù)據(jù)同步平臺的底層通過調(diào)用ADBC類實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)庫的讀取,寫入.

詳情請參閱以下鏈接

詳見鏈接無峰,公眾號:ABAP 技巧與實(shí)戰(zhàn)SAP工具箱 數(shù)據(jù)同步平臺( 一 簡介 )
詳見鏈接無峰,公眾號:ABAP 技巧與實(shí)戰(zhàn)SAP工具箱 數(shù)據(jù)同步平臺( 二 配置 )
詳見鏈接無峰,公眾號:ABAP 技巧與實(shí)戰(zhàn)SAP工具箱 數(shù)據(jù)同步平臺(三 改進(jìn))
詳見鏈接無峰,公眾號:ABAP 技巧與實(shí)戰(zhàn)SAP工具箱 數(shù)據(jù)同步平臺(四 大表處理改進(jìn))

本文主要介紹數(shù)據(jù)平臺的日志功能改進(jìn)

舊版日志功能局限

數(shù)據(jù)同步平臺的第一版只考慮了ABAP的表與外部系統(tǒng)表之間的同步,因此大部分功能包括日志功能都會讀取ABAP中的數(shù)據(jù)字典對象, 用來定義內(nèi)表,定義ALV的字段.

優(yōu)化數(shù)據(jù)同步平臺的平臺屬性后(可以通過平臺同步任意兩個非ABAP的外部數(shù)據(jù)庫),原本獲取ABAP數(shù)據(jù)內(nèi)容的邏輯就會出現(xiàn)問題. 有可能讀取不到數(shù)據(jù)字典對象,會導(dǎo)致日志顯示同步內(nèi)容時報錯.

思維導(dǎo)圖

作為一個程序員,很慚愧一直都沒有使用思維導(dǎo)圖,因此在這個日志改進(jìn)時,嘗試畫了一個思維導(dǎo)圖.

思維導(dǎo)圖對于梳理思路還是有一定作用的.

關(guān)于思維導(dǎo)圖軟件

  • Xmind 收費(fèi),好看,功能強(qiáng)大

  • freemind 免費(fèi),相對難看,功能差不多

新版日志功能改進(jìn)

  • 通過程序調(diào)用ID整合日志

  • 考慮字段映射標(biāo)記

  • 考慮大表分包日志記錄

  • 日志中記錄表名信息

01

程序調(diào)用ID整合日志

每個接口編號可能定義一個主表/多個從表,因此每次執(zhí)行時會顯示多個表的執(zhí)行結(jié)果.

每個表的執(zhí)行結(jié)果單獨(dú)記錄日志ID. 在接口中通過程序調(diào)用ID來整合這個接口的所有的日志ID(圖一).

日志顯示時,可以看到同一個程序調(diào)用ID的所有日志信息(如圖二)

如果選中的日志存在多個表,會彈窗讓用戶選擇最終要顯示的表內(nèi)容(如圖三)

圖一

圖二

圖三

02

日志中記錄表名信息

日志ID的記錄維度是表名及表的分包,寫入日志表時,把目標(biāo)表名同時寫入了<產(chǎn)生的單據(jù)號碼>字段(如圖四).這樣,在日志顯示時,可以直觀的看到表名信息.

圖四

03

考慮字段映射標(biāo)記

字段映射功能用來設(shè)置是否啟用配置表 ZTSYNC_C2中配置的字段隱射規(guī)則.如果啟用了字段隱射, 源表內(nèi)容和目標(biāo)表內(nèi)容就可能不一致.

改進(jìn)的日志功能考慮了數(shù)據(jù)的字段映射標(biāo)記(圖五),同時記錄源表數(shù)據(jù)內(nèi)容及目標(biāo)表數(shù)據(jù)內(nèi)容.并且根據(jù)源或目標(biāo)數(shù)據(jù)庫是否為當(dāng)前ABAP系統(tǒng)(連接名DEFAULT)來確定是否使用數(shù)據(jù)字典定義(使用數(shù)據(jù)字典定義可以獲取更多的字段信息,比如字段描述).

啟用后,顯示日志時會拆分成源表/目標(biāo)表兩個選項(xiàng),用戶可以選擇顯示源表或目標(biāo)表的日志(如圖三)

對于沒有配置字段隱射的接口, 因?yàn)樵幢砼c目標(biāo)表相同,日志中只需要顯示目標(biāo)表內(nèi)容(如圖六)

圖五

圖六

04

考慮大表分包處理

為了避免大表處理出現(xiàn)內(nèi)存溢出的錯誤,記錄的日志內(nèi)容也依賴于配置中的分包數(shù).每個分包記錄一份日志.

如圖一的同步結(jié)果看到接口SYN001配置了一個主表ZTTS_H,一個從表ZTTS_I .

點(diǎn)擊顯示日志時, 可以看到主表7條記錄按包數(shù)2拆分成了4個包,從表6條記錄按包數(shù)2拆分成3個分包(如圖二)

勾選多個日志,可以把這些日志中記錄的表內(nèi)容合并顯示. (如圖七,因?yàn)槭峭獠繑?shù)據(jù)庫表,沒有獲取字段描述,ALV中用字段名顯示)

圖八中使用了數(shù)據(jù)字典定義ALV,所以包含了字段描述信息及主鍵信息.

圖七

圖八

總結(jié)

數(shù)據(jù)同步平臺改進(jìn)平臺屬性后, 日志功能也隨之改變.

這樣可以真正作為一個平臺,同步任意兩個數(shù)據(jù)庫系統(tǒng)之間的數(shù)據(jù),并且記錄詳細(xì)的操作日志,數(shù)據(jù)傳遞內(nèi)容日志.

這些日志整合在接口日志查詢中(ZIFLOG), 可以查詢數(shù)據(jù)同步平臺的執(zhí)行情況及執(zhí)行傳遞的數(shù)據(jù)內(nèi)容. 如果接口中啟用了字段映射,日志中可以分別查看映射前的源表數(shù)據(jù)及隱射后的目標(biāo)表數(shù)據(jù).

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容