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

  1. belső
    • Ugyanabban a meghívott programban definiált szubrutin.
    • Hozzáférhet a fő ABAP/4 programban deklarált összes adatobjektumhoz.
  2. 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

  1. Ugrás a Tranzakció SE80-ra.
  2. Válassza a Program lehetőséget a legördülő menüben.
  3. Í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.
  4. 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

  1. Hozzon létre egy függvénycsoportot (mondjuk „ZCAL”).
  2. 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.
  3. Az „LZCALU01” fájl tartalmazza az első funkciómodul forráskódját.
  4. Az Include fájl „LZCALTOP” globális adatokat tartalmaz.
  5. 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.
  6. Adja meg az interfész paramétereit és a kivételeket
  7. Írd meg a forráskódot
  8. Aktiválja a funkciómodult
  9. A funkciómodul tesztelése – Egyszeri teszt és hibakeresés
  10. Funkciómodul dokumentálása és kiadása

Ennyi az ABAP modularitása.

Foglald össze ezt a bejegyzést a következőképpen: