Tutorial sulle schermate secondarie ABAP: richiama la schermata secondaria in SAP
Prima di leggere questo tutorial assicurati di cos'è un programma di dialogo...
CHIAMATA SOTTOSCHERMATA
- Una schermata secondaria è una schermata indipendente visualizzata in un'area di un'altra schermata (“principale”).
- Le schermate secondarie consentono di incorporare una schermata all'interno di un'altra in fase di runtime. È possibile includere più schermate secondarie nella schermata principale.
- Il termine sottoschermo si applica sia allo schermo che incorpori, sia all'area dello schermo principale in cui lo posizioni. Questo tutorial riguarda le aree secondarie dello schermo. Le schermate effettive create tramite la transazione SE51 sono chiamate schermate secondarie se definite negli attributi della schermata.
- Quando si utilizza una schermata secondaria, la logica di flusso della schermata incorporata è incorporata anche nella logica di flusso della schermata principale. Pertanto, utilizzare le schermate secondarie sugli schermi è come utilizzare include in Programmi ABAP.
Per utilizzare una schermata secondaria è necessario seguire tre semplici passaggi
- Definire le aree secondarie su uno schermo
- Definire le schermate secondarie adatte
- Includere la schermata secondaria nell'area della schermata secondaria.
Inoltre, è necessario regolare la cornice dello schermo secondario e dello schermo principale. È necessario nominarlo nel campo del nome del campo.
Inoltre, è necessario anche regolare i campi all'interno della schermata secondaria per farli apparire nella schermata principale. Nel caso in cui lo schermo secondario sia definito più grande dell'area disponibile nella schermata principale, sarà visibile solo la parte dello schermo secondario che si adatta all'area disponibile. L'area viene sempre misurata dall'angolo superiore sinistro dello schermo. Pertanto è necessario prestare la dovuta attenzione durante la definizione delle aree delle schermate secondarie e la creazione delle schermate secondarie.
ESEMPIO
Ad esempio, qui abbiamo definito due aree secondarie sullo schermo principale e abbiamo collegato due diversi sottoschermi alle aree corrispondenti. Ogni volta che viene richiamata la schermata principale, viene richiamato il PBO della schermata principale. Ma prima della visualizzazione, vengono richiamati anche i PBO di ogni schermo collegati alle aree secondarie dello schermo principale.
È possibile includere una schermata secondaria utilizzando l'istruzione CALL SUBSCREEN nella logica di flusso della schermata principale.
Per includere una schermata secondaria nell'area della schermata secondaria della schermata principale e richiamare la relativa logica di flusso PBO, utilizzare la seguente istruzione nell'evento PBO della schermata principale:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Questa istruzione assegna un numero alla schermata secondaria all'area della schermata secondaria denominata . È inoltre possibile specificare il programma in cui viene definita la schermata secondaria (opzionale). Se non si specifica esplicitamente il programma, il sistema cerca la schermata secondaria nello stesso programma ABAP del programma principale. Se non trova una schermata secondaria corrispondente, si verifica un errore di runtime. Nello stesso punto è inclusa anche la logica del flusso PBO della schermata secondaria. Questo può richiamare moduli PBO del programma ABAP in cui è definita la schermata secondaria. Alla fine della sottoschermata PBO i campi globali del programma vengono trasferiti a qualsiasi campo della videata con lo stesso nome nella videata secondaria. La logica di flusso PBO della videata parziale può contenere essa stessa ulteriori videate parziali.
Il nome dell'area della sottoschermata deve essere inserita direttamente senza virgolette. È possibile specificare i nomi E sia come valori letterali che come variabili. Se si utilizzano variabili, è necessario dichiarare e compilare variabili con nome identico nel programma ABAP. Il numero dello schermo deve essere lungo 4 caratteri. Se non si assegna una schermata secondaria ad un'area, questa rimane vuota.
Per richiamare la logica del flusso PAI della schermata secondaria, utilizzare la seguente istruzione nella logica del flusso PAI della schermata principale:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Questa dichiarazione include la logica del flusso PAI della schermata secondaria inclusa nell'area della schermata secondaria nell'evento PBO. Questo può richiamare moduli PAI del programma ABAP in cui è definita la schermata secondaria. I dati vengono trasportati tra i campi con nome identico nella schermata secondaria e il programma ABAP quando viene attivato l'evento PAI o nelle istruzioni FIELD corrispondenti nella logica del flusso PAI della schermata secondaria.
Punti da ricordare
- I nomi degli elementi delle schermate secondarie all'interno di una schermata devono essere univoci
- Non dovresti avere OK_CODE o FCODE allegati alla schermata secondaria. L'OK_CODE della schermata principale stessa è OK_CODE della schermata secondaria
- Le schermate secondarie non possono avere moduli di dialogo contenenti SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN o LEAVE TO SCREEN. Ciò causerà un errore di runtime.
- È necessario richiamarlo nella logica del flusso (sia PBO che PAI) della schermata principale.
- CALL SUBSCREEN non è consentito nelle istruzioni CHAIN..ENDCHAIN e LOOP ENDLOOP
- Non può avere un modulo AT EXIT-COMMAND
- I campi utilizzati sono i campi globali. Devono essere dichiarati nella parte superiore
- Se si utilizzano schermate secondarie da un altro programma di dialogo il trasferimento dei dati non avverrà a meno che non si aggiunga un codice specifico.