Tutorial ABAP Subscreens: Apelați subscreen în SAP

Cuprins:

Anonim

Înainte de a citi acest tutorial, asigurați-vă că este un program Dialog ...

APELĂ SUBSCREEN

  • Un subscreen este un ecran independent care este afișat într-o zonă a unui alt ecran („principal”).
  • Ecranele de subscriere vă permit să încorporați un ecran în altul în timpul rulării. Puteți include mai multe sub-ecrane pe ecranul principal.
  • Termenul de ecran secundar se aplică atât ecranului pe care îl încorporați, cât și zonei de pe ecranul principal în care îl plasați. Acest tutorial este despre zonele de sub ecran. Ecranele reale create prin tranzacția SE51, se numesc ecrane de subscreen dacă sunt definite în atributele ecranului.
  • Când utilizați un ecran secundar, logica fluxului ecranului încorporat este, de asemenea, încorporată în logica fluxului ecranului principal. Prin urmare, utilizarea ecranelor secundare pe ecrane este ca și cum se utilizează includerea în programele ABAP.

Pentru a utiliza un subscreen, trebuie să urmați trei pași simpli

  1. Definiți zona (zonele) de sub ecran pe un ecran
  2. Definiți ecrane de subscreen adecvate
  3. Includeți ecranul de subscreen în zona de subscreen.

De asemenea, trebuie să reglați cadrul sub-ecranului și al ecranului principal. Trebuie să îl denumiți în câmpul cu numele câmpului.
Mai mult, trebuie să ajustați și câmpurile din ecranul secundar pentru a le face să apară în ecranul principal. În cazul în care sub-ecranul este definit ca fiind mai mare decât zona disponibilă în ecranul principal, va fi vizibilă doar partea de ecran secundar care se potrivește în zona disponibilă. Zona este întotdeauna măsurată din colțul din stânga sus al ecranului. Prin urmare, ar trebui să aveți grijă adecvată în timp ce definiți zonele sub-ecran și creați sub-ecrane.
EXEMPLU

De exemplu, aici am definit două zone sub-ecran pe ecranul principal și am atașat două sub-ecran diferite la zonele corespunzătoare. Ori de câte ori este apelat ecranul principal, este apelat PBO-ul ecranului principal. Dar, înainte de afișare, sunt numite și PBO-urile fiecărui ecran atașat cu zone sub-ecran pe ecranul principal.

Puteți include un ecran de subscreen folosind instrucțiunea CALL SUBSCREEN în logica de flux a ecranului principal.
Pentru a include un ecran de subscreen în zona de subscreen a ecranului principal și a apela logica sa de flux PBO, utilizați următoarea declarație în cazul PBO al ecranului principal:

PROCESUL ÎNAINTE DE IEȘIRE.SUNAȚI SUBSCREEN  INCLUSIV [
] .

Această declarație atribuie ecranului de subscreen cu numărul zonei de subscreen numită . De asemenea, puteți specifica programul în care este definit ecranul de subscreen (opțional). Dacă nu specificați în mod explicit programul, sistemul caută ecranul de subscreen în același program ABAP ca programul principal. Dacă nu găsește un ecran de subscriere corespunzător, apare o eroare de rulare. Logica de flux PBO a ecranului de subscreen este, de asemenea, inclusă în același punct. Aceasta poate apela module PBO ale programului ABAP în care este definit ecranul de subscreen. La sfârșitul PBO-ului cu ecran secundar, câmpurile globale din program sunt transmise oricăror câmpuri ale ecranului cu nume identice din ecranul de subscriere. Logica de flux PBO a ecranului de subscreen poate include în sine subscreen-uri suplimentare.

Numele zonei de sub-ecran trebuie introdus direct fără virgule inversate. Puteți specifica numele și fie ca litere sau variabile. Dacă utilizați variabile, trebuie să declarați și să completați variabile cu nume identice în programul ABAP. Numărul ecranului trebuie să aibă 4 caractere. Dacă nu alocați un ecran de subscriere unei zone, acesta rămâne gol.
Pentru a apela logica de flux PAI a ecranului de subscreen, utilizați următoarea declarație din logica de flux PAI a ecranului principal:

PROCESUL DUPĂ INTRARE.CALL SUBSCREEN .

Această declarație include logica de flux PAI a ecranului de subscreen inclus în zona de subscreen în evenimentul PBO. Aceasta poate apela module PAI ale programului ABAP în care este definit ecranul de subscreen. Datele sunt transportate între câmpurile cu nume identice din ecranul de subscreen și programul ABAP fie atunci când este declanșat evenimentul PAI, fie la instrucțiunile FIELD corespunzătoare din logica de flux PAI a ecranului de subscreen.
Puncte de reținut

  • Numele elementelor sub-ecranelor dintr-un ecran ar trebui să fie unice
  • Nu ar trebui să aveți OK_CODE sau FCODE atașate cu sub-ecran. OK_CODE al ecranului principal în sine este OK_CODE al sub-ecranului
  • Sub-ecranele nu pot avea module de dialog care să conțină SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN sau LEAVE TO SCREEN. Acest lucru va cauza o eroare în timpul rulării.
  • Trebuie să-l apelați în logica de flux (atât PBO, cât și PAI) a ecranului principal.
  • CALL SUBSCREEN nu este permis în instrucțiunile CHAIN ​​... ENDCHAIN ​​și LOOP ENDLOOP
  • Nu pot avea un modul AT EXIT-COMMAND
  • Câmpurile pe care le utilizați sunt câmpurile globale. Acestea trebuie declarate în partea de sus includ
  • Dacă utilizați ecranele secundare dintr-un alt program de dialog, transferul de date nu va avea loc decât dacă adăugați un cod specific.