Jak jsem začínal se SAPem - 1. část

SAP logo

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.

A to jsem ještě netušil, v čem budu programovat. ABAP by se asi nejvýstižněji dal charakterizovat jako značně zastaralý programovací jazyk, který dosud nebyl nahrazen něčím více šik & in (pravděpodobně Javou) jen proto, že je v něm, kromě samotného systému, naprogramována také spousta zákaznických rozšíření a modifikací. Co do ukecenasti se s ABAPem může měřit jen málokterý jazyk (snad jedině COBOL, který je vzdáleným příbuzným ABAPu). Schválně popřemýšlejte, ve kterém jiném jazyku lze zapisovat operátory, jak matematickými symboly (=, ‰ , <, >, ‰¤, ‰Ą), tak slovním vyjádřením (EQ, NE, LT, GT, LE, GE). Kromě COBOLu nevím o žádném (teď už vím). A takových legrácek je v ABAPu celá řada; např. takhle nádherně můžete v ABAPu sčítat numerická pole ve strukturách:

ADD field_1 THEN field_2 UNTIL field_n GIVING result.

Následujícím příkazem odstraníte v tabulce duplicitní řádky:

DELETE ADJACENT DUPLICATES FROM my_table 
       COMPARING field_1 field_2 … field_n.

Chcete-li běh programu na chvíli pozastavit, napíšete toto:

WAIT UP TO 5 SECONDS.

No uznejte sami, nemá to podezřele blízko k běžnému jazyku? I to je možná jedním z důvodů, proč píše v ABAPu tolik kolegyň - programátorek. Alá má to svoje neopakovatelné kouzlo nostalgie (teď mám na mysli ty archaismy v ABAPu, ne programátorky v kanclu ).

A jak to bylo dál? Proč jsem to nakonec nezabalil? A co na to RH? Počkejte si na pokračování…

Související



Podělte se o tento článek s ostatními… Sdílet

Komentáře

avatar

[1] Abraxis

clock  12. 09. 2007, 21:44

Ty operatory muzes takhle psat treba v Perlu..


Pavel

[2] Pavel

clock  13. 09. 2007, 07:02

Reakce na [1] > Tak to jsem nevěděl, znám spíš céčkovskou větev programovacích jazyku a Pascal samozřejmě…
Ale má Perl i slovní operátory pro přiřazení hodnoty (MOVE TO, MOVE-CORRESPONDING TO) a numerické operace (ADD TO, SUBTRACT FROM, MULTIPLY BY, DEVIDE BY)?


avatar

[3] mMmMmMm

clock  16. 09. 2007, 10:05

No, v C++ mozes tiez pisat „and“ miesto „&&“ alebo „not_eq“ miesto „!=“, ale na ABAP sa to nechyta, to uznavam.

