Az ABAP programozási nyelv Alapvető vezérlési szerkezetek http://nyelvek.inf.elte.hu/leirasok/ABAP/
Tartalom X.1.VEZÉRLÉS X.1. 1.A vezérlésről röviden X.1.2. Szekvencia X.1.3. Ciklus X.1.4. Elágazás X.1.5. Egyéb vezérlést befolyásoló utasítások X.2. Beépített adattípusok, absztrakt adattípusok X.2. 1. Adattípusok X.2.2. Adatobjektumok X.2.3. Belső táblák
Tartalom X.3. Operátorok X.3.1. Összehasonlító operátorok X.3.2. Összehasonlító operátorok karaktersorozatokhoz X.3.3. Aritmetikai operátorok X.4. Alprogramok X.4.1. Az utasítás X.4.2. Függvény-könyvtárak X.5. Fájlkezelés
X.1. A vezérlésről röviden Az ABAP/4 megkülönböztet belső és külső vezérlést. A belső vezérlést a programkódunk határozza meg az egyes utasítások egymás utáni leírásával, melyeket az alapvető vezérlési szerkezetekkel módosíthatunk. A külső vezérlést az időbeli események határozzák meg. Ezek származhatnak vagy ABAP/4-programoktól (rendszer-, vagy felhasználói programok), vagy interaktív felhasználóktól (egér esemény stb.).
X.1.2. Szekvencia A programon belül minden szót legalább egy szóköz választ el, az újsort is ennek veszi a rendszer. Utasításokat viszonylag szabadon írhatunk le, az egy utasításba tartozó szavakat több sorba is szétszórhatjuk, vagy több utasítást egy sorba is írhatunk.
X.1.3. Ciklus Kétféle ismétlési utasítást tartalmaz az ABAP/4 programozási nyelv. DO [<n> TIMES]. <végrehajtási blokk> ENDDO.
X.1.3. Ciklus WHILE <feltétel>. <végrehajtási blokk> <végrehajtási blokk> ENDWHILE.
X.1.4. Elágazás Két lehetőségünk van: IF <feltétel1>. <végrehajtási blokk> ELSEIF <feltétel2>. ... ELSE. ENDIF.
X.4. Elágazás CASE <mezőnév>. WHEN <érték1>. <végrehajtási blokk> WHEN <érték2>. ... WHEN OTHERS. ENDCASE.
X.1.5. Egyéb vezérlést befolyásoló utasítások EXIT.: A legbelső ciklusból, vagy egy modul egységből lép ki a vezérlés. CONTINUE.: Cikluson belül IF utasítással használva a ciklus elejére adhatjuk a vezérlést. CHECK <feltétel>.: Ha a feltétel igaz akkor, ciklusban alkalmazva ekvivalens az előzőekben tárgyalt CONTINUE utasítás hatásával, míg modul egységben az EXIT utasítással.
X.2. Beépített adattípusok, absztrakt adattípusok A legfontosabb összetevői az ABAP/4 típuskoncepciójának az adattípusok és az adatobjektumok. Az adattípus (elemi vagy struktúrált) pontos leírással rendelkezik, a program szempontjából nem rendelkezik tárterülettel, leírja az adatobjektumok technikai tulajdonságait, egy attribútuma egy vagy több adatobjektumnak, melyekhez szorosan kapcsolódik
X.2. Beépített adattípusok, absztrakt adattípusok Az adatobjektum (literál, változó, konstans) egy fizikai egység, melyet egy program futásidőben használ, pontosan egy adattípushoz rendelhető hozzá, rendelkezik tárterülettel, feldolgozása függ a típusától.
X.2. Beépített adattípusok, absztrakt adattípusok Láthatóság szempontjából háromféleképpen osztályozhatjuk a adattípusokat és az adatobjektumokat: program független adatok, melyek az ABAP/4 Dictionary-ban definiáltak belső adatok, melyek egy programon belül deklarálhatunk adatok, melyeket egy eljárásban (alrogramban, függvénykönytárban) definiálhatunk.
X.2. 1. Adattípusok Adattípusokat a struktúrájuk és definíciójuk szerint osztályozhatjuk: elemi (nem sruktúrált) vagy struktúlált előre definiált vagy felhasználó által definiált.
Felhasználó által definiált X.2. 1. Adattípusok Előre definiált Felhasználó által definiált Elemi Az ABAP/4 nyolc előre definiált típussal rendelkezik: C, D, F, I, N, P, T, X A felhasználó által definiált adattípusok az elemi adattípusokra épülnek Struktúrált Táblák: csak a formális paraméterek tipizálásánál és a mező-szimbólumoknál használható Rekord kezeléshez és belső táblákhoz
X.2. 1. Adattípusok Adattípus Leírás Kezdőérték Iniciális hossz P pakolt decimális 8 I integer platform függő F lebegő pontos 0.000... N numerikus szöveg 000... 1 C szöveg (karakter) space D dátum YYYYMMDD 00000000 T idő HHMMSS 000000 6 X hexadecimális X'00'
X.2.2. Adatobjektumok Az adatobjektumoknak több fajtáját különböztetjük meg: A belső adatobjektumok egy programban hozhatjuk létre és csak ezen a programon belül van érvényük. Ilyen objektumok lehetnek literálok, változók és konstansok. A külső adatobjektumok a programunktól függetlenül léteznek, de nem lehet velük közvetlenül dolgozni. Másolatot kell készíteni róluk egy belső objektumba és onnan a megfelelő módosítások után kiírhatjuk. Ezek az objektumok az ABAP/4-Dictionary-ban definiált táblákban találhatóak meg, melyek eléréséhez a TABLES utasításra van szükség.
X.2.2. Adatobjektumok A rendszer által definiált adatobjektumok automatikusan a rendszerben rendelkezésre állnak. Ilyen a SPACE a szóköz, valamint egyes rendszerváltozók, melyek SY-prefixxel kezdődnek. A rendelkezésre álló rendszerváltozók megtekintésére lehetőségünk van az ABAP- editor parancsmezőjében kiadott SHOW SY paranccsal. Néhány ezek közül: SY-UNAME, SY- DATUM, SY-UZEIT. A speciális adatobjektumokat a szelekciós képernyők esetén használhatjuk.
X.2.3. Belső táblák Talán ez az egyik legfontosabb és legegyedibb típusa az ABAP/4-nek. Mivel a nyelvet alapvetően nagytömegű adatok feldolgozására fejlesztették ki, szükséges volt megoldani az adatbázissal történő kommunikációt anélkül, hogy az túlzottan leterhelné a központi szervert. A lényege az, hogy egyszer, vagy akár többször, a program futása során az adatbázisszerverről beolvassuk a számunkra fontos adatokat egy belső táblába, ott feldolgozzuk őket, majd ha szükséges, ugyancsak a belső táblán keresztül visszaírjuk az adatbázisba a módosításokat.
X.2.3. Belső táblák
X.2.3. Belső táblák Egy belső táblát létrehozhatunk (DATA utasítás segítségével) fejléccel vagy anélkül. Ha fejléccel hozzuk létre, akkor az egyik lehetőség a fejléc segítségével kommunikálni a belső táblával, ahol a fejléc neve megegyezik a belső tábla nevével. Ha fejléc nélkül hozzuk létre, akkor egy un. munkaterület (work area) segítségével történik a belső tábla elérése.
X.3. Operátorok X.3.1. Összehasonlító operátorok Egyenlőség: EQ vagy = Nem egyenlő: NE vagy <> Nagyobb: GT vagy > Kisebb: LT vagy < Nagyobb vagy egyenlő: GE vagy >= Kisebb vagy egyenlő: LE vagy <=
X.3.2. Összehasonlító operátorok karaktersorozatokhoz CA (Contains Any): <kif1> CA <kif2> Igaz, ha <kif1> legalább egy karaktert tartalmaz <kif2>-ből. NA (contains Not Any): <kif1> NA <kif2> Igaz, ha <kif1> egyetlen karaktert sem tartalmaz <kif2>-ből.
X.3.2. Összehasonlító operátorok karaktersorozatokhoz CO (Contains Only): <kif1> CO <kif2> Igaz, ha <kif1> csak <kif2>-beli karaktereket tartalmaz. CN (Contains Not only): <kif1> CN <kif2> Igaz, ha <kif1> nem csak <kif2>-beli karaktereket tartalmaz.
X.3.2. Összehasonlító operátorok karaktersorozatokhoz CS (Contains String): <kif1> CS <kif2> Igaz, ha <kif1> tartalmazza <kif2> stringet. Az összehasonlítás nem kisbetű/nagybetű függő. NS (contains No String): <kif1> NS <kif2> Igaz, ha <kif1> nem tartalmazza <kif2> stringet. Az összehasonlítás nem kisbetű/nagybetű függő.
X.3.2. Összehasonlító operátorok karaktersorozatokhoz CP (Contains Pattern): <kif1> CP <kif2> Igaz, ha <kif1> tartalmazza az <kif2> mintát. A minta tartalmazhat joker karaktereket (* és +). Az összehasonlítás nem kisbetű/nagybetű függő. NP (contains No Pattern): <kif1> NP <kif2> Igaz, ha <kif1> nem tartalmazza az <kif2> mintát.
X.3.3. Aritmetikai operátorok Összeadás: + Kivonás: - Szorzás: * Osztás: / Egész osztás: DIV Egész osztás maradéka: MOD Hatványozás: **
X.4. Alprogramok X.4.1. Az utasítás formája: FORM <form neve> [TABLES <formális paraméterek> ...] [USING <formális paraméterek> ...] [USING VALUE(<formális paraméter>) ...] [CHANGING <formális paraméterek> ...] [CHANGING VALUE(<formális paraméter>) ...]. <végrehajtási blokk> ENDFORM.
X.4.1. Az utasítás Megkülönböztetünk lokális és globális változókat az alábbiak szerint: Láthatóság globális: a program teljes területén hivatkozhatunk rá lokális: csak a formban elérhető Élettartam statikus: a program futása végéig él temporális: élettartama a form élettartamára korlátozódik
X.4.1. Az utasítás A fentebb definiált formokat az alábbi utasítással hívhatjuk meg: PERFORM <form neve>[(<melyik programból>)] [TABLES <aktuális paraméterek> ...] [USING <aktuális paraméterek> ...] [CHANGING <aktuális paraméterek> ...] [IF FOUND].
X.4.2. Függvény-könyvtárak CALL FUNCTION <függvény neve> [EXPORTING <formális paraméter>=<aktuális paraméter> ...] [IMPORTING <formális paraméter>=<aktuális paraméter> ...] [CHANGING <formális paraméter>=<aktuális paraméter> ...] [TABLES <formális paraméter>=<aktuális paraméter> ...] [EXCEPTIONS <formális paraméter>=<aktuális paraméter> ... [ERROR_MESSAGE=<aktuális paraméter>] [OTHERS=<aktuális paraméter>]].
X.5. Fájlkezelés A dataset egy az alkalmazás-szerveren megtalálható illetve ott létrejövő szekvenciális fájl. Szerveroldali fájlkezelésre használják az SAP-ban. (Megjegyzés: Amennyiben kliens oldalon található fájlokat kell feltölteni és feldolgozni, illetve letölteni, akkor a GUI_DOWNLOAD és GUI_UPLOAD függvényeket vagy a CL_GUI_FRONTEND_SERVICES osztály megfelelő metódusait kell használni.)
X.5. Fájlkezelés Műveletek: OPEN DATASET: Megnyit egy szerveroldali fájlt. CLOSE DATASET: Lezár egy szerveroldali fájlt. DELETE DATASET: Töröl egy szerveroldali fájlt. TRANSFER: Kiír adatot egy szerveroldali fájlba. READ DATASET: Adatot olvas egy szerveroldali fájlból.
X.5. Fájlkezelés A következőkben <dsn> a fájl elérési útvonalát adja meg (például <dsn> = ‘/tmp/test.txt’ vagy <dsn> = ‘c:\temp\test.txt’). OPEN DATASET <dsn> [Egyéb opciók]. : Általános forma.
Köszönöm a figyelmet