V nasledujúcich častiach blogovej série sa budeme krok za krokom venovať programovaniu v prostredí systému SAP s využitím jazyka ABAP. Našim cieľom je pomôcť najmä tým, ktorí sa s programovaním v SAPe ešte len zoznamujú alebo majú základné skúsenosti, ale chcú sa v tejto oblasti zlepšovať. Vysvetlíme si nielen technické aspekty, ale aj kontext, prečo je programovanie v SAPe dôležité, ako funguje architektúra systému a aké nástroje sú používateľovi k dispozícii. V tejto prvej časti sa pozrieme na základné princípy architektúry SAP systému, a tiež na to, kedy a prečo je potrebné vyvíjať vlastné riešenia.
Architektúra systému SAP: Tri kľúčové vrstvy
Systém SAP je postavený na viacvrstvovej architektúre, ktorá zabezpečuje oddelenie jednotlivých logických úrovní aplikácie. Vďaka tomu je možné systém efektívne spravovať, rozširovať a udržiavať bez toho, aby bola narušená stabilita jeho jadra. Architektúra sa skladá z troch základných vrstiev:
- Prezentačná vrstva (Presentation Layer): Je to rozhranie, cez ktoré používateľ komunikuje so systémom. Najčastejšie ide o SAP GUI (Graphical User Interface), ktorý slúži na zobrazovanie údajov, formulárov, dialógových okien a zároveň prijíma vstupy od používateľa.
- Aplikačná vrstva (Application Layer): Táto vrstva spracúva logiku požiadaviek. Tu sa vykonávajú samotné ABAP programy, ktoré sú buď štandardnou súčasťou systému alebo boli vytvorené internými vývojármi. Aplikačná vrstva sprostredkúva komunikáciu medzi prezentačnou a databázovou vrstvou.
- Databázová vrstva (Database Layer): Slúži na trvalé uchovávanie všetkých podnikových údajov. Táto vrstva poskytuje služby na čítanie, aktualizáciu, vkladanie a mazanie údajov uložených v databázových tabuľkách.
Prakticky to funguje tak, že ak používateľ klikne na položku v menu alebo spustí funkciu prostredníctvom klávesovej skratky, riadenie systému prejde do aplikačnej vrstvy, kde sa aktivuje príslušný kód naprogramovaný v ABAPe. Ak je potrebné zobraziť nové okno pre zadanie údajov, systém sa vráti späť do prezentačnej vrstvy. Po zadaní údajov sa riadenie znova prenesie do aplikačnej vrstvy a môže pokračovať spracovanie údajov, vrátane komunikácie s databázou. Výsledky sa napokon opäť zobrazia v používateľskom rozhraní.
Prečo je potrebné programovať v SAPe?
Hoci je systém SAP vybavený obrovským množstvom štandardných programov, formulárov, transakcií a reportov, v reálnej praxi sa neraz stretávame s potrebou prispôsobiť systém konkrétnym podnikovým požiadavkám. Každá firma má vlastné procesy, špecifické pravidlá a štruktúru údajov, ktoré nie vždy dokonale zapadajú do štandardného SAP riešenia.
Z toho dôvodu sa do systému doprogramovávajú vlastné používateľské transakcie, reporty alebo rozšírenia existujúcich riešení. Ide napríklad o špecifické výstupy pre účtovníctvo, sklad, controlling alebo HR oddelenie, ktoré si vyžadujú iný obsah, formát alebo spracovanie ako ponúka štandard SAP.
Výhodou je, že ABAP umožňuje vytvárať riešenia, ktoré sa plne integrujú do existujúceho systému, rešpektujú jeho bezpečnostné pravidlá a zároveň sú prispôsobené používateľským potrebám. Mnohé spoločnosti týmto spôsobom dosahujú vyššiu efektivitu, znižujú chybovosť a šetria čas zamestnancov.
Ako je možné programovať v SAPe: Kompletný prehľad možností vývoja
Systém SAP ako podnikový informačný systém svetového formátu ponúka nielen bohatú funkcionalitu v oblasti riadenia podnikových procesov, ale zároveň poskytuje veľmi robustné možnosti pre vlastný vývoj, prispôsobenie a integráciu. V tejto kapitole si vysvetlíme štyri základné možnosti, ako sa dá v SAPe programovať alebo rozširovať funkcionalita systému podľa individuálnych potrieb spoločnosti. Ukážeme si hlavné výhody, použitie a situácie, v ktorých sa daný prístup oplatí zvoliť.
Programovací jazyk ABAP – základ všetkého vývoja v SAPe
ABAP (anglicky : Advanced Business Application Programming) je hlavný pre programovanie v SAPe priamo vyvinutý spoločnosťou SAP. Ide o jazyk, ktorý bol špeciálne navrhnutý na tvorbu podnikových aplikácií a modulov priamo v rámci SAP platformy. Väčšina funkcionalít, ktoré bežní používatelia v systéme denne využívajú, bola vyvinutá práve v jazyku ABAP.
Kde a kedy sa ABAP používa:
- vývoj klasických reportov, ktoré zobrazujú údaje z rôznych tabuliek na základe definovaných filtrov,
- tvorba formulárov (SmartForms, Adobe Forms),
- vytváranie vlastných transakcií a používateľských rozhraní,
- programovanie funkčných modulov a rozhraní medzi modulmi (napr. HR, FI, MM),
- dopĺňanie systému o rozšírenia a user exits bez zásahu do štandardu.
ABAP podporuje procedurálny aj objektovo-orientovaný štýl programovania, čo umožňuje plynulý prechod od základov k pokročilejším konceptom. Dôležitým aspektom je tiež priamy prístup k databáze prostredníctvom natívneho SQL (Open SQL), ktorý je optimalizovaný pre SAP systémy. Na programovanie v jazyku Java máme niekoľko fantastických Java kurzov.
Vývojové prostredie:
ABAP sa najčastejšie vyvíja v transakcii SE80 – Object Navigator, kde vývojár pracuje so všetkými komponentmi programu – od kódu, cez obrazovky až po dokumentáciu. Alternatívne sa využíva moderné prostredie Eclipse s pluginmi ADT (ABAP Development Tools) a ABAP Workbench.
Pre koho je ABAP vhodný:
Pre analytikov, vývojárov a IT špecialistov, ktorí chcú mať plnú kontrolu nad funkcionalitou systému SAP a chcú realizovať vlastné systémové riešenia.
Pozrime sa teraz na zoznam jednotlivých komponentov programu, všeobecnú štruktúru a spôsob zápisu zdrojového kódu v jazyku ABAP.
V zásade sa štandardný ABAP program skladá zo zostavy dostupných systémových komponentov a to:
• zdrojového kódu obsahujúceho príkazy jazyka ABAP
• dynpra zostaveného z vlastného obsahu obrazovky
• nastavenej logika behu programu formovanej použitím ABAP príkazov
• používateľského rozhrania vytvoreného z jednotlivých systémových častí a textových prvkov
• nastavených variantov k predbežnému obsadeniu všetkých vstupných polí na výberových obrazovkách podľa požiadavky používateľov
• pripravenej dokumentácie vo forme samostatného okna k programu (dokumentácia bude v tomto prípade závislá od nastaveného jazyka)
• komentára zapísaného priamo do zdrojového kódu pre kompletné zdokumentovanie použitej techniky programovania
Programovací jazyk ABAP, je riadený prostredníctvom nastavených udalostí a týmto spôsobom sa tak prispôsobuje k spracovaniu používateľských dialógov. Zdrojový kód pozostáva z troch častí a to z úvodných textových informácií o programe vo forme komentára, ďalej z deklarácie premenných (do tejto časti môžeme zaradiť príkazy pre globálne dátové typy a objekty ABAP vrátane výberových obrazoviek pre vstup údajov) a nakoniec z dvoch rozdielnych blokov (blok udalostí a dialógové moduly s procedúrami), ktoré vytvárajú samotnú logiku spracovania programového kódu. Spôsob zápisu príkazov v kóde nie je komplikovaný.
Z pohľadu zápisu sa program v jazyku ABAP vytvára postupnosťou príkazov, ktoré sú navzájom oddelené bodkou. Príkaz pritom môže byť napísaný na viacerých riadkoch, ale rovnako aj na jednom riadku sa môže vyskytovať zase viacero príkazov. V ABAP kóde sa nerozlišujú veľké a malé písmená pre zadané kľúčové slová. ABAP nie je case sensitive – teda nerozlišuje malé a veľké písmená v názvoch príkazov, premenných, názvov tabuliek či polí.
V rámci zdrojového kódu si môže programátor zapisovať aj komentáre (ide o veľmi dôležitú informáciu, ktorú ocení programátor hlavne vtedy, keď bude časom spätne riešiť nejaké úpravy v zdrojovom kóde programu), tie na začiatku riadku začínajú symbolom * a komentáre v už rozpísanom riadku zase cez symbol “ (v tomto prípade sa za komentár považuje text zapísaný od uvedeného symbolu až po koniec riadku).
Automatické formátovanie pre zapísaný zdrojový kód môže programátor v editore aktivovať v ľubovoľnom čase a to kliknutím na ikonu v nástrojovej lište transakcie SE38 (v nej budeme pripravovať väčšinu programov v rámci seriálu) alebo na položku v jej hlavnom menu s názvom Spracovanie, následne kliknutím na položku Pretty Printer.
Príklad SAP ABAP
Tento ABAP kód predstavuje jednoduchý report s názvom z_priklad, ktorý slúži na zber a následné zobrazenie údajov zadaných používateľom prostredníctvom výberovej obrazovky. V prvej časti programu je vytvorený blok výberovej obrazovky s vizuálnym rámčekom a titulkom definovaným v texte s identifikátorom text-001. Do tohto bloku sú vložené tri vstupné polia: meno, priezv (priezvisko) a vek. Pole meno a priezv sú typu znakového reťazca (c) s dĺžkou 12 znakov, zatiaľ čo pole vek je numerické (n) s dĺžkou 2 znaky. Po vyplnení týchto polí a spustení reportu sa obsah jednotlivých vstupov vypíše na obrazovku. Výstup pozostáva z jedného riadku, v ktorom sú za sebou uvedené hodnoty „Meno“, „Priezvisko“ a „Vek“, nasledované zadanými údajmi od používateľa. Tento príklad slúži ako ukážka základného používania výberovej obrazovky a výpisu údajov v ABAP reporte.
*---------------------------------------------------------------------*
*& Príklad na programovanie v jazyku ABAP
*---------------------------------------------------------------------*
REPORT z_priklad.
SELECTION-SCREEN BEGIN OF BLOCK blok WITH FRAME TITLE text-001.
PARAMETERS: meno(12) TYPE c.
PARAMETERS: priezv(12) TYPE c.
PARAMETERS: vek(2) TYPE n.
SELECTION-SCREEN END OF BLOCK blok.
WRITE: ' Meno: ', meno,
' Priezvisko: ', priezv,
' Vek: ', vek.
Čo tento zdrojový kód robí:
- Definuje jednoduchý report s názvom z_priklad.
- Vytvára výberovú obrazovku s tromi vstupnými poľami (meno, priezvisko, vek), zoskupenými do bloku s rámčekom.
- Po spustení a zadaní údajov sa tieto údaje zobrazia na obrazovke v riadku pomocou príkazu WRITE.
Programovanie v jazyku Java – moderná cesta k integrácii a webovým aplikáciám
SAP už dlhé roky podporuje aj vývoj v jazyku Java, predovšetkým v rámci platformy SAP NetWeaver. Java sa v SAPe nevyužíva na tvorbu klasických transakcií, ale skôr na vývoj webových komponentov, portálových riešení, prípadne na integráciu s externými systémami.
Príklady použitia Java v SAPe:
- vývoj webových aplikácií a rozhraní SAP Fiori/UI5 (v kombinácii s OData službami),
- implementácia middleware vrstiev na prepojenie SAP a neSAP systémov (napr. CRM, e-commerce platformy),
- tvorba REST API a webových služieb v Java kontajneroch (napr. SAP PI/PO, SAP BTP),
- spracovanie hromadných údajov v dávkach v NetWeaver aplikáciách.
Výhody:
Java ako jazyk umožňuje väčšiu voľnosť a flexibilitu, je otvorená, má bohatú knižnicu funkcií a v SAPe je dobre integrovaná do riešení ako SAP Gateway, SAP Cloud Platform (BTP) a SAP Integration Suite.
Pre koho je Java vhodná:
Pre vývojárov, ktorí už majú skúsenosti s webovým vývojom a chcú prepojiť SAP s modernými webovými alebo mobilnými aplikáciami. Je vhodná najmä tam, kde sú potrebné externé integrácie a webové portály.
Pre lepšie pochopenie možností využitia programovacieho jazyka Java v prostredí SAP si môžeme uviesť niekoľko praktických príkladov jeho nasadenia. Jednou z možností je vytvorenie prepojenia medzi informáciami uloženými v externej databáze systému zákazníka a dátami uchovávanými v databázových tabuľkách samotného podniku. Vďaka tomuto prepojeniu je možné zabezpečiť, aby sa zmeny v primárnej databáze automaticky premietli aj do cieľovej databázy v definovanej štruktúre. Ďalším využitím Javy je nastavenie komunikácie medzi externým systémom, ako sú obchodní partneri alebo zákazníci, a interným informačným systémom spoločnosti. V prípade potreby je možné rozšíriť prepojenie aj o ďalší naviazaný informačný systém, čím sa dosiahne komplexnejšia integrácia.
Taktiež je možné využiť Java technológie v kombinácii s webovým portálom na online oznamovanie dodávok tovaru do centrálnych skladov zo strany jednotlivých dodávateľov. Takéto riešenie môže byť doplnené o automatizovaný mechanizmus, ktorý na základe týchto avíz automaticky zakladá nákupné objednávky, alebo v prípade odberateľov vytvára predajné objednávky priamo zo systému webového portálu do prostredia SAP.
Príklad SAP Java
Jednoduchý príklad zdrojového kódu v jazyku Java, ktorý ukazuje základné napojenie na SAP pomocou SAP Java Connector (JCo). Tento príklad predpokladá, že máte knižnicu SAP JCo správne nakonfigurovanú a importovanú do vášho Java projektu.
import com.sap.conn.jco.*;
public class SAPCustomerLookup {
public static void main(String[] args) {
try {
// Vytvorenie spojenia s použitím konfigurovaného destinátora
JCoDestination destination = JCoDestinationManager.getDestination("SAP_DEST");
// Prístup k štandardnej SAP funkcii - napr. BAPI_CUSTOMER_GETDETAIL
JCoFunction function = destination.getRepository().getFunction("BAPI_CUSTOMER_GETDETAIL");
if (function == null) {
throw new RuntimeException("Funkcia BAPI_CUSTOMER_GETDETAIL neexistuje.");
}
// Nastavenie vstupných parametrov
function.getImportParameterList().setValue("CUSTOMERNO", "1000001");
function.getImportParameterList().setValue("COMPANYCODE", "1000");
// Spustenie volania SAP funkcie
function.execute(destination);
// Získanie výstupných údajov z parametra CUSTOMERADDRESS
JCoStructure customerAddress = function.getExportParameterList().getStructure("CUSTOMERADDRESS");
// Výpis mena a mesta zákazníka
System.out.println("Meno zákazníka: " + customerAddress.getString("NAME"));
System.out.println("Mesto: " + customerAddress.getString("CITY"));
} catch (JCoException e) {
e.printStackTrace();
}
}
}
Vysvetlenie jednotlivých častí:
- JCoDestination predstavuje SAP systém, na ktorý sa pripájame. Je definovaný v súbore
destination configuration
(napr.SAP_DEST
). - BAPI_CUSTOMER_GETDETAIL je SAP štandardná funkcia, ktorú používame na získanie údajov o zákazníkovi.
- Výsledky sú získané zo štruktúry
CUSTOMERADDRESS
, kde môžeme čítať rôzne polia ako meno, mesto, ulica atď.
SAP Script – klasický spôsob tvorby výstupných formulárov
SAP Script je vstavaný nástroj na tvorbu obchodných dokumentov, ktorý je používaný najmä pri automatickom tlačení výstupov, ako sú faktúry, objednávky, dodacie listy, potvrdenky, a podobne. Napriek tomu, že ide o starší nástroj, v mnohých systémoch sa používa dodnes, najmä ak boli formuláre vytvárané pred rokmi a neprešli migráciou na novšie technológie.
Čo umožňuje SAP Script:
- vytvárať šablóny dokumentov s textami, tabuľkami a čiarovými kódmi,
- spravovať jazykové mutácie dokumentov (napr. pre faktúry v rôznych jazykoch),
- vkladať podmienky, prepojenia na databázy a výpočty priamo v šablónach,
- kombinovať s ABAP logikou pre dynamické spracovanie údajov.
SAP Script využíva špecifickú skriptovaciu syntax a komponenty ako okná, formuláre, texty a štýly. Výsledné výstupy sa následne smerujú na tlačiarne alebo sa ukladajú ako PDF dokumenty. Dôležitou informáciou pritom je, že tento pevne integrovaný a tiež závislý scriptový jazyk od použitého klienta, nie je vôbec komplikovaný a rovnako ako ABAP, je ho možné sa relatívne veľmi rýchlo naučiť.
V systéme SAP je úplne štandardné, že po zaúčtovaní dokladu akým je napríklad objednávka, faktúra alebo dodací list bude následne smerovaný výstup tohto vygenerovaného dokladu na tlačiareň. Takýto doklad má svoj špecifický vzhľad, ktorý môže byť upravený podľa požiadaviek zákazníka alebo definovaného projektu a súčasne samozrejme obsah bude doplnený o rôzne položky ako aj ďalšie dôležité informácie. A práve pri takýchto formulároch, jednoducho dokumentoch obsahujúcich logá, tabuľky, doplnkové texty ako aj ďalšie objekty, je možné využiť SAP script. V podstate prepojenie na tento script, je možné použiť vo všetkých formátovaných obchodných dokumentoch, nastavených správach a podnikových prehľadoch, kde budú potrebné pokročilejšie možnosti rozvrhnutia dokladu.
Vzťah k iným technológiám:
V súčasnosti sa SAP Script často nahrádza novšími riešeniami ako SmartForms alebo Adobe Forms, ktoré ponúkajú viac možností pre dizajn aj funkcionalitu. No znalosť SAP Scriptu zostáva výhodou najmä pri údržbe starších systémov.
Príklad SAP Script
Tento SAP Script definovaný v okne C_N je zodpovedný za vytvorenie vizuálneho rámčeka v tlačovom výstupe a zároveň vykonanie externej logiky cez volanie subprogramu v ABAPe.
/: BOX HEIGHT '3' LN WIDTH '75' CH FRAME 10 TW
/: PERFORM 'OBJ' IN PROGRAM 'ZMV_OM'.
/: USING &EKKO-EBELN&.
/: CHANGING &SDOBJ&.
/: ENDPERFORM.
Vysvetlenie jednotlivých častí:
- BOX HEIGHT ‚3‘… – Vytvára rámček s výškou a šírkou v znakoch, ktorý sa použije napr. na vizuálne ohraničenie sekcie výstupu. Táto inštrukcia vytvára na výstupe grafický rámik (box), ktorý bude mať výšku 3 riadky a šírku 75 znakov. Rámik bude umiestnený do definovanej oblasti a obklopený viditeľným rámom. Slúži na oddelenie časti výstupného formulára, čím zlepší čitateľnosť dokumentu.
- PERFORM ‚OBJ’… – Volá externý subprogram
OBJ
z iného ABAP programu (ZMV_OM
). V tejto časti skript volá externý subprogram s názvomOBJ
, ktorý je definovaný v ABAP programeZMV_OM
. Tento príkaz slúži na to, aby SAP Script mohol použiť logiku alebo výpočty napísané v ABAPe, čo umožňuje dynamické spracovanie údajov ešte pred ich zobrazením vo formulári. - USING &EKKO-EBELN& – Prenáša do subprogramu hodnotu z poľa
EBELN
(číslo objednávky) z tabuľkyEKKO
. Pri volaní subprogramu sa ako vstupný parameter odovzdáva hodnota poľaEBELN
z tabuľkyEKKO
, čo predstavuje číslo objednávky. Toto číslo bude použité v logike volaného subprogramu, napríklad na načítanie alebo spracovanie údajov súvisiacich s konkrétnou objednávkou. - CHANGING &SDOBJ& – Výstupná hodnota, ktorá sa modifikuje vo volanom subprograme a vracia späť do SAP Scriptu. Tento riadok definuje výstupný parameter volaného subprogramu. Premenná
&SDOBJ&
bude počas spracovania modifikovaná subprogramom a jej výsledná hodnota bude následne zobrazená v tlačovom formulári. Môže ísť napríklad o vypočítaný text, názov dodávateľa, alebo iný údaj odvodený na základe vstupu. - ENDPERFORM – Koniec volania subprogramu. Tento príkaz ukončuje blok volania externého subprogramu. Signalizuje návrat do hlavného SAP Scriptu, kde pokračuje vykonávanie ďalších inštrukcií formulára.
SAP Query a InfoSety – tvorba reportov bez programovania
Nie každý používateľ má skúsenosti s programovaním. SAP preto ponúka aj nástroje, ktoré umožňujú vytvárať reporty a zostavy bez nutnosti písať ABAP kód. Najznámejším z týchto nástrojov je SAP Query, ktorý pracuje v kombinácii s InfoSetmi. Každý podnikový systém ako aj SAP, je postavený na množstve rôznych tabuliek a v prípade query, je možné toto zostavenie celkom excelentne použiť. Ak by som to zjednodušil, tak bez potrebných vedomostí z programovania si môže používateľ bez problémov vytvoriť požadovaný prehľad a to len jednoduchým vzájomným prepojením vybraných tabuliek medzi sebou. SAP Query ponúkajú používateľom veľa možností, ako definovať a vytvoriť jednoduché ale aj náročnejšie reporty rôzneho zamerania s výberom zobrazenia alebo výstupu vo viacerých formátoch.
Samozrejme v prípade použitia jazyku ABAP by bolo možné vytvoriť aj už spomenuté komplikovanejšie prehľady, ale v podstate pre väčšinu prevádzkových požiadaviek bude vhodné len prepojenie tabuliek. Tu by bolo vhodné pripomenúť, že nie každá tabuľka sa môže úspešne prepojiť s inou, vždy je dôležité hľadať príbuzné tabuľky a to z pohľadu zamerania a definovaných primárnych kľúčov, ktoré tabuľky obsahujú. Takto vyzerá vzhľad prostredia, kde sú evidované vytvorené reporty. Máme na neho priamo online kurz SAP Query.
A práve aj v takomto okne, je možné nastaviť všetko, čo bude zobrazené v úvodnej obrazovke reportu ako aj v reporte samotnom.
Nadšenie človeka, ktorý dostane možnosť vytvárať v systéme užitočné programy alebo reporty a súčasne ktoré budú aj zamestnanci spoločnosti pravidelne používané, je ako sa hovorí na nezaplatenie. Určite sa ale zhodneme v tom, že pravdepodobne žiadna spoločnosť neposkytne okamžite oprávnenie pre vývoj používateľovi, ktorý možno ani veľmi nepozná systém SAP a nie to ešte programovací jazyk ABAP, prípadne SAP script.
Ako funguje SAP Query:
- InfoSet definuje, z ktorých tabuliek a polí sa budú získavať údaje (môžu byť prepojené logickými väzbami).
- Query je samotný report, kde si používateľ zadefinuje, ktoré polia chce zobraziť, aké filtre použiť, ako má výstup vyzerať.
Výsledky môžu byť zobrazené na obrazovke, exportované do Excelu, alebo uložené vo forme štandardizovaných výstupov. SAP Query umožňuje vytvárať aj výberové obrazovky, agregácie, tlačové zostavy a zostavy podľa skupín.
Pre koho je SAP Query určený:
- používateľov oddelení ako controlling, financie, logistika, HR,
- power userov, ktorí často potrebujú výstupy, ale nechcú žiadať programátora,
- analytikov, ktorí pracujú s údajmi, ale nepoznajú syntax ABAPu.
Príklad SAP Query a InfoSet
Zobraziť zoznam nákupných objednávok spolu s menom dodávateľa a dátumom vytvorenia. Údaje budú pochádzať z tabuľky EKKO
(hlavička objednávky) a LFA1
(dodávatelia). Používateľ bez znalosti programovania môže získať prehľadný report objednávok s menami dodávateľov a výberom podľa dátumu. Tento výstup je možné ďalej exportovať do Excelu, tlačiť alebo plánovať ako periodickú úlohu.
1. Vytvoriť InfoSet (transakcia SQ02)
- Názov: ZINF_EKKO_LFA1
- Zvoliť možnosť „Data source“ = Table join
- Pridať tabuľku EKKO
- Pridať tabuľku LFA1, prepojiť ju cez EKKO-LIFNR = LFA1-LIFNR
- Označiť polia, ktoré chcete použiť v reporte, napr.:
- o EKKO-EBELN (číslo objednávky)
- o EKKO-BEDAT (dátum objednávky)
- o EKKO-LIFNR (číslo dodávateľa)
- o LFA1-NAME1 (meno dodávateľa)
2. Vytvoriť Query skupinu (transakcia SQ03)
- Priradiť si autorizačnú skupinu (napr. ZUSR)
3. Vytvoriť SAP Query (transakcia SQ01)
- Názov query: ZQ_EKKO_LIST
- Priradiť ju k vytvorenému InfoSetu ZINF_EKKO_LFA1
- V časti „Funkčné oblasti“ si vyberte polia:
- Číslo objednávky (EBELN)
- Dátum objednávky (BEDAT)
- Meno dodávateľa (NAME1)
- V sekcii „Výberové polia“ označte napr. BEDAT, aby používateľ mohol filtrovať podľa dátumu
- Spustite a otestujte query
Základy jazyka ABAP: Čo je to a prečo sa ho oplatí naučiť?
ABAP (Advanced Business Application Programming) je programovací jazyk vytvorený spoločnosťou SAP, ktorý je úzko spätý s vývojom podnikových aplikácií v tomto systéme. Vznik programovacieho jazyka ABAP sa datuje do roku 1980, kedy bola uvoľnená verzia pre vývoj dialógovo riadených transakcií a funkcií v prostredí systému SAP nemeckou spoločnosťou SAP ako súčasť ich podnikového informačného systému SAP R/2. Neskôr, po uvedení na trh prepracovanej verzie systému s označením SAP R/3, bola spolu so systémom predstavená aj nová verzia programovacieho jazyku ako ABAP/4. Výrazný posun vo vývojovom prostredí pritom nastal až takmer v polovici roku 2000, kedy ABAP vstúpil do svojej novej a dovolil by som si povedať, významnej etapy a to už ako jazyk ABAP Objects (rozšírenie jazyka o objektovo orientované elementy).
Dnes už ide o plnohodnotný objektovo-orientovaný jazyk s podporou SQL, ktorý umožňuje vývoj robustných a výkonných riešení. Jednou z veľkých výhod ABAPu je jeho štruktúrovanosť a čitateľnosť, vďaka čomu sa s ním veľmi dobre pracuje aj začínajúcim programátorom. Príkazy sú podobné prirodzenému jazyku a logika programov je ľahko pochopiteľná. Navyše, jazyk ABAP sa vyznačuje silnou integráciou s databázou, takže práca s údajmi je veľmi efektívna. V posledných rokoch sa ABAP posunul ešte ďalej a priniesol podporu pre objektovo-orientované programovanie, čo umožňuje lepšiu modularitu, opakovateľnosť a prehľadnosť kódu. Ideálne je naučiť sa programovať v ABAPe priamo v našom online kurze ABAP I. Začiatočník.
ABAP je hlavný (materinský) jazyk pre programovanie v systéme SAP. Je štruktúrovaný, objektovo orientovaný viacjazykový nástroj s SQL prístupom k uloženým dátam v tabuľkách, ktorý je spustený v tzv. SAP ABAP runtime prostredí. Používa sa v rámci rozvoja aplikačných možností (program, modul, rozhranie, formuláre,..) systému SAP pre doplnenie o nové programované riešenia, ktoré v určitom rozsahu doplnia alebo rozšíria aktuálne možnosti systému. Všetky podstatné časti systému SAP R/3 ako aj jeho jednotlivých aplikačných častí boli vytvorené práve v jazyku ABAP. Syntax ABAPu je veľmi podobný staršiemu procedurálnemu jazyku COBOL, zameraného hlavne pre oblasť obchodu a financií. Práve pre podobnosť syntaxe môže vyzerať ABAP trochu staromódnym programovacím jazykom. Samozrejme to bude iba prvý dojem, pretože v skutočnosti ABAP obsahuje všetko, čo má mať kvalitný jazyk pre systémový vývoj a v zásade v sebe implementuje rovnaké koncepty, ktoré majú v sebe integrované moderné programovacie jazyky.
Príklad zdrojového kódu ABAP
Nastavením textových prvkov by sa po spustení programu zobrazila úvodná obrazovka programu ..
ABAP článok príklad zdrojového kódu ABAP GUI
Kde a ako sa programuje: ABAP Workbench a transakcia SE80
Vývoj v ABAPe prebieha v prostredí ABAP Development Workbench, ktoré je dostupné priamo v systéme SAP. Najčastejšie sa používa prostredníctvom transakcie SE80, kde je možné vytvárať, upravovať a testovať programy, moduly, funkcie, tabuľky či formuláre. Toto vývojové prostredie ponúka:
- jednotný prístup ku všetkým vývojovým objektom
- integrované nástroje na ladenie a testovanie kódu
- podporu pre dokumentáciu a správu verzií
- možnosť organizovať vývoj do tzv. vývojových tried a balíkov
V SE80 sa vývojár pohybuje v prehľadnom stromovom menu, kde má prístup k objektom ako sú zdrojový kód programu, obrazovky (dynpro), textové prvky, tabuľky, formuláre a ďalšie komponenty.
Záver a odporúčania k ABAP
Programovanie v SAPe sa môže na prvý pohľad zdať zložité, najmä pre tých, ktorí nemajú predchádzajúce skúsenosti s týmto systémom. No ak pochopíte základnú architektúru, princípy a možnosti, ktoré ABAP ponúka, získate do rúk nástroj, ktorý Vám umožní vytvárať riešenia presne na mieru potrebám Vašej firmy. V ďalšej časti tejto série si podrobnejšie vysvetlíme syntax jazyka ABAP, štruktúru jednoduchého programu a ukážeme si základný príklad, ktorý si budete môcť sami vyskúšať v SAPe. Programovací jazyk ABAP je stále dominantný pre vývoj v SAP systéme. Java sa využíva najmä v cloudových riešeniach, SAP BTP alebo pri integráciách s inými systémami (REST API, SOAP, JDBC). SAP Query predstavuje jednoduchý nástroj pre bežných používateľov – výhodný tam, kde nie je k dispozícii vývojový tím.
Dovolím si tvrdiť, že naše akreditované kurzy SAP a ABAP sú veľmi dobrý odrazový mostík pre splnenie si svojich pracovných cieľov a súčasne získanie zaujímavej práce a to rozhodne nielen na pozíciu Junior programátora v jazyku ABAP.
Objavte naše online kurzy SAP a ABAP
Použité zdroje a literatúra SAP a ABAP
Online zdroje:
- https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/index.htm
- https://community.sap.com/topics/abap
- https://developers.sap.com/mission.abap-get-started.html
- https://blogs.sap.com/2020/05/12/a-beginners-guide-to-abap/
- https://www.guru99.com/abap-tutorial.html
- https://www.sapdev.co.uk/abap/abap_home.htm
- https://www.tutorialspoint.com/sap_abap/index.htm
- https://www.geeksforgeeks.org/introduction-to-sap-abap/
- https://www.erpgreat.com/abap/abap-overview.htm
- https://www.saptechnical.com/Tutorials/ABAP/ABAP.htm
Odborné články a knihy:
- Horn, M. (2021). ABAP Programming for SAP S/4HANA. Rheinwerk Publishing.
- Jung, T. (2015). Modern ABAP Programming. SAP Press.
- Keller, G., Krüger, T. (2020). ABAP Objects: ABAP Programming in SAP NetWeaver. SAP Press.
- Müller, T. (2019). Practical Guide to SAP ABAP Part 1: Conceptual Overview. Espresso Tutorials.
- Richter, B. (2017). ABAP Development for SAP Business Workflow. SAP Press.
- Schneider, B. (2018). Clean ABAP: A style guide for better ABAP code. SAP Community WIKI.