ABAP

ABAP/4
ParadigmaObjektumorientált, strukturált, imperatív
Megjelent1983
TervezőSAP AG
FejlesztőSAP SE
TípusosságErősen típusos, Statikus típusosság, típus biztos, nominatív
MegvalósításokSAP R/2, SAP R/3
Hatással volt ráObjective-C, COBOL, SQL
Operációs rendszermulti-platform
Licenckereskedelmi licenc
Weboldal


Az ABAP (angolul Advanced Business Application Programming, németül Allgemeiner Berichts-Aufbereitungs-Prozessor) az SAP szoftvercég – 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.


Az ABAP nyelv története

  • 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: strukturá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

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, strukturált modell
    • funkciós elemek
    • alprogramok
  • objektumorientált modell
    • osztályok
    • interfészek

ABAP Workbench

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

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

ABAP utasítások

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

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

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

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

Jegyzetek

  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

Források

További információk