Modularizace v ABAP: Makro, podprogramy a funkční moduly

Když modularizujete zdrojový kód, umístíte posloupnost příkazů ABAP do modulu. Potom místo umístění všech příkazů do hlavního programu pouze zavoláte modul. Když je program vygenerován, je se zdrojovým kódem v modularizační jednotce zacházeno, jako by byl skutečně fyzicky přítomen v hlavním programu.

Potřeba modularizace

  • Zlepšit strukturu programu.
  • Snadné čtení kódu
  • Snadná údržba kódu
  • Vyhněte se redundanci a podporuje opětovné použití kódu

Různé modularizační techniky

  • Použití maker
  • Použití začleněných souborů
  • Podprogramy
  • Funkční moduly

Podívejme se podrobně na každý z nich:

SAP- Makro ABAP

Pokud chcete v programu použít stejnou sadu příkazů více než jednou, můžete je zahrnout do makra.

Makro můžete použít pouze v programu, ve kterém je definováno, a lze jej volat pouze v řádcích programu následujících po jeho definici.

Makra mohou být užitečná pro dlouhé výpočty nebo složité příkazy WRITE.

Syntax

DEFINE <macro_name>

'Macro Statements

END-OF-DEFINITION

Makra mohou používat parametry &N kde N = 1,2,3…

Příklad:-

DATA: number1 TYPE I VALUE 1.

DEFINE increment.

ADD 1 to &1.

WRITE &1.

END-OF-DEFINITION.

Increment number1.

WRITE number1.

Výstup: 2

Zahrnout programy

Programy Include jsou určeny výhradně pro modularizaci zdrojového kódu a nemají žádné parametrické rozhraní.

Zahrnout programy vám umožní používat stejný zdrojový kód v různých programech. Mohou být užitečné, pokud máte dlouhé deklarace dat, které chcete použít v různých programech.

Syntax

Include <include program Name>

Upozorňuje na poznámky

  • Zahrnout programy nemohou volat samy sebe.
  • Zahrnout programy musí obsahovat úplné příkazy.

Příklad:

INCLUDE ZILX0004.

WRITE: / 'User', SY-UNAME,/ 'Date', SY-DATUM.

================================

PROGRAM ZRPM0001.

INCLUDE ZILX0004.

Podprogramy

Podprogramy jsou procedury, které můžete definovat v libovolném program ABAP a také volání z libovolného programu. Podprogramy jsou normálně volány interně, to znamená, že obsahují části kódu nebo algoritmy, které se často používají lokálně. Pokud chcete, aby funkce byla opakovaně použitelná v celém systému, použijte funkční modul.

Syntax-

FORM <Subroutine> [<pass>].

<Statement block>.

ENDFORM.

= Název podprogramu

= Předávané parametry

Typy podprogramů

  1. Interní
    • Podprogram definovaný ve stejném volaném programu.
    • Má přístup ke všem datovým objektům deklarovaným v hlavním programu ABAP/4.
  2. Externí
    • Podprogram definovaný mimo volaný program.
    • Je třeba použít možnost nebo deklarovat datové objekty ve společných částech paměti.

Volání podprogramu

Interní podprogramy

PERFORM <subroutine> [<pass>]

= Název podprogramu

= Předávané parametry

Data deklarovaná v hlavním programu jsou automaticky dostupná.

Externí podprogramy

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>].

Upozorňuje na poznámky

  • Vnořená volání jsou povolena v podprogramech (tj. PERFORM v rámci FORM … ENDFORM ).
  • Možné jsou i rekurzivní hovory.
  • Chcete-li definovat lokální data, použijte příkaz DATA za FORM . Při každém vstupu do podprogramu jsou data znovu vytvořena (s počáteční hodnotou) a uvolněna na konci (ze zásobníku).
  • Chcete-li definovat globální data použitá v rámci podprogramu, použijte příkaz LOCAL po FORM . Hodnoty se uloží, když vstoupíte do podprogramu a poté se uvolní na konci (ze zásobníku)

Funkční moduly

Funkční moduly jsou rutiny ABAP/4 pro všeobecné použití, které může používat kdokoli. Ve skutečnosti je k dispozici velké množství standardních funkčních modulů.

Funkční moduly jsou organizovány do funkčních skupin: Kolekce logicky souvisejících funkcí. Funkční modul vždy patří do funkční skupiny.

Syntax-

FUNCTION <function module>

<Statements>

ENDFUNCTION.

Důležité informace Související s funkčním modulem

  • Administrativa
  • Import/Změna/Export parametrů.
  • Parametry/Výjimky tabulky.
  • Dokumentace
  • Zdrojový kód - L U01 . je funkční skupina
  • Globální data – L NAHORU .Globální data pro funkční skupinu- Přístupná napříč funkčními moduly ve funkční skupině.
  • Hlavní program – SAPL . Obsahuje seznam všech zahrnutých souborů pro danou funkční skupinu

Zavolejte funkční modul

Chcete-li zavolat funkční modul, použijte příkaz CALL FUNCTION:

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]].

Funkční skupiny

Funkční skupiny jsou kontejnery pro funkční moduly. Ve skutečnosti existuje velké množství standardních skupin funkcí.
Všechny funkční moduly ve funkční skupině mají přístup ke globálním datům skupiny.

Stejně jako spustitelné programy (typ 1) a modulové bazény (typ M) mohou skupiny funkcí obsahovat obrazovky, obrazovky výběru a seznamy.

Upozorňuje na poznámky

  • Skupiny funkcí nelze spustit.
  • Název funkční skupiny může mít až 26 znaků.
  • Když vytvoříte funkční skupinu nebo funkční modul, hlavní program a zahrnuté programy se vygenerují automaticky.
  • Funkční skupiny zapouzdřují data.

Jak vytvořit skupinu funkcí

  1. Přejít na transakci SE80.
  2. V rozbalovací nabídce vyberte Program.
  3. Napište název skupiny funkcí, kterou chcete vytvořit. Obecně Skupiny funkcí vytvořené uživatelem začínají na „Z“. např. – . Stiskněte klávesu Enter.
  4. Všimněte si, že zahrnout TOP je vytvořeno ve výchozím nastavení, pokud uživatel zaškrtne možnost vytvoření zahrnout TOP.

Jak vytvořit funkční modul

  1. Vytvořte skupinu funkcí (řekněte „ZCAL“).
  2. Vytvořte funkční modul, nastavte atributy jako (Skupina funkcí, Aplikace, Krátký text a Typ procesu) a Uložit.
  3. Zahrnutý soubor “LZCALU01” bude mít zdrojový kód prvního funkčního modulu.
  4. Zahrnutý soubor „LZCALTOP“ bude mít globální data.
  5. Hlavní program"SAPLZCAL“ obsahuje
    • Globální data Zahrnout soubor „LZCALTOP“
    • Funkční moduly obsahují soubor „LZCALUXX“
    • Uživatelsky definované Zahrnout soubory „LZCALF..“, „LZCALO..“ a „LZCALI..“
  6. Definujte parametry rozhraní a výjimky
  7. Napište zdrojový kód
  8. Aktivujte funkční modul
  9. Testování funkčního modulu – Single Test & Debugging
  10. Dokumentace a uvolnění funkčního modulu

To je vše k modularitě v ABAP.