Modularizálás az ABAP-ban: Makró, szubrutinok és funkciómodulok
Amikor modularizálja a forráskódot, ABAP utasítások sorozatát helyezi el egy modulban. Ezután ahelyett, hogy az összes utasítást elhelyezné a főprogramban, egyszerűen hívja meg a modult. Amikor a program létrejön, a modularizációs egységben lévő forráskódot a rendszer úgy kezeli, mintha az fizikailag jelen lenne a főprogramban.
Modularizálás szükségessége
- A program szerkezetének javítása.
- Könnyen olvasható a kód
- Könnyen karbantartható a kód
- Kerülje a redundanciát, és elősegíti a kód újrafelhasználását
Különféle modularizációs technikák
- Makrók használata
- Az include fájlok használata
- Alprogramok
- Funkciómodulok
Nézzük meg mindegyiket részletesen:
SAP- ABAP makró
Ha ugyanazt az utasításkészletet egynél többször szeretné használni egy programban, akkor beépítheti őket egy makróba.
Makró csak abban a programban használható, amelyben definiálva van, és csak a program definícióját követő soraiban hívható meg.
A makrók hasznosak lehetnek hosszú számításokhoz vagy összetett WRITE utasításokhoz.
Szintaxis
DEFINE <macro_name> 'Macro Statements END-OF-DEFINITION
A makrók használhatják a paramétereket &N ahol N = 1,2,3…
Példa:-
DATA: number1 TYPE I VALUE 1. DEFINE increment. ADD 1 to &1. WRITE &1. END-OF-DEFINITION. Increment number1. WRITE number1.
Kimenet: 2
Programok szerepeltetése
Az Include Programok kizárólag a forráskód modularizálására szolgálnak, és nincs paraméter interfészük.
Az Include programs lehetővé teszi, hogy ugyanazt a forráskódot használja különböző programokban. Hasznosak lehetnek, ha hosszú adatdeklarációi vannak, amelyeket különböző programokban szeretne használni.
Szintaxis
Include <include program Name>
Megjegyzendő pontok
- Az Include programok nem nevezhetik magukat.
- Az Include programoknak teljes utasításokat kell tartalmazniuk.
Példa:
INCLUDE ZILX0004. WRITE: / 'User', SY-UNAME,/ 'Date', SY-DATUM. ================================ PROGRAM ZRPM0001. INCLUDE ZILX0004.
Alprogramok
Az alprogramok olyan eljárások, amelyeket bármelyikben definiálhatunk ABAP program és bármilyen programból hívni is. A szubrutinokat általában belsőleg hívják, vagyis olyan kódrészleteket vagy algoritmusokat tartalmaznak, amelyeket helyileg gyakran használnak. Ha azt szeretné, hogy egy funkció újrafelhasználható legyen a rendszerben, használjon funkciómodult.
Szintaxis-
FORM <Subroutine> [<pass>]. <Statement block>. ENDFORM.
= Az alprogram neve
= Paraméterek átadása folyamatban
Az alprogramok típusai
- belső
- Ugyanabban a meghívott programban definiált szubrutin.
- Hozzáférhet a fő ABAP/4 programban deklarált összes adatobjektumhoz.
- Külső
- A meghívott programon kívül definiált szubrutin.
- Használni kell a opciót vagy deklarálnak adatobjektumokat a memória közös részein.
Szubrutin hívása
Belső szubrutinok
PERFORM <subroutine> [<pass>]
= Az alprogram neve
= Paraméterek átadása folyamatban
A főprogramban deklarált adatok automatikusan elérhetők.
Külső szubrutinok
PERFORM <subroutine>(<Program>) [<pass>]. PERFORM <subroutine> (<Program>) [<pass>] [IF FOUND]. PERFORM (<subroutine>) IN PROGRAM (<Program>) [<pass>] [IF FOUND]. PERFORM <index> OF <subroutine1> <subroutine2> <subroutine3> [<pass>].
Megjegyzendő pontok
- A beágyazott hívások megengedettek az alprogramokban (pl. PERFORM egy FORM … ENDFORM-on belül).
- Rekurzív hívások is lehetségesek.
- A helyi adatok meghatározásához használja a DATA utasítást a FORM után. Minden alkalommal, amikor belép az alprogramba, az adatok újra létrejönnek (a kezdeti értékkel), majd a végén (a veremből) kiadják.
- Egy szubrutinban használt globális adatok meghatározásához használja a LOCAL utasítást a FORM után. Az értékek mentésre kerülnek, amikor belépsz az alprogramba, majd a végén (a veremből) felengedik.
Funkciómodulok
A funkciómodulok általános célú ABAP/4 rutinok, amelyeket bárki használhat. Valójában nagyszámú szabványos funkciómodul áll rendelkezésre.
A funkciómodulok funkciócsoportokba vannak szervezve: Logikailag kapcsolódó függvények gyűjteményei. A függvénymodul mindig egy funkciócsoporthoz tartozik.
Szintaxis-
FUNCTION <function module> <Statements> ENDFUNCTION.
Fontos információk A funkciómodulhoz kapcsolódóan
- Adminisztráció
- Paraméterek importálása/módosítása/exportálása.
- Táblázat paraméterei/kivételek.
- Dokumentáció
- Forráskód – L U01 . a Funkciócsoport
- Globális adatok – L TOP .Globális adatok a funkciócsoporthoz- A funkciócsoport funkciómoduljai között elérhető.
- Fő program - SAPL . Az adott funkciócsoporthoz tartozó összes szerepeltető fájl listáját tartalmazza
Hívjon egy funkciómodult
Egy függvénymodul meghívásához használja a CALL FUNCTION utasítást:
CALL FUNCTION <module> [EXPORTING f1 = a 1.... f n = a n] [IMPORTING f1 = a 1.... f n = a n] [CHANGING f1 = a 1.... f n = a n] [TABLES f1 = a 1.... f n = a n] [EXCEPTIONS e1 = r 1.... e n = r n [ERROR_MESSAGE = r E] [OTHERS = ro]].
Funkciócsoportok
A funkciócsoportok a funkciómodulok tárolói. Valójában nagyszámú szabványos funkciócsoport létezik.
A funkciócsoport összes funkciómodulja hozzáférhet a csoport globális adataihoz.
Mint a végrehajtható programok (1. típusú) és modul poolok (M típus), a funkciócsoportok képernyőket, kiválasztási képernyőket és listákat tartalmazhatnak.
Megjegyzendő pontok
- A funkciócsoportok nem hajthatók végre.
- Egy funkciócsoport neve legfeljebb 26 karakter hosszú lehet.
- Amikor létrehoz egy funkciócsoportot vagy funkciómodult, a főprogram és a beillesztési programok automatikusan létrejönnek.
- A funkciócsoportok beágyazzák az adatokat.
Funkciócsoport létrehozása
- Ugrás a Tranzakció SE80-ra.
- Válassza a Program lehetőséget a legördülő menüben.
- Írja be a létrehozni kívánt funkciócsoport nevét. Általában a felhasználó által készített függvénycsoportok „Z”-vel kezdődnek. például - . Nyomja meg az Enter gombot.
- Ne feledje, hogy a TOP Include alapértelmezés szerint létrejön, ha a felhasználó bejelöli a TOP include létrehozásának lehetőségét.
Hogyan készítsünk funkciómodult
- Hozzon létre egy függvénycsoportot (mondjuk „ZCAL”).
- Hozzon létre egy függvénymodult, állítsa be az attribútumokat, például (Funkciócsoport, Alkalmazás, Rövid szöveg és Folyamattípus) és Mentés.
- Az „LZCALU01” fájl tartalmazza az első funkciómodul forráskódját.
- Az Include fájl „LZCALTOP” globális adatokat tartalmaz.
- Fő program"SAPLZCAL” tartalmazza
- Globális adatok Tartalmazza az „LZCALTOP” fájlt
- A funkciómodulok közé tartozik az „LZCALUXX” fájl
- Felhasználó által meghatározott Tartalmazza az „LZCALF..”, „LZCALO..” és „LZCALI..” fájlokat.
- Adja meg az interfész paramétereit és a kivételeket
- Írd meg a forráskódot
- Aktiválja a funkciómodult
- A funkciómodul tesztelése – Egyszeri teszt és hibakeresés
- Funkciómodul dokumentálása és kiadása
Ennyi az ABAP modularitása.
