A volte si presenta la necessità di creare delle dynpro che al loro interno presentano delle righe identiche ripetitive; a tale scopo il sistema SAP mette a disposizione una funzionalità molto potente chiamata “gestione dei loop”. Se, ad esempio, si creasse una dynpro per la visualizzazione di tutti i fornitori in ordine di codice, riportando il codice, la ragione sociale e la località per ciascun fornitore, allora si supporrà una dynpro come la sequenza:

In un caso simile la logica di controllo assume una forma analoga a quanto indicato nelle seguenti righe:

I moduli il cui richiamo è inserito tra le istruzioni LOOP e ENDLOOP sono eseguiti per ognuna delle righe ripetitive presenti nella dynpro in modo automatico, mentre i moduli il cui richiamo è esterno al LOOP sono attivati una sola volta (prima o dopo il LOOP a seconda del punto in cui è inserito il relativo richiamo). Ovviamente le istruzioni che saranno inserite in un modulo dentro il LOOP dovranno riguardare i campi delle righe ripetitive nella dynpro, mentre quelli inseriti fuori dal LOOP comprenderanno le operazioni a livello di intera dynpro. Nel caso rappresentato, ad esempio, il modulo GLOBALEINP potrebbe occuparsi di verificare se l’utente ha premuto uno dei pulsanti operando le opportune scelte, mentre il modulo RIGAOUT potrebbe provvedere alla lettura del successivo record della tabella LFA1 trasferendone il contenuto nei campi della riga corrente. I campi della riga non vanno indicizzati nel module pool, ma trattati come se esistesse una sola riga, sarà la presenza del LOOP nella logica di controllo a gestire automaticamente la ripetitività delle righe. Ciò significa che nel modulo RIGAOUT non si dovrà indicare istruzioni come le seguenti:

E analogamente la definizione dei campi della dynpro nel Module Pool non dovrà riportare la clausola OCCURS, ma sarà trattata come se esistesse una sola riga.
Nella logica di controllo, in caso di dynpro con righe ripetitive, cioè generate utilizzando le apposite funzionalità previste nella fase di Fullscreen editor (utilizzo dei pulsanti per la gestione dei LOOP), le istruzioni LOOP e ENDLOOP devono essere presenti obbligatoriamente, anche quando non è necessario inserire richiami di moduli al loro interno.
Per ulteriori approfondimenti si rimanda all’uso dell’help in linea fornito da SAP. |