Terminate le fasi di INITIALIZATION e di AT SELECTION-SCREEN (che possono anche mancare) è eseguita la fase di elaborazione vera e propria che deve iniziare con un’istruzione di START-OF-SELECTION che serve essenzialmente ad indicare la fine della fase precedente e l’inizio della nuova. Termina con l’istruzione END-OF-SELECTION.
Si rimanda all’help in linea per approfondire tutte le istruzioni possibili in ABAP/4 e la relativa sintassi.
REPORT – ROUTINES (FORM)
Quando in un programma si incontrano delle istruzioni ripetute in più punti del sorgente, piuttosto che scrivere ripetutamente i medesimi comandi, risulta spesso utile creare dei sottoprogrammi. Se ad esempio, nell’ipotesi di dover più volte convertire una data da 6 caratteri (AAMMGG) alla forma a otto (SSAAMMGG) le possibili istruzioni sono:
DATANASCITA di 6 caratteri
DATAASSUNZIONE di 6 caratteri
DATANASCITA8 di 8 caratteri in cui vogliamo avere DATANASCITA corredata dal secolo nelle prime 2 posizioni.
DATAASSUNZIONE8 di 8 caratteri in cui vogliamo avere DATAASSUNZIONE corredata dal secolo nelle prime 2 posizioni.
DATA6 di 6 caratteri utilizzata per il richiamo della FORM
DATA8 di 8 caratteri calcolata dalla FORM.
DATA6 = DATANASCITA.
PERFORM CAMBIA_DATA.
DATANASCITA8 = DATA8.
DATA6 = DATAASSUNZIONE.
PERFORM CAMBIA_DATA.
DATAASSUNZIONE8 = DATA8.
Al termine del programma occorre inserire la FORM di nome CAMBIA_DATA.

In fase di esecuzione il controllo passerà alla FORM CAMBIA_DATA quando si incontra una istruzione: PERFORM CAMBIA_DATA. Saranno eseguite tutte le istruzioni comprese tra FORM ed ENDFORM per ritornare al programma principale all’istruzione successiva alla PERFORM CAMBIA_DATA.
Con l’utilizzo delle FORM si ottengono due fondamentali risultati:
- si evita la ripetizione delle medesime istruzioni in più punti, rendendo meno onerosa la manutenzione del programma perché in caso di modifica, è sufficiente operare in un solo punto del programma;
- si ottiene un programma principale più semplice e comprensibile demandando alle varie FORM le principali difficoltà di logica.
Una FORM a sua volta può richiamare altre FORM senza alcun limite. E’ possibile richiamare una FORM trasmettendo dei parametri, ad esempio:
PERFORM CAMBIA_DATA USING DATANASCITA DATANASCITA8.
PERFORM CAMBIA_DATA USING DATAASSUNZIONE DATAASSUNZIONE8.
La FORM assumerà il seguente aspetto:

Al momento del primo richiamo della FORM CAMBIA_DATA i campi DATANASCITA e DATANASCITA8 saranno visti dalla FORM CAMBIA_DATA con i nomi DATA6 e DATA8; analogamente al momento del secondo richiamo i campi DATAASSUNZIONE e DATAASSUNZIONE8 prenderanno il posto di DATA6 e DATA8.
Per ulteriori approfondimenti si rimanda all’uso dell’help in linea fornito da SAP. |