Zoznam z Wikipedie: and (&&, bitand (&, and_eq (&=), or (||), bitor (|), or_eq (|=), xor (^), xor_eq (^=), not (!), not_eq (!=), compl (~).


Pavel

[4] Pavel

clock  16. 09. 2007, 14:02

Reakce na [3] > No vida, další věc, kterou jsem netušil. Docela by mě zajímalo, jak velké procento programátorů slovní operátory využívá. Já jsem tomu na chuť nikdy nepřišel, protože symboly mi příjdou v kódu mnohem zřetelnější. U slovních operátorů člověk na první pohled nevidí, zda to není třeba název proměnné nebo něčoho jiného. A ještě tomu nahrává fakt, že ABAP nemá vyhrazená slova, takže se proměnná klidně může jmenovat IF nebo EQ.


avatar

[5] Petr

clock  21. 02. 2008, 09:37

Slovní operátory používá dost lidí a je to vidět na kódu, který už v SAPu je. A to ještě autor nepíše o objektovém rozšíření ABAPu, kde je deklarace objektu delší než jeho definice. Brrrr. Co je na ABAPu celkem dobré je práce s databází (a zároveň problém, že ABAPovské SQL nepodporuje dnes už standardní věci, kvůli jakési historické kompatibilitě s mnoha SQL servery).

Pavel

[6] Pavel

clock  21. 02. 2008, 10:36

Reakce na [5] > ABAP je zkrátka jazyk 4. generace, to hovoří za vše.
Objektové rozšíření mi nepřijde tak špatné, jeho autoři se prý hodně inspirovali Javou. Umožňuje například zkrácené volání metod:

result = object->method( param ).

namísto standardního zápisu:

call method object->method
exporting i_param = param
importing e_result = result.

S SQL osobně nemám problém, vystačím si s málem.


avatar

[7] Štefák

clock  02. 07. 2009, 23:05

Ahoj, zajímavej článek, mám poznámku, možná podmět. Proto, abych mohl začít psát něco v ABAPu potřebuji být registrovanej jako vývojář, nevím kolik lidí toto oprávnění má ale za sebe: pracuju jako přímá podpora logistickýho projektu a registraci nemám, stáhnul jsem si teda trial verzi mini-sapu(dostupné zdarma sice omezená na 30dní,ale v tuto chvíli pro mě jediná alternativa) instalace celkem náročná,hned na začátku instalace jsem se nedostal přes hlášku která mi hlásí problém s Javou, tzn. instalace je neúspěšná. Věděl bys jak tento problém překonat?


Pavel

[8] Pavel

clock  05. 07. 2009, 23:14

Reakce na [7] > S Mini SAPem bohužel nemám žádné zkušenosti a jediné, co ti můžu poradit, je porozhlédnout se na http://sdn.sap­.com/. Dej věděť, jak si pořídil.


avatar

[9] Štefák

clock  19. 07. 2009, 16:28

Reakce na [8] >
Ahoj, na stránkách nic moc… domluvil jsem se s tipama z helpdesku že mi helpnou s instalací. dík.MŠ


avatar

[10] PAZ

clock  24. 09. 2009, 09:37

Ahoj , díky za článek!
V SAPu pracuji již 5 let a za celou dobu se velmi často nestačím divit.
Dříve jsem pracoval v Delphi (klient)
a Oracle (server).Toto spojení nebylo vždy ideální ale až teprve přechdem na SAP jsem zjistil co je doba kamenná.
Nevěřil jsem vlastním očím, jak komplikovaně se také dají vytvářet DB aplikace. Těžkopádné a částečně nefunkční nástroje (zakládání tabulek, dynpra) chudé možnosti prvků na dynpru, Pouze dvě události (PBO a PAI) atd, atd…
Postupně jsem se probíral ze šoku.
Mimo jiné jsem měl šok z lidí kteří v tom pracují, koukali na mne – čemu se divím.Také jsem nepochopil jak se mohlo něco takového tak prosadit.
Dnes programuji za pomocí objektů ale divit se nepřestávám. I u nejnovějších objektů např ALV (LCxxx=>factory( )
kde nefunfují některé metody, nelze doplnit
kontextové menu (v předchzí verzi to šlo) atd.
Porovnání rychlosti vývoje složitější obrazovky (container)
s vývojem v Delphi je na bíledni.
To raději ani nemlivím o standardu/nes­tandardu identifikace řádků (každej pes jiná ves)
O SQL raději ani také nemluvě.
Stále si kladu otázku , jak je to možné ???


Pavel

[11] Pavel

clock  24. 09. 2009, 10:04

Reakce na [10] > Já už jsem si docela zvyknul. Myslím si, že u ABAP programátora (tedy aspoň u toho, který se nezabývá výhradně vlastním vývojem) je daleko důležitější, než schopnost psát elegantní kód, umět hacknout sapí standard. A tomu odpovídají i nástroje. Všechny ty user exity, business transaction eventy, enhancementy a BADI nasvědčují tomu, že SAP klade stejný, ne-li větší, důraz na snadnou modifikaci standardu jako na zákaznický vývoj.


avatar

[12] PAZ

clock  24. 09. 2009, 10:43

Reakce na [11] > Jo jo , já už jsem si také zvyknul (nic jiného nzbývalo). Já většinou vytvářím nové samostatné aplikace, takže je výhoda v tom že nemusím „lámat“ stadard a mohu experimentovat s novinkami…
To je výhoda i nevýhoda. Nevýhoda je v tom že napíšu konstrukci kde něco předpokládám a ejhle klacky pod nohama, tkže všechno jinak a předělat.
Mne jen potěšilo že existuje také někdo kdo se nebojí o SAPu něco napsat.


Pavel

[13] Pavel

clock  24. 09. 2009, 12:42

Reakce na [12] > Já v poslední době zase spíš „přiohýbám“. A když už nahlížím do vnitřností standardu, tak mám možnost srovnání – kupodivu zjišťuju, že nejsem zas tak úplně špatnej programátor

A měl bych se snad něčeho bát? Třeba, že mi v SAPu zruší klíč vývojáře? 


avatar

[14] Duchy

clock  01. 10. 2009, 15:33

Ahoj,
neodpustím si několik komentářů:
1, Tím, že ABAP nemá vyhrazená slova jsem byl taky vždycky fascinován.
2, SAP je prehistorie – je to ERP produkt – ABAP je zpětně kompatibilní hluboko do 80tých let do doby terminálů. V podstatě SAP čeká, co se v jiných jazycích osvědčí a potom to i aplikuje na ABAP, nemůže si dovolit slepé větve – budoucí verze musí být opět kompatibilní s tím, co se napíše dnes.
3, Včera jsem přepisoval report z roku 1995, občas si připadám spíše jako archeolog 


avatar

[15] PAZ

clock  16. 10. 2009, 10:58

Reakce na [14] > Občas jsem z něktrých věcí dosti zoufalý, dnes jsem řešil např že při příkazu SQL delete (při mazání DB tabulky) sap nerozlišuje zda došlo k chybě a nebo zda je tabulka již prázdná. To je ale přece rozdíl!
Je li tabulka prázdná nejedná se o chybu! Naopak dojde- li v DB serveru k chybě je nutné to vrátit do sapu.
Ale sap v obou případech vrací sy-subrc = 4. Jak potom má člověk napsat kvalitní a bezpečnou aplikaci???
Zlatej Oracle tam takovej bordel není.Bohužel takové „jobovky“ v sapu řeším denně – základní věci…


avatar

[16] Ondřej

clock  19. 12. 2009, 22:40

Pavle, napiš zde taky, že je SAP ABAP nejlepší vývojová platforma na světě! (samozřejmě jen pro klient-server aplikace ..ty mobilní ještě v ABAPu psát nejde )
Od mých začátků (release 4.0B) uplynulo už skoro 8 let, poslední 3 roky se bavím na release 7.00 a tam mi vývoj přijde velmi elegantní. Takže vy co na této verzi začínáte, máte v rukou již docela luxusní nástroje.
Jo a tu výřečnou syntaxi jako „EQ“, „LT“, „READ TABLE“, „GET REFERENCE“.. si užívejme. Nakonec tak výřečná ani není..když to porovnám s nástroji, kde kód generujeme přes wizardy. 


Pavel

[17] Pavel

clock  21. 12. 2009, 09:20

Reakce na [16] > Já si asi nikdy nezvyknu psát EQ místo „=“. A v OO kontextu je výřečná syntaxe taky na ústupu, ale jinak nemůžu říct, že by mi nějak obzvlášť vadila. Zvykl jsem si.



Přidat komentář

Upozornění: Komentář musí být před publikováním schválen!
: *
: *

: *

:



  • Pole označená hvězdičkou jsou povinná.
  • Můžete použít Texy! syntaxi. HTML tagy nejsou povolené!
    Příklad syntaxe: **tučně**, *kurzíva*.
  • Odkazy začínající http(s)://, ftp:// a mailto: se zformátují automaticky.
  • Na jiné komentáře se můžete odkazovat např. zápisem [1].
  • Gravatar připojený k Vaší e-mailové bude zobrazen u komentáře.
  • Upozorňuji, že komentáře, které se netýkají tématu článku, jsou vulgární nebo urážlivé, mohou být smazány.

Začátek článku Nahoru | Začátek komentářů Nahoru

© Pavel Jaroš [Sektor PJ] · Nahoru Nahoru