Les boucles

A- Définition

Les boucles sont des structures qui nous permettent de répéter une série d'instructions plusieurs fois. Il existe plusieurs types de boucles : while , do… loop . Certaines sont plus adaptées que d'autres selon les cas.

B- La boucle WHILE est une structure de contrôle permettant d'exécuter un ensemble d'instructions de façon répétée sur la base d'une condition booléenne. La boucle while peut être considérée comme une répétition de l'instruction if.

Ce qui donne en ABAP :

While [Condition_Logique] (doit être vrai pour rentrer dans la boucle).

[Bloc d'instruction].

endwhile.

C- La boucle DO : permet de répéter l'exécution d'une séquence d'instructions, soit un nombre determiner de fois ou de sortir de la boucle avec avec EXIT que l'on conditionne.

Ce qui donne en ABAP :

DO [expression] TIMES .

[Bloc d'instruction].

ENDDO.

ou

DO.

if [Condition_Logique] .

EXIT. "pour sortir de la boucle DO

endif.

ENDDO.

D - La boucle LOOP AT itab exécute le bloc d'instructions entre LOOP et ENDLOOP une fois pour chaque ligne lue.

  • La réponse de sortie résultat détermine comment et où le contenu de la rangée sont lus.

  • La clé de table avec laquelle la boucle est exécutée peut être déterminée dans cond . Soit toutes les lignes sont lues, soit des conditions cond sont spécifiées pour restreindre les lignes lues.

  • AT ... ENDAT peut être utilisé pour définir des structures de contrôle pour le traitement au niveau du groupe .

Ce qui donne en Abap :

LOOP AT itab [result] [cond].   ... [AT ... ... ENDAT.]   ... ENDLOOP.

avec [result] :

... { INTO wa }|{ ASSIGNING <fs> [CASTING]}|{ REFERENCE INTO dref }|{ TRANSPORTING NO FIELDS } ..

avec [cond] :

... [USING KEY keyname][FROM idx1][TO idx2][WHERE log_exp|(cond_syntax)] ...

Détail [AT ... ENDAT]

LOOP AT itab result [cond]. [AT FIRST.      ...    ENDAT.][AT NEW comp1.        ...      ENDAT. [AT NEW comp2.          ...        ENDAT. [...]]][ ... ][[[...]        AT END OF comp2.          ...        ENDAT.]      AT END OF comp1.        ...      ENDAT.][AT LAST.      ...   ENDAT.] ENDLOOP.

autres exemples :

- Vérification des select-option, pour vérifier les valeurs saisies :

Loop at S_VENDO.

use S_VENDO-low

endloop.

- Lire et/ou modifier les valeurs de l'écran:

LOOP AT SCREEN INTO wa.   ... ENDLOOP.

des exemples... du code...

WHILE... ENDWHILE

DO... ENDDO

LOOP AT... ENDLOOP

Exemple pris sur MF BC_GLOBAL_UPDATE_BOOK

Steeven

Vous allez entrer dans un monde que vous n'auriez jamais cru possible de créer.

© 2021 | MultimediaLearn