ABAP

A Wikipédiából, a szabad enciklopédiából
ABAP/4
Paradigma Objektumorientált, strukturált, imperatív
Megjelent 1983
Tervező SAP AG
Típusosság Erősen típusos, Statikus típusosság, típus biztos, nominatív
Megvalósítások SAP R/2, SAP R/3
Hatással volt rá Objective-C, COBOL, SQL
Operációs rendszer multi-platform
Weboldal


Az ABAP (angolul Advanced Business Application Programming, németül Allgemeiner Berichts-Aufbereitungs-Prozessor) az SAP szoftvercégnek www.sap.com a - saját SAP/R3 vállalatirányítási csomagszoftveréhez kifejlesztett - programnyelve, amely az SAP/R3 továbbfejlesztésére használatos. A név eredetileg, a 70-es években az „Allgemeiner Berichts-Aufbereitungs-Prozessor“ (Általános jelentéskészítő processzor) rövidítése volt, később, a nyelv továbbfejlesztésével „Advanced Business Application Programming“[1] lett.

A vevők számára a teljes SAP rendszer forráskódja rendelkezésre áll. A nyelvet az SAP cég folyamatosan bővíti.

A SAP AG ABAP fejlesztőket támogató oldalai

  • SAP OSS rendszere (service.sap.com)
programjavítások, programok tölthetők le
hasznos tanácsok, információk a programfejlesztéshez
  • SAP Developer Network (sdn.sap.com)
minta- és példaprogramok
gyakorló feladatok
az SAP AG által moderált oldal

Az ABAP nyelv története[szerkesztés | forrásszöveg szerkesztése]

  • Az SAP R/1 és SAP R/2 rendszerek assembly nyelven íródtak
  • ABAP/3 – SAP R/3-tól
COBOL-hoz hasonló parancsok
assembly kódok futnak (kétfázisú programok)
  • ABAP/4
struktúrált, procedurális programnyelv (egyfázisú programok)
  • ABAP Objects
Objektumorientált fejlesztői környezet
  • Web technológia
ABAP kódok futtatása webes környezetben

Az SAP az ABAP nyelvet harmincéves történelme során többször is alaposan átdolgozta. A nyelv egyre átfogóbb feladatok elvégzésére lett képes, és lépést tartott a programozási paradigmaváltásokkal is.

  • A hetvenes években a nyelv az R/2 rendszer makrófordítójaként működött, és kizárólag listák előállítására lehetett használni.
  • A nyolcvanas években alkalmassá tették üzleti alkalmazások fejlesztésére.
  • A kilencvenes évek óta, pontosabban az R/3 rendszer megjelenésével az ABAP a negyedik generációba lépett. A C-ben íródott rendszermag kivételével minden alkalmazást ABAP-ban írtak.
  • Az R/3-as rendszer 4.6-os verziójával megjelent az ABAP Objects, amely a klasszikus, procedurális ABAP objektumorientált továbbfejlesztése.

Az SAP a NetWeaver bevezetése óta az ABAP mellett a Javát is támogatja. A Java azonban nem tekinthető az ABAP-ot felváltó nyelvnek.

Tulajdonságai[szerkesztés | forrásszöveg szerkesztése]

Az ABAP egy 4GL-nyelv, amelyet kifejezetten üzleti alkalmazások fejlesztésére készítettek. Más, általános célú programnyelvekkel szemben a következő előnyöket nyújtja:

  • Független az adatbázis-kezelőtől. A nyelv része az Open SQL, amit a rendszer az éppen aktuális adatbáziskezelő SQL-dialektusára fordít.
  • Független az operációs rendszertől.
  • A nagy mennyiségű üzleti adatok kezelését egy speciális változótípussal, a belső táblával támogatja.

Mindezek lehetővé teszik, hogy az ABAP-ban írt programok a rendszerkörnyezettől nagy mértékben függetlenül működnek.

  • ABAP programozási modellek
procedurális, struktúrált modell
funkciós elemek
alprogramok
objektumorientált modell
osztályok
interfészek

ABAP Workbench[szerkesztés | forrásszöveg szerkesztése]

Az ABAP szerves részét képezi az ABAP Workbench[2], ami az ABAP nyelv saját integrált fejlesztőeszköze. Az ABAP Workbench egyben támogatja a nagy fejlesztési projektek menedzselését is, és annak érdekében, hogy mindig rendelkezésre álljon a fejlesztés során is egy működőképes verziója a rendszernek, tartalmaz egy úgynevezett transzportmechanizmust, ami megfelelő rendszerkonfiguráció mellett biztosítja számunkra, hogy az éles rendszerre mindig csak letesztelt, működőképes változtatások kerüljenek ki a fejlesztési környezetből.

