pátek 18. března 2016

Online kurzy Udemy.com

Ještě než pokročíme dále v ABAPu, mám tu dnes jeden tip. Na internetu lze bezpochyby najít mnoho studijních materiálů k SAPu. Jedním takovým zdrojem je i Udemy.com - online video kurzy. Na tomto serveru je v nabídce mnoho kurzů a několik z nich je právě zaměřených i na SAP (ne všechny jsou bohužel ale kvalitní). Kurzy jsou to ovšem placené a s tím se pojí právě dnešní tip. Například kurz "SAP ABAP Programming For Beginners - 2014 - Online Training" od Peter Moxon je za krásných 431 Euro. Zda je to moc nebo akorát, nechám na vašem zvážení. Pokud se ale přihlásíte k odběrům newsletterů, zjistíte, že Udemy dost často nabízí kurzy za akční ceny. A slevy jdou do výše 75% nebo třeba i 90%. Jindy třeba platí zase časově omezená nabídka všech kurzů za 10 €. Pokud tedy zrovna nespěcháte, tak se určitě vyplatí počkat. A to samozřejmě platí pro všechny kurzy, nejenom SAP. Navíc některé jsou i zdarma, ale ty nebývají zrovna nejkvalitnější. U všech kurzů se určitě vyplatí sledovat hodnocení (i slovní). Myslím, že pokud se vám podaří odchytit kvalitní kurz za částku několika euro, tak tento zdroj za pozornost určitě stojí. Po zaplacení máte ke kurzům časově neomezený přístup (alespoň to tak píšou :) ). Kurzy jsou v původním anglickém znění (vetšinou bez titulků).

update 3.4.2016: Udemy mění podmínky a nadále budou možné max. jen 50% slevy. V této souvislosti ale také předpokládám, že se ceny kurzů narovnají (zlevní). Mimo Udemy.com jsou ještě dobré video kurzy na Pluralsight, kde se ale platí paušální poplatek. Bohužel v tuto chvíli tam příliš kurzů týkající se SAPu není, ale Alex Gönczy už na tom pracuje :).


neděle 6. března 2016

Něco k tabulkám: cluster, pool, transparentní tabulka, struktura, interní tabulka, work area.

V systému SAP jsou tyto druhy databázových tabulek:

- tabulky poolu,
- clusterové tabulky,
- transparentní tabulky.

Tabulky poolu ("sdílené" tabulky) a clusterové tabulky slouží k uložení nastavení (customization data), sekvencí dynper a dokumentace. Pro tyto tabulky platí, že data z několika tabulek mohou být uložena do jednoho společného poolu či clusteru. Lze říci, že v poolu je uložené velké množství malých tabulek, zatímco v clusteru je uložené menší množství rozsáhlých tabulek.

Tabulky poolu a clusterové tabulky neodpovídají přesně své podobě ve fyzické databázi, jako je tomu u transparentních tabulek. Do těchto tabulek se obvykle neukládají data aplikací, protože ta bývají uložena právě v transparentních tabulkách. Transparentní tabulky jsou jediným typem tabulek, kde jejich fyzická reprezentace v databázi přesně odpovídá definici v nástroji ABAP Dictionary.

Pěkné porovnání mezi transparentní tabulkou, poolem a clusterem naleznete například také zde.

Dále tabulky dělíme podle typu:

- standardní (záznamy uložené za sebou)
- řazené/sorted (záznamy řazené podle klíče)
- hashovací/hashed (neřazené záznamy s hash hodnotami pro rychlé vyhledávání)


Nyní ke strukturám. Struktura je, jednoduše řečeno, skupina definovaných polí spolu nějak logicky související. Struktury neobsahují žádná data, slouží jen jako "předlohy" pro tabulky. Více tabulek může být založeno na jedné struktuře, takže místo definice všech polí v tabulkách stejné struktury se definuje/udržuje pouze jedna struktura (jedna sada polí).

Struktury mohou být definované přímo v programu (viditelné v rámci programu nebo třídy obsahující definici) nebo jako datová struktura viditelná pro všechny programy. 

V programu se deklarují interní tabulky. Slouží jako dočasné (pomocné) tabulky a data obsahují pouze po dobu běhu programu. Užitečné je to jak z důvodu práce s daty pro konkrétní program, tak i z důvodu výkonu - při každém čtení záznamu se nepřistupuje k databázi.

