天天看點

BW資料源2LIS_03_BF抽取機制及場景分析

作者:焱焱在這兒

1 概念說明

1.1 後勤資料抽取機制

1.1.1 初始化抽取

對于後勤資料源進行初始化抽取,需要進行重組,重組表(setup table)會讀取您要編輯的資料集(例如包含表 MSEG、MKPF 等的物料移動資料),資料存儲在簇表之中(SETUP),在初始化運作期間會從那裡讀取這些資料。

1.1.2 增量抽取

對于後勤資料源增量資料來說,除了更新到資料庫表之外,還會根據更新模式進入不同的隊列,BW最終從增量隊列中擷取增量資料。

1.2 SAP邏輯工作單元

SAP LUW 即 邏輯工作單元:SAP LUW 是SAP自己的一種一緻性維護機制,一個SAP LUW 可以包含很多個對話步驟,即多個 DB LUW,通過SAP LUW 可以把多個DB LUW 進行捆綁,并儲存整體初始狀态,不進行真正的資料庫修改,當一個SAP LUW 的最後一個DB LUW 結束時,再進行整體修改或者整體取消的操作。

1.3 更新模式及方法

1.3.1 更新模式

(1) V1 同步更新模式,即憑證産生就更新增量,與業務資料同步更新, DELTA隊列與憑證同步更新,如果DELTA隊列寫入出現錯誤,那麼憑證也被取消。

(2) V2 異步更新模式,就如同一個包含兩步的操作一樣,第一步業務憑證更新了,然後再更新第二步的資料源增量,與V1相比,寫入DELTA若出現錯誤,不對憑證的儲存産生影響。

(3) V3 異步更新模式,V3 異步更新模式與V2的差別在于更新時通過背景事件來觸發,即定一個JOB定時收集增量并更新至增量表。

1.3.2 更新方法

(1) 隊列增量

通過在V1 更新流程中寫入提取隊列,使用應用程式的排隊概念來確定按憑證順序進行的序列化增量,再通過LBWE設定JOB,V3更新到增量隊列(RSA7/ODQMON可查),累計10000筆單據作為一個LUW存在Delta Queue,再抽取到BW系統中。

(2) 直接增量

适用于單據量較小的情況,增量直接V1更新直到增量隊列,再抽取到BW系統中, 當每一單據存入資料庫的同時也被作為單獨的一個LUW寫入BW Delta Queue。

(3) 未排序的V3更新

資料V3更新到Update table(SM13可查),通過LBWE設定JOB,集中V3更新到增量隊列,這種方法在讀取資料時是不會考慮讀取順序的,對覆寫模式的模型來說是最緻命的,是以如果目标隊列是DSO的話,還是不要采用這種模式為好。

2 2LIS_03_BF資料源場景

2.1 資料流圖

BW資料源2LIS_03_BF抽取機制及場景分析

2.2 初始化抽取和完全抽取

對于初始化抽取和完全抽取來說,資料從SAP ECC的資料庫表MKPF/MSEG(SE11可查)抽取進入setup table(RSA3資料源可查),再抽取到BW系統中。

首先進行初始化抽取,在LBWE中進行提取結構字段的維護,并且将資料從資料庫表放入setup table之前要先把setup table清空,并重新進行填充(在sbiw中進行)(圖三)。SETUP表在SE11中可以通過 表名 抽取結構名+SETUP查詢(圖四),但資料以二進制存儲,如果需要檢視資料,填充後可以用RSA3進行資料源提取檢視填充的資料。

最後在BW系統中建立初始化Infopackge,将資料抽取到BW中,完成初始化抽取。

BW資料源2LIS_03_BF抽取機制及場景分析

重置setup表(圖三)

BW資料源2LIS_03_BF抽取機制及場景分析

SETUP表(圖四)

2.3 增量抽取

在初始化抽取完成後,當業務操作初始化物料庫存時,會産生新的業務資料,這就是增量資料,即當業務人員執行MIGO 561移動類型初始化物料庫存時,增量資料會自動V1更新到MKPF/MSEG表中(SE11可查)的同時,也會更新到出站隊列中(SMQ1和LBWQ中可查)。

(1)LBWE 作業控制啟動,這裡設定為立即開始

BW資料源2LIS_03_BF抽取機制及場景分析

(2)首先檢視一下單據建立前的出站隊列(圖六)和增量隊列(圖七)

BW資料源2LIS_03_BF抽取機制及場景分析

出站隊列(圖六)

BW資料源2LIS_03_BF抽取機制及場景分析

增量隊列(圖七)

(3)此時業務系統執行MIGO 561初始化物料庫存,入庫操作(圖八)

BW資料源2LIS_03_BF抽取機制及場景分析
BW資料源2LIS_03_BF抽取機制及場景分析

初始化物料庫存,生成物料憑證(圖八)

(4)生成采購訂單後觀察出站隊列和增量隊列的變化,可以看到條目數加1(圖九)&(圖十)

BW資料源2LIS_03_BF抽取機制及場景分析

出站隊列(圖九)

BW資料源2LIS_03_BF抽取機制及場景分析

增量隊列(圖十)

輕按兩下該增量隊列,可以檢視到明細資料,如圖十一

BW資料源2LIS_03_BF抽取機制及場景分析

增量隊列明細資料(圖十一)

(5)在ECC端進入到增量隊列後,提取結構會讀取相關資料,在BW端建立增量抽取的InfoPackge,将資料抽取BW系統中,再到BW系統中對資料進行處理。

2.4 通訊結構

