Lekce 5 - Data Store Object (DSO) v SAP
V minulé lekci, InfoPackage, nahrání dat do PSA, jsme si ukázali a vysvětlili co je InfoPackage a jak se nahrávají data do PSA. Dnes se podíváme na další InfoProvider, kterým je DSO. Vysvětlíme si k čemu se používá, jaké jsou jeho výhody a jaké jsou jeho typy.
Data Store Object (DSO)
Co je to tedy DSO a proč jej v SAP BW použít? DSO, neboli Data Store Object, je další InfoProvider v SAP BW a může být použit jako další datová vrstva v datovém skladu. V principu se jedná o dvojrozměrné úložiště, které nejčastěji obsahuje již vyčištěná a zkonsolidovaná pohybová data, nebo kmenová data, která mají vysoký detail. DSO obsahuje changelog a dokáže se tak vypořádat se změnami dat ve zdrojovém systému.
Vlastnosti
Vlastnosti úložiště jsou tedy následující:
- Dvourozměrná transparentní tabulka
- Data zpravidla bývají uložena ve velkém detailu
- Z DSO je již možné reportovat (tento objekt můžeme tedy použít jako zdroj dat)
- Skládá se ze 3 tabulek, jednou z nich je changelog, čímž umožňuje reagovat na změny dat ve zdrojovém systému
Příklad
Mějme obchod, který dodává zboží a na dodacím listu bude 1000ks baterií. Tento doklad bude uložen v SAP R3 systému. Tato datová sada bude extrahována do datového skladu (do našeho DSO). Avšak dodací list v R3 může být kdykoliv změněn, pokud si to zákazník přeje, proto dojde k ponížení na 500ks. Tato změna musí být taktéž zohledněna v BW systému.

Obrázek výše obsahuje:
- SAP R3 - Zdrojový systém
- DSO - InfoProvider v SAP BW (~datové úložiště)
- BEx - Reportovací nástroj od SAP (BEx Analyser)
Data (dodací list) je vytvořen a uložen ve zdrojovém SAP R3 systému. Dále jsou data extrahována do SAP BW do DSO. DSO prakticky obsahuje 3 tabulky:
- tabulku nových dat
- tabulku aktuálních dat
- tabulku změn
Data jsou nejprve uložena do tabulky nových dat. Poté musí být aktivována, tzn. v DSO se data přesunou z tabulky nových dat do tabulky dat aktuálních. Veškerá historie změn se ukládá do třetí tabulky názvem change log.
Doklad s 1000ks se extrahuje do DSO, do tabulky nových data, kde se připíše +1000ks. Po aktivaci se tabulka nových dat vymaže a data se přesunou do tabulky aktuálních dat (+1000ks). V change logu nic nebylo, tak zde přibude také jedna řádka (+1000ks).

Jakmile dojde ke změně v R3 systému, tedy že se sníží počet baterií
na 500ks, tato změna se musí promítnout i v datovém skladu. Do tabulky
nových dat se extrahuje 500ks, po aktivaci dat se data z tabulky nových
přesunou (výchozí vlastností je PŘEPIS) do tabulky
aktuálních dat, ale jde nastavit i součet. A v tabulce
aktuálních dat bude 500ks. Tabulka nových dat se tímto opět vymaže a do
change logu se přidají dva záznamy (-to co tam bylo, tedy -1000
,
a + co se nově přepsalo, což je +500
). Tento mechanismus
funguje za předpokladu, že klíče datové sady jsou shodné!

Typy DSO
Slíbili jsme si, že si představíme jednotlivé typy tohoto InfoProvideru.
#1 Standard (standardní)
Tento typ DSO má tři základní tabulky, to jsme si vysvětlili již výše. Princip nahrávání je zde stejný - napřed se nahrává do tabulky nových dat, po aktivaci se data přesunou do aktivních a do change logu se uloží historie.
Vlastnosti
Vlastnosti úložiště jsou následující:
- Možnost delta nahrávání (blíže v dalších kapitolách)
- Aktivace dat
- Vlastní klíče (možnost vyhledávání a indexace)
- Může být pomalejší vůči dalším typům DSO
Založení DSO
Vlevo v menu vybereme InfoProvider a poté vybereme
InfoArea, pod kterou nový objekt chceme založit. Klikneme
pravým tlačítkem myši a vybereme Create DataStore Object
:

Nový objekt se musí pojmenovat (stále platí jmenná konvence pro
zákaznické objekty, musí začínat X
, Y
či
Z
).
Takto vypadá nové DSO, bez jakéhokoliv nastavení:

