V minulém díle jsem rozebral práci s interními tabulkami v ABAPu a dnes se pustím pro změnu do reportů.
Reporty
Report je ten nejjednodušší program (samozřejmě může být i složitý), který můžete v ABAPu napsat. Obecně lze říci, že report nemá za cíl nic jiného, než vzít data (například je načíst z databáze) a zobrazit je v nějakém srozumitelném formátu. Ukažme si tedy, jak takový naprosto triviální report může vypadat:
REPORT my_first_report.
****************************************
* GLOBAL DECLARATIONS *
****************************************
DATA: g_hello TYPE char15 VALUE 'Hello World!'.
****************************************
* START OF SELECTION *
****************************************
START-OF-SELECTION.
WRITE g_hello.
Podělte se o tento článek s ostatními…
Z toho, co jsem o ABAPu řekl minule, by se možná mohlo zdát, že programovat v něm dokáže každý, kdo alespoň trochu ovládá angličtinu. Není to tak docela pravda. ABAP je sice docela přístupný programovací jazyk; i neprogramátor v něm zvládne sesmolit nějaký ten report, ale k jeho plnému zvládnutí a využití všech pokročilejších programovacích technik, které nabízí, je přece jen zapotřebí o trochu více fištrónu. Především znalost jiného programovacího jazyka je pro začínajícího abapistu velkou výhodou. Ne snad, že by byl ABAP náročný na pochopení, ale jeho nadměrná rozvláčnost a velké množství příkazů (a jejich variant) by mohly potenciálního adepta od programování spíše odradit.
Já se však musím pochlubit, že mi ABAP přešel do krve poměrně snadno a rychle, protože jsem měl předchozí zkušenosti s Object Pascalem (Delphi), JavaScriptem a částečně také s PHP. Věděl jsem, co od jazyka chtít a znal jsem způsoby, jak toho obecně dosáhnout. Řada věcí je v ABAPu identická se zmíněnými programovacími jazyky, najdou se však i výjimky a není jich zrovna málo.
Podělte se o tento článek s ostatními…
Tak jsem se pěkně porochnil v bahně IT bulváru, vytočil pár lidí k nepříčetnosti a teď bych pro změnu zkusil napsat opět něco trošku méně kontroverzního, nekonfliktního, odborného a vůbec veskrze seriózního, jak jsem přislíbil. Doufám však, že moje prognóza ohledně čtenosti takového článku se nenaplní.
A jak už je u mých příspěvků o SAPu zvykem - bude to na pokračování.
Kterak jsem tedy začínal se SAPem (a samozřejmě také s ABAPem - jeho nerozlučným kamarádem), dějství první: Jó to bylo tehdá, když 256 MB paměti (no dobře, RH měl 512) stačilo každému a Need for Speed ještě bývala považována za vcelku zábavnou hru. A tehdy jsem poprvé přišel do styku se SAPem. No co vám budu povídat, zpočátku jsem na ten německý ERP (tenkrát jsem ještě tak úplně nevěděl, co ta zkratka znamená) koukal jako vůl na nová vrata. A divil se, div jsem si hlavu nevykroutil - na tohle mě ve škole zkrátka nepřipravili: Proboha, jak tahle vykopávka (už od prvního pohledu sto let za opicema) může být nejrozšířenějším (a současně zdaleka ne nejlevnějším) systémem ve velkých firmách? Naštěstí jsem zachoval chladnou hlavu a nerozběhl se hned za svým šéfem, abych mu vyčetl, do čeho mě to navezl. 
Podělte se o tento článek s ostatními…
Tímto článkem bych rád zakončil můj krátký seriál (1. část, 2. část) o programování XML v ABAPu. Závěrečná část se bude zabývat parsováním XML souborů s využitím iXML knihovny.
Jak na XML parser
Jak již bylo řečeno v předchozí části, ke XML dokumentu lze přistupovat dvojím způsobem:
- Přes rozhraní řízené událostmi
- Přes DOM model
Já bych se chtěl zaměřit na druhou variantu, tedy zpracovaní XML dokumentu, které využívá standard XML DOM 1.0.
Podělte se o tento článek s ostatními…
V úvodním článku o XML jsem nastínil možné přístupy k práci s XML daty v ABAPu. Nyní bych chtěl podrobněji rozebrat možnosti iXML knihovny.
iXML knihovna - klíč ke XML v ABAPu
iXML knihovna je naprogramovaná v jazyku C++ (stejně tak jako jádro SAPu) a lze k ní přistupovat přes rozhraní, které je založené na ABAP objektech.
iXML knihovna implementuje podporu těchto tří základních XML služeb:
XML parser
XML parser čte XML data a stará se o nízkoúrovňovou syntaktickou analýzu XML dokumentu. Ke XML dokumentu lze přistupovat dvojím způsobem:
- Přes rozhraní řízené událostmi
Parser postupně čte XML dokument a volá funkce pro obsluhu důležitých událostí, jako začátek a konec elementu, textový obsah elementu apod.
- Přes DOM strom (model)
XML dokument je uložen v paměti jako strom objektů, kde každý objekt odpovídá jednomu uzlu ve stromu XML dokumentu.
XML DOM 1.0
DOM (Document Object Model), jak už bylo uvedeno výše, pracuje se stromovou reprezentací XML dokumentu, kterou je možné libovolně a opakovaně procházet. Díky tomu je zpracování XML dokumentu velmi jednoduché. Ovšem za cenu nižší rychlostí a velké paměťovou náročnosti oproti zpracování parserem řízeným událostmi.
XML renderer (builder)
XML renderer neboli XML "vykreslovač" případně "tvůrce" má na starosti sestavení výsledného XML dokumentu.
Podělte se o tento článek s ostatními…
Původně jsem tento web zakládal s úmyslem publikovat články o programování v ABAPu, abych tak zaplnil mezeru na českém internetu (nevím o žádném českém webu, který by se tomuto tématu komplexněji věnoval). Paradoxně se k původnímu záměru dostávám až nyní (nepočítám-li článek o programu Docházka & poznámky, který jsem pouze mechanicky převzal ze svého staršího webu). Možná je to tím, že mám v práci ABAPu až dost, a tak už mě tolik neláká o něm psát. Nyní se to však pokusím napravit.
Podělte se o tento článek s ostatními…