資料源2LIS_03_BF以MC03BF0為通訊結構,可以在SAP系統中SE11進行檢視。

通訊結構中的字段并非需要完全提取資料,可用事務碼LBWE進行提取結構的靈活配置,如下:

BW資料源2LIS_03_BF抽取機制及場景分析

2.5 增量處理模式

本場景是物料憑證相關的資料,雖然增量處理采用了ABR1模式,但是物料憑證是不允許修改的,也就不好展現前鏡像、後鏡像、反轉鏡像等情況,故本次場景隻做理論介紹,後續以采購訂單資料源為例詳細介紹。

BW資料源2LIS_03_BF抽取機制及場景分析

在介紹增強機制之前,先了解下DSO和CUBE,

DSO:一般DSO用來存儲明細資料,其結構比較簡單。對于值的轉換(決定了可用的DELTA類型),既可以使用合計,也可以使用覆寫的方式。激活DSO後,其在背景對應3個資料表:

A表,存放了最後激活的資料。即存放了彙總後的資料。

LOG表:存儲了資料變化的資料記錄

N表,NEW表,臨時存放更新的資料,待激活後,将資料轉入A表和LOG表,

以上資料表,可以通過在SE11中,描述中搜尋DSO技術名稱找到。

CUBE:典型的星型架構。CUBE隻支援資料值的合計上載。

建立了CUBE之後,可以到SE11中,通過在表名中搜尋CUBE的名稱,找到對應的維表和事實表。同樣都是資料模型,而DSO更多用于存儲明細資料,星型架構的CUBE更适合作為分析資料源。

定義DELTA類型的基本表,如下:

ROOSOURCE:定義了每個資料源的屬性

RODELTAM:定義了每種增量提取方式的方法,即:DP的屬性

DP:增量處理名稱

T: 辨別是否為 僅全量更新

NIM:辨別是否為傳輸 新鏡像(即:新資料的狀态)

BIM:辨別是否為傳輸 前鏡像(即:更新前的狀态)

AIM:辨別是否為傳輸 後鏡像(即:更新後的狀态)

ADD:辨別是否為傳輸 差額鏡像(即:更改的差額狀态)

DID:辨別是否為傳輸 删除鏡像(即:删除狀态)

RIM:辨別是否為傳輸 反轉鏡像(即:沖銷的狀态)

SER:辨別為 哪種序列化方式,即:資料的排序

1. 無所需序列化

2. 所需的請求序列化

3. 所需的資料包序列化

類型:DELTA處理的類型。辨別何種資料抽取方式。

BW中的增量機制就是圍繞RODELTAM表設定來進行的,下面舉例說明:

首先,建立訂單

100000000 CREATED 100 N 将帶有記錄類型為‘’的建立記錄上載到BW,BW以N載入DSO

其次,更改 100->80

100000000 CHANGED -100 X 前鏡像生成

100000000 CHANGED 80 “” 後鏡像生成

100000000 CHANGED -20 A 差額鏡像生成

标志删除

100000000 DELETED 0 R 反轉鏡像生成

100000000 D 删除鏡像生成

建立100的業務:此為建立操作,傳輸新鏡像,在R3端,以‘’表示新鏡像

更改100->80:

如果前鏡像設定:以X表示前鏡像傳輸。

如果後鏡像設定:以‘’表示後鏡像傳輸

如果差額鏡像設定:以A表示差額鏡像傳輸

以上内容将在資料源2LIS_02_ITM分析的時候,詳細介紹。

3 增量隊列寫入邏輯

以資料源2LIS_03_BF為例,簡要分析SAP系統直接增量方式的寫入邏輯。

執行MIGO,561初始化庫存,根據目前SAP系統BW相關的配置,采用的是直接增量方式,程式更新标準業務資料庫表的同時也會直接更新增量隊列,當SAP系統執行資料送出時,有BW相關的處理子產品,如下:

BW資料源2LIS_03_BF抽取機制及場景分析
BW資料源2LIS_03_BF抽取機制及場景分析
BW資料源2LIS_03_BF抽取機制及場景分析

總體來說,BW增量隊列的核心函數是:MCEX_UPDATE_CALL_03,當然我們的場景是2LIS_03_BF,是以核心函數是MCEX_UPDATE_CALL_03,如果是其他序号,則函數為MCEX_UPDATE_CALL_ + 相應的序号。進入MCEX_UPDATE_CALL_03後,根據更新方法的配置項,我們目前采用V1更新,故走到核心FUNCTION函數:MCEX_UPDATE_03_V1,此函數中會調用CALL FUNCTION 'MCEX_UPDATE_03_QRFC' IN BACKGROUND TASK 來更新增量隊列和日志。

以上是SAP标準程式的調用和更新方式,資料源結構中的某些字段是針對BW系統的特殊指派且對于BW系統非常重要,需要跟蹤程式進行确定,比如2LIS_03_BF中的BWVORG字段,這個字段的後續文章我會介紹下。

本文研究的内容和撰寫過程中,參考了如下網絡内容:

BW之資料源 增量管理DELTA (比較詳細的)

https://www.cnblogs.com/hanmos/archive/2013/04/26/3045114.html

BW顧問進階:SAP BW後勤資料源抽取機制 作者:鍋包肉和BW

https://blog.csdn.net/weixin_45362398/article/details/117771927?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-2-117771927.pc_agg_new_rank&utm_term=bw%E6%8A%BD%E5%8F%96%E6%95%B0%E6%8D%AE+sap&spm=1000.2123.3001.4430