ABAP Subschermen Tutorial: Subscherm oproepen in SAP

Voordat je deze tutorial leest, zorg ervoor dat je weet wat een dialoogprogramma is ...

BEL ABONNEMENT

  • Een subscherm is een onafhankelijk scherm dat wordt weergegeven in een gebied van een ander (“hoofd”) scherm.
  • Met subschermen kunt u tijdens runtime het ene scherm in het andere insluiten. U kunt meerdere subschermen op het hoofdscherm opnemen.
  • De term subscherm heeft zowel betrekking op het scherm dat u insluit, als op het gebied op het hoofdscherm waarin u het plaatst. Deze tutorial gaat over subschermgebieden. De daadwerkelijke schermen die via de SE51-transactie zijn gemaakt, worden subschermschermen genoemd als deze zijn gedefinieerd in schermattributen.
  • Wanneer u een subscherm gebruikt, is de stroomlogica van het ingebedde scherm ook ingebed in de stroomlogica van het hoofdscherm. Het gebruik van subschermen op schermen is dus hetzelfde als het gebruik van include in ABAP-programma's.

Om een ​​subscherm te gebruiken, moet je drie eenvoudige stappen volgen

  1. Definieer de subschermgebieden op een scherm
  2. Definieer geschikte subschermschermen
  3. Neem het subschermscherm op in het subschermgebied.

Ook moet u het frame van het subscherm en het hoofdscherm aanpassen. U moet het een naam geven in het veldnaamveld.

Verder moet u ook de velden binnen het subscherm aanpassen om ze in het hoofdscherm te laten verschijnen. Indien het subscherm groter is gedefinieerd dan het beschikbare gebied in het hoofdscherm, zal alleen het deel van het subscherm zichtbaar zijn dat in het beschikbare gebied past. Het gebied wordt altijd gemeten vanaf de linkerbovenhoek van het scherm. Daarom moet u de nodige voorzichtigheid in acht nemen bij het definiëren van subschermgebieden en het maken van subschermen.

VOORBEELD

Hier hebben we bijvoorbeeld twee subschermgebieden op het hoofdscherm gedefinieerd en twee verschillende subschermen aan overeenkomstige gebieden toegevoegd. Telkens wanneer het hoofdscherm wordt opgeroepen, wordt de PBO van het hoofdscherm gebeld. Maar voordat ze worden weergegeven, worden ook de PBO's van elk scherm met subschermgebieden op het hoofdscherm opgeroepen.

Subscherm oproepen in SAP

U kunt een subschermscherm opnemen met behulp van de instructie CALL SUBSCREEN in de stroomlogica van het hoofdscherm.

Om een ​​subschermscherm op te nemen in het subschermgebied van het hoofdscherm en de PBO-stroomlogica ervan op te roepen, gebruikt u het volgendewing verklaring in de PBO-gebeurtenis van het hoofdscherm:

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.

Deze verklaring wijst het subschermscherm met nummer toe naar het opgeroepen subschermgebied . U kunt ook het programma opgeven waarin het subschermscherm is gedefinieerd (optioneel). Als u het programma niet expliciet opgeeft, zoekt het systeem naar het subscherm in hetzelfde ABAP-programma als het hoofdprogramma. Als er geen bijbehorend subscherm wordt gevonden, treedt er een runtimefout op. De PBO-stroomlogica van het subschermscherm is ook op hetzelfde punt opgenomen. Hiermee kunnen PBO-modules van het ABAP-programma worden opgeroepen waarin het subschermscherm is gedefinieerd. Aan het einde van de PBO van het subscherm worden de globale velden uit het programma doorgegeven aan eventuele gelijknamige schermvelden in het subscherm. De PBO-stroomlogica van het subschermscherm kan zelf verdere subschermen omvatten.

De naam van het subschermgebied moet rechtstreeks worden ingevoerd, zonder aanhalingstekens. U kunt de namen opgeven En hetzij als letterlijke waarden, hetzij als variabelen. Als u variabelen gebruikt, moet u variabelen met dezelfde naam declareren en invullen in het ABAP-programma. Het schermnummer moet 4 tekens lang zijn. Als u geen subschermscherm aan een gebied toewijst, blijft het leeg.

Om de PAI-stroomlogica van het subschermscherm op te roepen, gebruikt u het volgendewing statement in de PAI-stroomlogica van het hoofdscherm:

PROCESS AFTER INPUT.

CALL SUBSCREEN <area>.

Deze verklaring omvat de PAI-stroomlogica van het subschermscherm dat is opgenomen in het subschermgebied tijdens het PBO-evenement. Hiermee kunnen PAI-modules van het ABAP-programma worden opgeroepen waarin het subschermscherm is gedefinieerd. Gegevens worden getransporteerd tussen velden met dezelfde naam in het subschermscherm en het ABAP-programma, hetzij wanneer de PAI-gebeurtenis wordt geactiveerd, of bij de overeenkomstige FIELD-instructies in de PAI-stroomlogica van het subschermscherm.

Punten om te onthouden

  • Namen van elementen van subschermen binnen een scherm moeten uniek zijn
  • Er zou geen OK_CODE of FCODE aan het subscherm moeten zijn gekoppeld. De OK_CODE van het hoofdscherm zelf is OK_CODE van het subscherm
  • Subschermen kunnen geen dialoogmodules bevatten die SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN of LEAVE TO SCREEN bevatten. Dit veroorzaakt een runtimefout.
  • U moet het oproepen in de stroomlogica (zowel PBO als PAI) van het hoofdscherm.
  • CALL SUBSCREEN is niet toegestaan ​​in CHAIN..ENDCHAIN- en LOOP ENDLOOP-instructies
  • Kan geen AT EXIT-COMMAND-module hebben
  • De velden die u gebruikt zijn de globale velden. Ze moeten bovenaan worden aangegeven
  • Als u subschermen van een ander gebruikt dialoog programma de gegevensoverdracht zal niet plaatsvinden tenzij u specifieke code toevoegt.