ABAP 11. diel – Úprava dát v databázovej tabuľke

Pokiaľ čítate dátové záznamy z nejakej tabuľky, nemusíte sa zaujímať o iných užívateľov tabuľky.Čo sa stane keď sa iný užívateľ rozhodne meniť dátové záznamy? Ako sa s tým systém vysporiada?

Pochopenie princípu
Z dôvodu zložitosti problému – predom nepoznáme koľko užívateľov chce meniť dátové záznamy alebo chce pristupovať k jednej databázovej tabuľke. Táto problematika je skôr pre pokročilých, ale je dôležité aby ste pochopili základné princípy.

Na začiatok spomeniem že pracujeme s klient-server architektúrou. To znamená že Vy pracujete ako klient, a môžete spustiť program alebo aplikačný server (ktorý sa nachádza niekde v sieti a pristupuje k databázovému serveru – ktorý je tiež umiestnení v sieti. Z toho vyplýva že v procese je viacej počítačov, ktoré musia byť koordinované) Programátori aplikácií sa nemusia o túto technológiu zaujímať

Systém oprávnení
Pre každé pole je definovaná aktivita, napríklad zobraziť alebo upraviť. Vzťah pole sa ukladá do objektu oprávnenie.

– Objekt oprávnenie
Aby sa dali objekty oprávnenia ľahko uchovať, ukladajú sa do tried objektov. Triedy objektov sa priraďujú aplikáciam do profilu.

– Profil oprávnení
Samozrejme nemusíte znovu objavovať objavené. Štandartný systém SAP obsahuje veľa profilov a zložitých profilov. Programátor si ich len musí overiť prípadne trochu upraviť. Programátor môže použiť defaultný profil účtovníka, a presvedčiť sa či zodpovedá aktuálnym požiadavkám. Následne ho môže skopírovať a upraviť.

Pohľady na dáta, ktoré má konkrétny užívateľ sa ukladajú do tzv. role.

– Kmeňový záznam užívateľov
Aby sa užívateľ mohol prihlásiť do systému SAP, musí byť s systéme SAP vytvorený a musí mať kmeňový záznam užívateľa. V tomto zázname užívateľa musia byť priradené role alebo viacej rolí. Role priraďujú užívateľom určité oprávnenia. Určujú tiež aktivity ktoré môže užívateľ robiť s dátami. Cieľom tohoto je docieliť aby užívateľ pristupoval len tam kde má na to oprávnenie.

– AUTHORITY-CHECK
Vlastné kontroly oprávnení do zdrojového kódu ABAP je možné pridať príkazom AUTHORITY-CHECK. Tento príkaz použite pokiaľ program nie je dostatočne chránený pomocou oprávnení.

Systém blokovania
Keď hovoríme o blokovaní, musíme rozlišovať medzi blokovaným – systémom fyzickej databáze a systémom SAP. Systém blokovania fyzickej databáze nevyhovuje požiadavkám systému SAP. Databázový systém blokuje len tie dátové záznamy, ktoré sú v tom okamihu upravované. Tranzakcie však zahrnujú celý podnikový proces, takže blokovanie fyzickej databázy nevyhovuje. Blokovanie v systéme SAP umožňuje blokovať dátové záznamy cez niekoľko dialógových krokov.

Logické blokovanie – všetky aplikačné vrstvy programov sa musia spoliehať na blokovanie systému SAP a dotazovať sa tabuľky blokovania na patričné záznamy.

Open SQL
Programy v systéme ABAP používajú pre komunikáciu s databázový jazyk Open SQL. A to nezávisle na databázovom systéme. Jazyk Open SQL umožňuje čítať a upravovať dáta, dáta môžete ukladať do vyrovnávacej pamäti priamo aplikačného serveru, aby ste znížili počet prístupov do databázového serveru. Databázové rozhranie tiež zodpovedá za synchronizáciu vyrovnávacej pamäti s databázovou tabuľkou v predom zadefinovaných intervaloch. Z tohoto dôvodu sa ukladanie do vyrovnávacej pamäti hodí pre statické data, ako napríklad data custominzingu a kmeňové data.