Projděme si nyní ta nejpodstatnější nastavení:
- Setting -> Type of DataStore Object – Standard (tímto se rozhoduje primární chování DSO), zde tedy ten standardní.
- Key fields – Definování klíčových polí (DSO je tabulka, to jsme si již vysvětlili výše). Klíčová pole určují jednoznačnost datové sady v tabulce (pokud je návrh špatný, tak se data potom přepisují).
- Data Fields – Datová pole (všechna ostatní pole, která chceme nahrávat a vyhodnocovat), patří sem nejen charakteristiky, ale i ukazatele!
- Navigation Attributes – Navigační atribut není obsažen fyzicky v DSO, ale pomocí kmenových dat a atributů se při reportování pomocí JOINU data databázově připojí a je možné také díky tomu pak reportovat.
Princip modelování DSO
Z levého okna pomocí horních tlačítek vybereme z jakého InfoKatalogu chceme přidat charakteristiky a ukazatele. Poté je jednoduše pomocí myší přesuneme dle potřeby pod jednotlivé uzle (POZOR: DSO musí mít vždy min. jednu klíčovou charakteristiku a jeden ukazatel, pokud nemá, tak se při aktivaci vygeneruje chyba).

InfoObjekty je možné vkládat i přímo, pokud víme jejich technický
název. Tuto možnost používáme např. pro standardní InfoObjekty jakou jsou
0CALDAY
, 0CALYEAR
, apod., ale je možné takto vložit
i zákaznické.

Stačí napsat název a potvrdit klávesou Enter, celé okno poté zavřeme zelenou "fajfkou" dole.

Nyní jsou dva nové InfoObjekty součástí DSO:

Jakmile je modelování hotové, musí se DSO, jako každý objekt v SAP, aktivovat:

Pokud bylo vše v pořádku, vypíše se dole hláška "Object activated":

Tímto jsme si namodelovali první standardní DSO a dále se podíváme na další dva typy.
#2 Direct Update
Tento typ nemá tři tabulky jako standardní DSO, ale je uzpůsobený přímému zápisu. Nastavení, klíčové pole apod. jsou shodná.

Možnosti zápisu jsou následující:
- Pomocí APD (viz.: https://blogs.sap.com/…nd-designer/)
- Pomocí ABAPu (programovací jazyk v SAP)
- Manuální zadání – transakce RSINPUT
Vlastnosti
Jak se nám změnily vlastnosti úložiště oproti předchozímu typu?
- Přímý zápis, tedy jednodušší cesta k datům
- Data jsou dostupná k reportování okamžitě po nahrání
- Není možné delta nahrání ani roll back, protože zde není žádný change log
- Není žádný monitor událostí, co se nahrálo, kdy apod. (blíže vysvětlíme v další kapitole)
- Není podporované SAP BI standardní nahrávání z datového zdroje
#3 Write-Optimized (optimalizováno pro zápis)
Tento typ má výhodu, že je nejrychlejší pro nahrávání dat. Nejčastěji se používá po PSA vrstvě. Data jsou zde uložena ve vysokém detailu.
Vlastnosti
- Rychlé oproti standardní DSO, není nutná aktivace dat
- Každý nový záznam má vlastní technický klíč (generované technické klíče), každý nový záznam je ihned vložen do tabulky

Oproti dvěma DSO výše se tento DSO liší v tom, že má
automaticky generované klíče (0REQUEST
,
0DATAPAKID
, 0RECORD
), které zaručují
jednoznačnost záznamu a tudíž je zápis
rychlý.

Dále je zde ještě možnost definovat Semant Key, což je podobné Key Fields. Zde však neplní funkci jednoznačnosti, ale slouží spíše pro účely identifikování chyby či duplicitních záznamů.
Ve spojení s tímto je možné aktivovat v DSO volbu, aby systém při nahrávání kontroloval duplicitní záznamy (dle sémantických klíčů). Pokud je volba vypnutá, tak se duplicitní záznam přidá jako nový řádek, pokud zapnutá, je proces nahrávání přerušen.

Po založení je objekt opět nutné aktivovat, ale to již známe z dílů předešlých, že KAŽDÝ objekt v SAP musí být před použitím aktivovaný. Jinak existuje pouze v tzv. "M - modified" verzi. Po aktivaci jej systém zkontroluje a pokud je vše konzistentní, zapíše objekt do Data Dictionary se statusem "A").
Tímto jsme se vysvětili DSO, jednotlivé typy a jejich vlastnosti. Příště se podíváme na Transformace mezi InfoObjekty v SAP.