Az ABAP Workbenchet az úgynevezett Object Navigatorból[3] (azaz az SE80 tranzakcióból) érhetjük el. Itt az ABAP kódokon kívül egyéb objektumokat, például BSP-ket (Business Server Page-eket) is létrehozhatunk.

Az ABAP Workbench nagy előnye az integráltságában rejlik, hiszen az ABAP kódban duplán kattintva az objektumok nevére, rögtön megkaphatjuk például a nekik megfelelő bejegyzést az ABAP Dictionaryben[4] és fordítva.

Szintaxis[szerkesztés | forrásszöveg szerkesztése]

Az ABAP forráskódok ABAP utasításokból és megjegyzésekből állnak.

ABAP utasítások[szerkesztés | forrásszöveg szerkesztése]

Az ABAP utasítások mindig egy ABAP kulcsszóval kezdődnek, amit a kulcsszótól függően különbőző operandusok és kiegészítések követhetnek, majd az utasítást mindig egy pont zárja le. Például:

WRITE 'Hello World!'.

Ebben az utasításban a WRITE az alkalmazott ABAP kulcsszó, illetve ennek megadtunk egy string típusú operandust, a 'Hello World!'-öt. Az utasítások formázására vonatkozóan az ABAP nem tesz megszorításokat, azaz egy utasítást több sorra is széttördelhetünk, illetve egy sorba több utasítást is írhatunk. Azonban stringliterálok több sorra tördelésénél ügyelni kell arra, hogy ilyenkor az újsor karakterek is a string részét fogják képezni – ha ezt nem szeretnénk, akkor a & operátorral tudunk két, külön sorban megadott stringliterált összefűzni.

Lehetőség van az ABAP-ban úgynevezett láncolt utasítások megadására minden olyan esetben, amikor két vagy több egymást követő utasítás ugyanúgy kezdődik. Ekkor az ismétlődő részt csak az első utasításnál írjuk ki, majd azután egy kettőspontot írunk, és az utasítások további részét vesszőkkel elválasztva soroljuk fel úgy, hogy az utasítást lezáró pontot csak az utolsó utasítás után tesszük ki. Például:

WRITE '1. sor'.
WRITE '2. sor'.
WRITE '3. sor'.

helyett

WRITE: '1. sor',
       '2. sor',
       '3. sor'.

is írható. Ez az utasításláncolás az ABAP-ban egy általánosan alkalmazható módszer – minden utasításnál minden pozíciójában működik, még kifejezéseknél is.

ABAP megjegyzések[szerkesztés | forrásszöveg szerkesztése]

Az ABAP forrásszövegbe tetszőleges megjegyzések írhatók. Két típusát különböztetjük meg a megjegyzéseknek:

  • A sor elején álló * karakter jelzi, hogy a teljes sor megjegyzésként kezelendő.
  • A sor közben előforduló " karakter jelzi, hogy a sor fennmaradó része egészen az újsor karakterig megjegyzésként kezelendő.

Az ABAP interpreter a megjegyzéseket white space-ként értelmezi.

Példaprogram[szerkesztés | forrásszöveg szerkesztése]

A következő SAP R/3-ban fejlesztett ABAP program a MAKT adatbázistáblában nyilvántartott cikk azonosítóját és a paraméterben megadott nyelvű megnevezését listázza ki, ha létezik az adott nyelven a szöveg.

REPORT z_material_descriptions.
* Változó deklarálása:
DATA wa_makt TYPE makt.
* Szelekciós változó (nyelv):
PARAMETERS p_spras TYPE makt-spras.
* ABAP utasítással olvassuk az adatbázis-tábla minden paraméterben megadott nyelvű rekordjának tartalmát:
SELECT * FROM makt
INTO   wa_makt
WHERE  spras = p_spras.
* Kiírjuk a kapott rekord két mezőjének tartalmát:
  WRITE: / wa_makt-matnr, wa_makt-maktx.
ENDSELECT.

A példaprogram az R/3-as rendszer 4.6-os változatában készült.

Irodalom[szerkesztés | forrásszöveg szerkesztése]

  • Horst Keller, Sascha Krüger: ABAP Objects – Einführung in die SAP-Programmierung. Galileo Press, 2001, ISBN 3-89842-147-3

Hivatkozások[szerkesztés | forrásszöveg szerkesztése]

  1. ABAP rövidítés
  2. ABAP Workbench dokumentáció angolul,németül
  3. Object Navigator dokumentáció angolul,németül
  4. ABAP Dictionary

Külső hivatkozások[szerkesztés | forrásszöveg szerkesztése]