Poznámka: žiadosť na pokročilých programátorov jazyku ABAP, v tomto momente by sme radi požiadali pokročilých programátorov, aby nič nehovorili na hlas, len sa z hlboká nadýchli.

Príkazy Open SQL

Príkazy Open SQL slúžia k komunikácií s certifikovaným databázovým systémom (MS SQL, ORACLE, atď). Predpokladom správneho fungovania je vytváranie objektov cez nástroj ABAP Dictionary.

Ukážkový kód pre príkaz INSERT
Pre vkladanie nových riadkov použite príkaz INSERT.

Pokiaľ chcete vložiť nový riadok do ZMEMBER03 tak príkaz bude vyzerať takto: INSERT zmember03.. Kým začnete plniť štruktúru nového záznamu, vymažte obsah tabuľky príkazom CLEAR.

CLEAR zmember03.

Použitie pracovných oblastí: Príkaz CLEAR zapíše do všetkých polí tabuľkové hodnoty – defaultné hodnoty pre dátový typ. Napríklad pre dátový typ C je hodnota ´00000000´.

Definovanie pracovných oblastí: Z dôvodu čitateľnosti zdrojového kódu doporučujeme aby ste pred názvom vkladali príponu “WA_”. Pokiaľ chcete vytvoriť pracovnú oblasť WA_ZMEMBER03 s rovnakou štruktúrou ako má tabuľka ZMEMBER03 použite príkaz DATA:

DATA wa_zmember03 LIKE zmember03. // tabuľka bude taká istá ako zdrojová

Nový datový záznam vložíte do tabuľky ZMEMBER03 príkazom:

INSERT zmember03 FROM wa_zmember03.

Dynamický zápis: INSERT (target_table) LIKE wa_zmember03.

Ukážkový kód pre príkaz UDPATE
Pre úpravu datového záznamu použite príkaz UPDATE.

Pre aktualizáciu tabuľky ZMEMBER03 použite príkaz:

UPDATE zmember03.

Upravenie pracovnej oblastí a aktualizácia zodpovedajúceho riadku v databáze urobíte pomocou príkazu:

UPDATE zmember03 FROM wa_zmember03.

Poznámka: Názov tabuľky je možné určiť aj dynamicky.

Ukážkový kód pre príkaz MODIFY
Príkaz MODIFY použite pokiaľ nie ste si istý či záznam v tabuľke existuje, keď záznam existuje bude upravený – v takomto prípade príkaz zodpovedá
príkazu UDPATE. Pokiaľ datový záznam neexistuje bude mať príkaz MODIFI rovnaký účinok ako INSERT.

Keď upravujete tabuľku v pracovnej oblasti budete musieť špecifikovať tabuľku.

MODIFY zmember03.

Samozrejme môžete odkázať príkaz MODIFY na pracovnú oblasť a potom dynamicky určiť databázovej tabuľky, ako vidíte nižšie:

MODIFY zmember03 FROM wa_zmember03.

Ukážkový kód pre príkaz DELETE
Odstránenie databázovej tabuľky urobíte príkazom DELETE, môže vymazať celý obsah data budu nenávratne zmazané.

DELETE zmember03. – odstráni riadok databázovej tabuľky.

V tomto prípade odstráni dátový záznam s odkazom na pracovnú oblasť.

DELETE zmember03 FROM wa_zmember03.

Podmienky: Veľmi opatrne aby ste nevymazali nejaké dátové záznamy na viac. Veľké a malé písmena sú dôležité. V literáloch sa rozlišuje veľkosť písmen.

DELETE FROM zmember03
WHERE zzcoursetitle = ´SAP01´.

Zbavte sa všetkého!!
DELETE FROM zmember03.

Nabudúce: Riadenie toku programu a logické výrazy

zdroj: TS FMG.sk

Loading Facebook Comments ...