5. diel - Dáta Store Object (DSO) v SAP
V minulej lekcii, InfoPackage, nahranie dát do PSA , sme si ukázali a vysvetlili čo je InfoPackage a ako sa nahrávajú dáta do PSA. Dnes sa pozrieme na ďalší InfoProvider, ktorým je DSO. Vysvetlíme si na čo sa používa, aké sú jeho výhody a aké sú jeho typy.
Dáta Store Object (DSO)
Čo je to teda DSO a prečo ho v SAP BW použiť? DSO, čiže Data Store Object, je ďalší InfoProvider v SAP BW a môže byť použitý ako ďalšia dátová vrstva v dátovom sklade. V princípe sa jedná o dvojrozmerné úložisko, ktoré najčastejšie obsahuje už vyčistená a skonsolidované pohybová dáta, alebo kmeňové dáta, ktoré majú vysoký detail. DSO obsahuje changelog a dokáže sa tak vysporiadať so zmenami dát v zdrojovom systéme.
Vlastnosti
Vlastnosti úložiska sú teda nasledujúce:
- Dvojrozmerná transparentné tabuľka
- Dáta spravidla bývajú uložená vo veľkom detaile
- Z DSO je už možné reportovať (tento objekt môžeme teda použiť ako zdroj údajov)
- Skladá sa z 3 tabuliek, jednou z nich je changelog, čím umožňuje reagovať na zmeny dát v zdrojovom systéme
Príklad
Majme obchod, ktorý dodáva tovar a na dodacom liste bude 1000ks batérií. Tento doklad bude uložený v SAP R3 systéme. Táto dátová sada bude extrahovaná do dátového skladu (do nášho DSO). Avšak dodací list v R3 môže byť kedykoľvek zmenený, ak si to zákazník praje, preto dôjde k poníženie na 500ks. Táto zmena musí byť taktiež zohľadnená v BW systéme.
Obrázok vyššie obsahuje:
- SAP R3 - Zdrojový systém
- DSO - InfoProvider v SAP BW (~ dátové úložisko)
- Bex - Reportovacie nástroj od SAP (Bex Analyser)
Data (dodací list) je vytvorený a uložený v zdrojovom SAP R3 systému. Ďalej sú dáta extrahovaná do SAP BW do DSO. DSO prakticky obsahuje 3 tabuľky:
- tabuľku nových dát
- tabuľku aktuálnych dát
- tabuľku zmien
Dáta sú najprv uložené do tabuľky nových dát. Potom musí byť aktivovaná, tzn. v DSO sa dáta presunú z tabuľky nových dát do tabuľky dát aktuálnych. Všetka história zmien sa ukladá do tretej tabuľky názvom change log.
Doklad s 1000ks sa extrahuje do DSO, do tabuľky nových dáta, kde sa pripíše + 1000ks. Po aktivácii sa tabuľka nových dát vymaže a dáta sa presunú do tabuľky aktuálnych dát (+ 1000ks). V change logu nič nebolo, tak tu pribudne aj jeden riadok (+ 1000ks).
Akonáhle dôjde k zmene v R3 systéme, teda že sa zníži počet batérií
na 500ks, táto zmena sa musí premietnuť aj v dátovom sklade. Do tabuľky
nových dát sa extrahuje 500ks, po aktivácii dát sa dáta z tabuľky nových
presunú (predvolená vlastnosťou je PREPIS) do tabuľky
aktuálnych dát, ale ide nastaviť aj súčet. A v tabuľke
aktuálnych dát bude 500ks. Tabuľka nových dát sa týmto opäť vymaže a do
change logu sa pridajú dva záznamy (-to čo tam bolo, teda -1000
,
a + čo sa novo prepísal, čo je +500
). Tento mechanizmus
funguje za predpokladu, že kľúče dátovej sady sú zhodné!
Typy DSO
Sľúbili sme si, že si predstavíme jednotlivé typy tohto InfoProvideru.
# 1 Standard (štandardná)
Tento typ DSO má tri základné tabuľky, to sme si vysvetlili už vyššie. Princíp nahrávanie je tu rovnaký - napred sa nahráva do tabuľky nových dát, po aktivácii sa dáta presunú do aktívnych a do change logu sa uloží histórie.
Vlastnosti
Vlastnosti úložiska sú nasledovné:
- Možnosť delta nahrávania (bližšie v ďalších kapitolách)
- Aktivácia dát
- Vlastné kľúče (možnosť vyhľadávania a indexácie)
- Môže byť pomalší voči ďalším typom DSO
Založenie DSO
Vľavo v menu vyberieme InfoProvider a potom vyberieme
InfoArea, pod ktorou nový objekt chceme založiť. Klikneme
pravým tlačidlom myši a vyberieme Create DataStore Object
:
Nový objekt sa musí pomenovať (stále platí vzťahujú údaje konvencie
pre zákaznícke objekty, musí začínať X
, Y
či
Z
).
Takto vyzerá nové DSO, bez akéhokoľvek nastavenia:
Prejdime si teraz tá najpodstatnejšia nastavenia:
- Setting -> Type of DataStore Object - Standard (týmto sa rozhoduje primárne správanie DSO), tu teda ten štandardné.
- Key fields - Definovanie kľúčových polí (DSO je tabuľka, to sme si už vysvetlili vyššie). Kľúčové polia určujú jednoznačnosť dátovej sady v tabuľke (ak je návrh zlý, tak sa dáta potom prepisujú).
- Data Fields - Dátové polia (všetky ostatné polia, ktoré chceme nahrávať a vyhodnocovať), patrí sem nielen charakteristiky, ale aj ukazovatele!
- Navigation Attributes - Navigačný atribút nie je obsiahnutý fyzicky v DSO, ale pomocou kmeňových dát a atribútov sa pri reportovanie pomocou JOIN dáta databázovo pripojí a je možné aj vďaka tomu potom reportovať.
Princíp modelovanie DSO
Z ľavého okna pomocou horných tlačidiel vyberieme z akého InfoKatalogu chceme pridať charakteristiky a ukazovatele. Potom je jednoducho pomocou myšou presunieme podľa potreby pod jednotlivé uzly (POZOR: DSO musí mať vždy min. Jednu kľúčovú charakteristiku a jeden ukazovateľ, pokiaľ nemá, tak sa pri aktivácii vygeneruje chyba).
InfoObjekty je možné vkladať aj priamo, ak vieme ich technický názov.
Túto možnosť používame napr. Pre štandardné InfoObjekty akú sú
0CALDAY
, 0CALYEAR
, apod., Ale je možné takto
vložiť i zákaznícke.
Stačí napísať názov a potvrdiť klávesou Enter, celé okno potom zavrieme zelenú "fajkou" dole.
Teraz sú dva nové InfoObjekty súčasťou DSO:
Akonáhle je modelovanie hotové, musí sa DSO, ako každý objekt v SAP, aktivovať:
Ak bolo všetko v poriadku, vypíše sa dole hláška "Object activated":
Týmto sme si namodelovali prvú štandardnú DSO a ďalej sa pozrieme na ďalšie dva typy.
# 2 Direct Update
Tento typ nemá tri tabuľky ako štandardné DSO, ale je prispôsobený priamemu zápisu. Nastavenie, kľúčové polia a pod. Sú zhodné.
Možnosti zápisu sú nasledovné:
- Pomocou APD (viď .: https://blogs.sap.com/...nd-designer/)
- Pomocou ABAP (programovací jazyk v SAP)
- Manuálne zadanie - transakcie RSINPUT
Vlastnosti
Ako sa nám zmenili vlastnosti úložisko oproti predchádzajúcemu typu?
- Priamy zápis, teda jednoduchšia cesta k dátam
- Dáta sú dostupné k reportovanie okamžite po nahraní
- Nie je možné delta nahranie ani roll back, pretože tu nie je žiadny change log
- Nie je žiadny monitor udalostí, čo sa nahralo, kedy pod. (Bližšie vysvetlíme v ďalšej kapitole)
- Nie je podporované SAP BI štandardné nahrávanie z dátového zdroja
# 3 Write-Optimized (optimalizované pre zápis)
Tento typ má výhodu, že je najrýchlejší pre nahrávanie dát. Najčastejšie sa používa po PSA vrstve. Dáta sú tu uložené vo vysokom detailu.
Vlastnosti
- Rýchle oproti štandardnej DSO, nie je nutná aktivácia dát
- Každý nový záznam má vlastný technický kľúč (generované technické kľúče), každý nový záznam je ihneď vložený do tabuľky
Oproti dvom DSO vyššie sa tento DSO líšia v tom, že má
automaticky generované kľúče (0REQUEST
,
0DATAPAKID
, 0RECORD
), ktoré zaručujú
jednoznačnosť záznamu a teda je zápis
rýchly.
Ďalej je tu ešte možnosť definovať Semant Key, čo je podobné Key Fields. Tu však neplní funkciu jednoznačnosti, ale slúži skôr pre účely identifikácie chyby či duplicitných záznamov.
V spojení s týmto je možné aktivovať v DSO voľbu, aby systém pri nahrávaní kontroloval duplicitné záznamy (podľa sémantických kľúčov). Ak je voľba vypnutá, tak sa duplicitné záznam pridá ako nový riadok, ak zapnutá, je proces nahrávania prerušený.
Po založení je objekt opäť nutné aktivovať, ale to už poznáme z dielov predošlých, že KAŽDÝ objekt v SAP musí byť pred použitím aktivovaný. Inak existuje iba v tzv. "M - modified" verzii. Po aktivácii ho systém skontroluje a ak je všetko konzistentné, zapíše objekt do Data Dictionary so statusom "A").
Týmto sme sa vysvätili DSO, jednotlivé typy a ich vlastnosti. Nabudúce sa pozrieme na Transformácie medzi InfoObjekty v SAP .