ABAP alképernyők oktatóanyaga: Az alképernyő behívása SAP
⚡ Okos összefoglaló
Az ABAP alképernyők futásidejűleg egy képernyőt ágyaznak be egy másik képernyőterületbe, a hozzá tartozó folyamatlogikával együtt. Ez az oldal ismerteti az alképernyőterületeket, a PBO és a PAI CALL SUBSCREEN utasítását, az adatátvitelt, valamint a futásidejű hibákat okozó korlátozásokat.

Mi az az alképernyő a SAP ABAP?
Mielőtt elolvasnád ezt az oktatóanyagot, győződj meg róla, hogy tudod, mi a Párbeszédprogram van.
- Az alképernyő egy független képernyő, amely egy másik („fő”) képernyő egy területén jelenik meg.
- Az alképernyők lehetővé teszik az egyik képernyő beágyazását egy másikba futás közben. Több alképernyőt is felvehet a főképernyőre.
- Az alképernyő kifejezés egyaránt vonatkozik a beágyazott képernyőre és a főképernyő azon területére, ahová elhelyezi. Ez az oktatóanyag az alképernyő területeiről szól. Az SE51 tranzakcióval létrehozott tényleges képernyőket alképernyő képernyőknek nevezzük, ha a képernyő attribútumokban definiálják.
- Ha alképernyőt használ, a beágyazott képernyő áramlási logikája is beágyazódik a főképernyő áramlási logikájába. Ezért az alképernyők használata a képernyőkön olyan, mintha a következőket használná: ABAP programok.
Az alképernyő használatához három egyszerű lépést kell követnie
- Határozza meg a képernyő alképernyő területeit
- Határozza meg a megfelelő alképernyő képernyőket
- Helyezze be az alképernyő képernyőjét az alképernyő területére.
Ezenkívül be kell állítania az alképernyő és a főképernyő keretét. Meg kell neveznie a mezőnév mezőben.
Ezenkívül módosítania kell az alképernyőn belüli mezőket, hogy azok megjelenjenek a főképernyőn. Abban az esetben, ha az alképernyő nagyobb, mint a főképernyőn elérhető terület, az alképernyőnek csak az a része lesz látható, amely belefér a rendelkezésre álló területbe. A területet mindig a képernyő bal felső sarkától mérjük. Ezért kellő körültekintéssel kell eljárnia az alképernyő-területek meghatározásakor és az alképernyők létrehozása során.
ELŐKÉPERNYŐ HÍVÁSA
PÉLDA
Például itt két alképernyő-területet határoztunk meg a főképernyőn, és két különböző alképernyőt csatoltunk a megfelelő területekhez. A főképernyő meghívásakor a főképernyő PBO-ja kerül meghívásra. Megjelenítés előtt azonban minden egyes képernyő PBO-ja, amely a főképernyő alképernyőjéhez van csatolva, szintén meghívásra kerül.
A képernyőképen a főképernyő látható, a két alképernyő-területet pedig két különálló alképernyő tölti ki.
A főképernyő folyamatlogikájába a CALL SUBSCREEN utasítással alképernyőt is beilleszthet.
Az alképernyő meghívása PBO-ban
Ha egy alképernyő képernyőt szeretne beilleszteni a főképernyő alképernyőjének területére, és meghívni a PBO áramlási logikáját, használja a következő utasítást a főképernyő PBO eseményében:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Ez az utasítás számmal rendeli az alképernyő képernyőjét nevű alképernyő-területre . Megadhatja azt a programot is, amelyben az alképernyő definiálva van (opcionális). Ha nem adja meg kifejezetten a programot, a rendszer az alképernyőt ugyanabban az ABAP programban keresi, mint a főprogram. Ha nem talál megfelelő alképernyőt, futásidejű hiba lép fel. Ugyanezen a ponton szerepel az alképernyő PBO áramlási logikája is. Ez meghívhatja az ABAP program PBO moduljait, amelyekben az alképernyő definiálva van. A PBO alképernyő végén a program globális mezőit átadja az alképernyő bármely azonos nevű képernyőmezőjének. Az alképernyő képernyő PBO áramlási logikája maga is tartalmazhat további alképernyőket.
A név Az alképernyő területét közvetlenül kell beírni fordított vessző nélkül. Megadhatja a neveket és akár literálként, akár változóként. Ha változókat használ, akkor az ABAP programban azonos nevű változókat kell deklarálnia és kitöltenie. A képernyő száma 4 karakter hosszúságúnak kell lennie. Ha nem rendel egy területhez alképernyőt, az üres marad.
Az alképernyő meghívása PAI-ban
Az alképernyő PAI-folyamati logikájának meghívásához használja a következő utasítást a főképernyő PAI-folyamati logikájában:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Ez az utasítás tartalmazza az alképernyőn lévő alképernyő PAI áramlási logikáját a PBO rendezvényen. Ez meghívhatja az ABAP program PAI moduljait, amelyekben az alképernyő definiálva van. Az adatok átvitele az alképernyő képernyő és az ABAP program azonos nevű mezői között történik vagy a PAI esemény aktiválásakor, vagy az alképernyő képernyő PAI áramlási logikájának megfelelő FIELD utasításainál.
Alképernyő létrehozása és beágyazása
A korábban felsorolt három lépést a képernyőn hajtjuk végre. Painter és a főképernyő folyamatlogikájában. Az alábbi sorozat egyetlen főképernyőt hoz létre egyetlen alképernyő-területtel.
- Hozza létre az alképernyő területét: Nyissa meg a főképernyőt, például a 100-as képernyőt a Képernyőben Painter (SE51). Válassza ki a Alképernyő elemet az elemsávból, rajzolja meg az elrendezésen, és adjon meg egy nevet, például SUB_AREA, a Név mezőben. Ezt a nevet fogja később használni a CALL SUBSCREEN utasításban.
- Hozza létre az alképernyőt: Hozzon létre egy második képernyőt, például a 110-es képernyőt, és állítsa be a képernyőtípusát a következőre: Alképernyő az attribútumokba. Egy alképernyőnek nincs OK kódmezője és nincs saját grafikus felhasználói felületének állapota.
- A mezők elhelyezése: Rajzold meg a beviteli mezőket a 110-es képernyőn. Az elrendezést tartsd az alképernyő területének méretén belül, mert csak az a rész jelenik meg, amelyik elfér, a bal felső saroktól mérve.
- Deklarálja a globális adatokat: Helyezd a mezőket a modulkészlet TOP include-jába, így mind a főképernyő, mind az alképernyő ugyanazokat a globális változókat olvassa.
- Hívja meg az alképernyőt: Adja hozzá a CALL SUBSCREEN elemet a PBO-hoz és a főképernyő PAI-jához az alábbiak szerint.
- Aktiválás és tesztelés: Aktiválja a képernyőket és a programot, majd indítsa el a tranzakciót. Az alképernyő területet a 110-es képernyő tölti ki, moduljai pedig a 100-as képernyő folyamatlogikáján belül futnak.
* Flow logic of the main screen 100 PROCESS BEFORE OUTPUT. MODULE status_0100. CALL SUBSCREEN sub_area INCLUDING 'SAPMZDEMO' '0110'. PROCESS AFTER INPUT. CALL SUBSCREEN sub_area. MODULE user_command_0100.
💡 Tipp: A képernyőszámot globális változóban, literál helyett tárold, ha a területnek a felhasználói beviteltől függően eltérő alképernyőt kell megjelenítenie. A változónak ugyanazt a nevet kell viselnie a programban és a CALL SUBSCREEN utasításban.
Emlékeztető pontok
- A képernyőn belüli alképernyők elemeinek nevének egyedinek kell lennie
- Nem szabad az OK_CODE-t vagy az FCODE-ot az alképernyőhöz csatolni. Maga a főképernyő OK_CODE értéke az alképernyő OK_CODE-ja
- Az alképernyők nem tartalmazhatnak olyan párbeszédpaneleket, amelyek tartalmazzák a TITLEBAR SET, SET PF-STATUS, SET SCREEN, LEAVE SCREEN vagy LEAVE SCREEN. Ez futásidejű hibát okoz.
- Meg kell hívnia a fő képernyő áramlási logikájában (mind a PBO, mind a PAI).
- A CALL SUBSCREEN nem engedélyezett a CHAIN..ENDCHAIN és a LOOP ENDLOOP utasításokban
- Nem lehet AT EXIT-COMMAND modul
- A használt mezők a globális mezők. Ezeket be kell jelenteni a felső tartalmazza
- Ha mástól származó alképernyőket használ párbeszédes program az adatátvitel nem történik meg, hacsak nem ad hozzá speciális kódot.
⚠️ Figyelmeztetés: A CALL SUBSCREEN utasítás elhelyezése a CHAIN … ENDCHAIN cikluson belül vagy egy képernyő LOOP cikluson belül szintaktikai hibát eredményez, egy nem létező képernyőszám meghívása pedig futásidejű hibát az első megjelenítésnél.