Interní tabulka může být deklarována dvěma způsoby: s nebo bez hlavičky, přičemž hlavička je implicitní work area (wa, "pracovní oblast") této tabulky. Work area je vlastně struktura (oblast, místo..), ve které je v daném okamžiku uložen jeden konkrétní záznam, se kterým můžeme pracovat. Pokud deklarujeme interní tabulku bez hlavičky, musíme vytvořit work area explicitně (se stejnou strukturou). To nám jednak třeba dovoluje použít tuto work area i pro jiné interní tabulky se stejnou strukturou, ale hlavně je to doporučovaná metoda (hlavičky nejsou kompatibilní s OOP, používat by se měly wa nebo field symbols).

Jak konkrétně deklarovat tabulky a struktury a jak s nimi pracovat včetně work area si ukážeme v některém z dalších článků.

čtvrtek 3. března 2016

Začínáme s ABAPem 1, 'Hello world'.

Přístup k SAPu máme již zajištění (viz příspěvěk Kde získat přístup k systému SAP), takže se můžeme směle pustit do "programování" .-). A jako první nás nečeká nic jiného než HELLO WORLD.

Jasně a stručně :):

1) Spustíme se transakci SE38. Pozn.: je dobré mít často používané transakce mezi oblíbenými transakcemi. Do složky Favorites transakci vložíte pomocí Insert transaction v menu Favorites (Ctrl+Shift+F4).

2) Do pole Program zadáme název programu. Název musí začínat vždy písmenem Z (případně Y). Někdy bývá také zvykem za písmeno Z přidat iniciály autora. Ostatním kolegům tak může být hned jasné, kdo daný program spáchal. Pak podtržítko a výstižný název. V mém případě tedy např. ZLS_Hello_World a dáme Create.

3)  Objeví se dialog a v něm zadáme celý název programu (Title). V atributech zadáme typ Executable program a status nastavíme na Test program. Po té program uložíme (Save).


4) Další dialog požaduje zadání transportního balíčku. Transporty zajišťují přenos mezi systémy - klienty. Standardně mají společnosti alespoň tři klienty: pro testování a vývoj, konsolidační systém (QA) a produktivní systém. My nikam nic přenášet nebudeme, takže program uložíme jako Local Object.

5) Nyní už jsme v editoru. Abychom vypsali "Hello world", stačí, když pod řádek REPORT ZLS_HELLO_WORLD (ano, vytváříme report), přidáme:

WRITE 'Hello world!'.

Změny se ukládají kombinací kl. Ctrl+S nebo kliknutím na ikonu diskety v menu

6) A teď důležitá věc. V nástrojové liště jsou mimo jiné tyto tři ikony:


Pomocí první (Ctrl+F2) zkontrolujeme správnou syntaxi. Druhou (Ctrl+F3) program aktivujeme, což je vždy nezbytné před spuštěním. Spuštění provedeme kliknutím na třetí ikonu (F8).

Pokud máme v jedné chvíli více neaktivovaných objektů (nemusí jít pouze o program), tak se zobrazí tabulka s neaktivními objekty. V ní stačí vybrat náš program a potvrdit fajfkou (Enter).


Nemusíte vždy spouštět všechny funkce postupně za sebou (kontrola, aktivace, spuštění). Program s chybami se vám ale neaktivuje (pokud to dodatečně nepovolíte, což ale správnou funkčnost samozřejmě nezařídí). A stejně tak ne vždy chcete program rovnou spouštět.

7) Až se pokocháte výsledkem, do kódu se vrátíte pomocí zeleného tlačítka zpět s šipkou doleva (F3). Zpět do stromového menu se dostanete postupně pomocí stejného tlačítka nebo pomocí žlutého tlačítka Exit (Shift+F3). Uložili jste změny, že? Pokud ne, v klidu, objeví se výzva k uložení :).


Jinak závěrem ještě jeden tip. Stiskem tohoto tlačítka z menu (Create New Session):
vytvoříte další...session :), tedy spustíte další okno s novou instancí, což se může opravdu hodit.


Tak a to je vše. Nyní už umíte programovat v ABAPu .-).