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.

  • 🪟 Alapvető definíció: Az alképernyő egy független képernyő, amely a főképernyő egy meghatározott területén belül jelenik meg, és több alképernyő osztozhat egy főképernyőn.
  • 🧩 Analógia beillesztése: A beágyazott képernyő folyamatlogikája beillesztésre kerül a főképernyő folyamatlogikájába, pontosan úgy, ahogy egy include elemet beillesztünk egy programba.
  • 🪜 Három lépés: Definiálja az alképernyő területét, definiálja az alképernyő képernyőjét, majd vegye fel a képernyőt a területre.
  • ⌨️ PBO hívás: HÍVÁS ALKÉPERNYŐ BELEÉRTVE hozzárendel egy négy karakteres képernyőszámot a területhez, és lefuttatja a PBO logikáját.
  • ⌨️ PAI hívás: HÍVÁS ALKÉPERNYŐ A PAI-ban a beágyazott képernyő PAI logikáját futtatja, és azonos nevű mezők adatait szállítja.
  • ???? Korlátozások: Egy alképernyő nem használhatja a SET PF-STATUS, SET TITLEBAR, SET SCREEN, LEAVE SCREEN parancsokat, saját OK_CODE-ot vagy AT EXIT-COMMAND parancsot.
  • 🌐 Globális mezők: Az alképernyők által használt mezők globális mezők, amelyeket a program TOP include-jában deklarálnak.

ABAP alképernyők

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

  1. Határozza meg a képernyő alképernyő területeit
  2. Határozza meg a megfelelő alképernyő képernyőket
  3. 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.

Hívja be az alképernyőt SAP

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

GYIK

A fülsáv egy olyan tároló, amelynek fülei maguk is alképernyő-területek. Az alképernyő maga a tartalom, és a fülsáv csak azt határozza meg, hogy az alképernyők közül melyik látható a felhasználó számára.

Egy főképernyő több alképernyő-területet is tartalmazhat, és minden terület egyszerre egy alképernyőt jelenít meg. Az alképernyő maga is beágyazhat további alképernyőket, így a beágyazást csak a képernyő mérete és olvashatósága korlátozza.

Az adatok csak azonos nevű képernyőmezők és globálisan deklarált programmezők között kerülnek átvitelre. Egy másik programból vett alképernyő nem továbbít semmit, kivéve, ha az értékeket explicit módon, kódban adjuk át.

Igen. A mesterséges intelligencia asszisztensek beolvassák a rövid dump-ot és a folyamatlogikát, majd rámutatnak a szokásos okokra, például egy hiányzó képernyőszámra, egy tiltott SET PF-STATUS utasításra az alképernyőn belül, vagy egy CALL SUBSCREEN utasításra a CHAIN ​​üzenetben.

A mesterséges intelligencia elemzőeszközei átvizsgálják a modulkészletet, észlelik a duplikált elrendezésű képernyőket, és egyetlen újrafelhasználható alképernyőt javasolnak a CALL SUBSCREEN utasításokkal, amelyek lecserélik azokat. A javaslatot a képernyők törlése előtt felülvizsgálják.

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