一
前言
前文介紹過怎么通過ABAP訪問外部數(shù)據(jù)庫
配置篇,詳見鏈接無峰,公眾號:ABAP 技巧與實戰(zhàn)ABAP基礎(chǔ)知識 訪問外部數(shù)據(jù)庫-配置篇
開發(fā)篇,詳見鏈接無峰,公眾號:ABAP 技巧與實戰(zhàn)ABAP基礎(chǔ)知識 訪問外部數(shù)據(jù)庫-開發(fā)篇
本文主要介紹一個簡單的工具
同步外部數(shù)據(jù)庫的任意表到ECC/S4的表中
通過文末的代碼,大家也可以了解一下ABAP怎么通過ADBC動態(tài)訪問外部數(shù)據(jù)庫表
二
程序執(zhí)行
輸入需要同步的數(shù)據(jù)庫連接(詳見配置篇). 需要同步的表名,及讀取數(shù)據(jù)的限制條目.
執(zhí)行后,提示成功的記錄數(shù)
該程序連接外部ORACLE數(shù)據(jù)庫及外部HANA數(shù)據(jù)庫,測試通過


三
注意事項
程序主要從外部數(shù)據(jù)庫讀取表內(nèi)容寫入同名本地表中
需要同步的表需要在ECC/S4系統(tǒng)中存在并且遠程數(shù)據(jù)庫的表關(guān)鍵字必須與本地表一致(因為使用modify 從內(nèi)表更新表, 如果主鍵不一致,會導(dǎo)致更新后的數(shù)據(jù)減少)
非關(guān)鍵字段無需一致,同名字段自動賦值.
每次執(zhí)行只能同步一個表的內(nèi)容,如果需要批量同步多個表,需要再寫一個程序調(diào)用該程序.
外部系統(tǒng)也可以是ECC/S4系統(tǒng). 這樣就可以實現(xiàn)兩個ECC系統(tǒng)中的表數(shù)據(jù)內(nèi)容同步了.
該程序未對日期字段做特殊處理,實際應(yīng)用時需要調(diào)整讀取外部系統(tǒng)的SQL語句.
四
源代碼截圖
程序?qū)崿F(xiàn)代碼非常簡單, 動態(tài)讀取外部表內(nèi)容的FORM詳見文末源代碼部分.
動態(tài)讀取外部表內(nèi)容部分有詳細的注釋,解釋每個語句的含義.

五
總結(jié)
同步外部數(shù)據(jù)庫的表到ECC/S4系統(tǒng)是ADBC訪問數(shù)據(jù)庫的一個簡單應(yīng)用. 在這個基本功能的基礎(chǔ)上,通過補充部分配置信息,可以實現(xiàn)一個簡單的LT系統(tǒng)(SAP的一個數(shù)據(jù)底層數(shù)據(jù)同步工具)
關(guān)于LTRC的配置詳見鏈接無峰,公眾號:ABAP 技巧與實戰(zhàn)SAP操作手冊之 LT數(shù)據(jù)同步配置
待增加功能:
補充配置表維護需要同步的表,同步周期,時間戳字段名,上次時間戳值等
簡單過濾條件(只同步需要的數(shù)據(jù))
補充配置表維護字段隱射關(guān)系(包含內(nèi)容轉(zhuǎn)換關(guān)系)
實現(xiàn)雙向同步
......
后續(xù)考慮補充上述邏輯實現(xiàn)這個簡單的數(shù)據(jù)同步工具.