Blog
Che cos’è una form routine (sub-routine) e come si usa in un programma ABAP?
Le form routine (chiamate anche sub-routine o subroutine) sono utilizzate principalmente per la modularizzazione del codice ABAP.
Il linguaggio ABAP fornisce piccoli frammenti di codice, modulari e autonomi, che possono essere richiamati da un programma ABAP. Queste sub-routine possono essere utilizzate più volte nel programma, senza dover essere riscritte ogni volta.
Lo facciamo non solo per essere più veloci nella scrittura del codice, ma anche per avere dei programmi più leggibili, leggeri, modulari e “puliti”.
Vediamo quale è la struttura della dichiarazione di una form routine:
Il nome della subroutine può avere fino a 30 caratteri.
Il codice della form routine inizia con l’istruzione “FORM” e termina con “ENDFORM”.
Vediamo gli altri comandi.
- Dichiarazione “
USING
“: Se le variabili non cambiano e sono usate solo in lettura, si può usare questa dichiarazione.USING
in pratica trasferisce i parametri dal programma principale alla sotto routine. La sottoroutine userà i parametri in sola lettura. - Dichiarazione “
CHANGING
“: Se le variabili verranno modificate nella routine, è possibile utilizzare questa istruzione. ConCHANGING
la sub routine potrà modificare i parametri. - Dichiarazione “
TABLES
“: Se avete bisogno di una variabile di tabella nella routine, potete usare questa istruzione. Il comandoTABLES
in ABAP viene utilizzato per passare tabelle (o array) come parametri al sotto-programma. Il sotto-programma potrà accedere e manipolare i dati all’interno di queste tabelle.
Vediamo che aspetto ha nell’editor ABAP:
il comando PERFORM
viene utilizzato per chiamare un sotto-programma o un blocco di codice all’interno dello stesso programma.
Per creare una form routine, basta fare doppio clic sul nome:
Dopo aver fatto doppio clic sul nome della routine, si aprirà la schermata di conferma di SAP,
fare clic sul pulsante Sì.
A questo punto si aprirà una schermata a comparsa come questa. Ricordiamo che il comando INCLUDE
viene utilizzato per includere un programma esterno all’interno di un altro programma ABAP.
Questo è utile per suddividere il codice in moduli riutilizzabili, migliorare la manutenibilità del codice e facilitare la collaborazione tra sviluppatori.
In pratica la sub-routine può essere definita in due modi:
- Nuovo include (
NEW INCLUDE
): Il sistema crea un nuovo include e copia il codice di definizione della routine di form in questo include - Programma principale (
MASTER PROGRAM
): Il sistema copia le definizioni delle routine direttamente nel codice del programma principale.
Selezioniamo MASTER PROGRAM
e ABAP aggiungerà il seguente codice di definizione della routine del modulo.
Diamo un’occhiata a un esempio pratico.
Immaginate di voler aggiungere 3 record con i nomi di studenti ad una tabella interna di SAP ABAP.
Esistono diversi modi per aggiungere record alla tabella interna.
Vediamo un esempio di codice con il “vecchio stile” (ossia con il codice ridondante):
Vediamo ora un esempio di programma ABAP più “pulito” (senza ridondanze, usando le form routine):
Quando si raggiunge l’istruzione PERFORM
durante l’esecuzione del programma la subroutine creata (nel nostro caso, add_student) viene attivata.
I due parametri “numero progressivo” (p_ordernumber) e “nome dello studente” (p_name) vengono passati nel modulo, assegnati alla tabella interna e aggiunti.
Una volta raggiunto il comando ENDFORM
l’elaborazione torna all’istruzione successiva a PERFORM
. Da qui continua normalmente.
Le subroutine vengono chiamate una sola volta tramite ABAP.
Se si desidera richiamarle più volte, è necessario aggiungere ogni volta l’istruzione PERFORM
nel punto desiderato.
Vuoi rendere il tuo curriculum più attrattivo? Vuoi capire come funziona ABAP?
Formazione a distanza specializzata | Garanzia 100% soddisfatti o rimborsati | Oltre 1000 studenti
[…] variabile locale è una variabile definita all’interno di un blocco di codice specifico (una subroutine, una funzione, etc.). Esiste solo durante l’esecuzione del blocco di codice in cui è stata […]