SAP ABAP - Sous-programmes
Un sous-programme est une section de code réutilisable. C'est une unité de modularisation au sein du programme où une fonction est encapsulée sous forme de code source. Vous pagez une partie d'un programme vers un sous-programme pour obtenir une meilleure vue d'ensemble du programme principal et pour utiliser la séquence d'instructions correspondante plusieurs fois, comme illustré dans le diagramme suivant.
![](https://assets.edu.lat/sap_abap/images/subroutine_reusable_section.jpg)
Nous avons le programme X avec 3 différents source code blocks. Chaque bloc a les mêmes instructions ABAP. Fondamentalement, ce sont les mêmes blocs de code. Pour rendre ce code plus facile à maintenir, nous pouvons encapsuler le code dans un sous-programme. Nous pouvons appeler ce sous-programme dans nos programmes autant de fois que nous le souhaitons. Un sous-programme peut être défini à l'aide d'instructions Form et EndForm.
Voici la syntaxe générale d'une définition de sous-programme.
FORM <subroutine_name>.
<statements>
ENDFORM.
Nous pouvons appeler un sous-programme en utilisant l'instruction PERFORM. Le contrôle saute à la première instruction exécutable dans le sous-programme <subroutine_name>. Lorsque ENDFORM est rencontré, le contrôle revient à l'instruction suivant l'instruction PERFORM.
Exemple
Step 1- Accédez à la transaction SE80. Ouvrez le programme existant, puis cliquez avec le bouton droit sur le programme. Dans ce cas, il s'agit de «ZSUBTEST».
Step 2- Sélectionnez Créer, puis sélectionnez Sous-programme. Écrivez le nom du sous-programme dans le champ, puis cliquez sur le bouton Continuer. Le nom du sous-programme est «Sub_Display», comme illustré dans la capture d'écran suivante.
![](https://assets.edu.lat/sap_abap/images/create_subroutine.jpg)
Step 3- Ecrivez le code dans le bloc d'instructions FORM et ENDFORM. Le sous-programme a été créé avec succès.
Nous devons inclure l'instruction PERFORM pour appeler le sous-programme. Jetons un coup d'œil au code -
REPORT ZSUBTEST.
PERFORM Sub_Display.
* Form Sub_Display
* --> p1 text
* <-- p2 text
FORM Sub_Display.
Write: 'This is Subroutine'.
Write: / 'Subroutine created successfully'.
ENDFORM. " Sub_Display
Step 4- Enregistrez, activez et exécutez le programme. Le code ci-dessus produit la sortie suivante -
Subroutine Test:
This is Subroutine
Subroutine created successfully
Par conséquent, l'utilisation de sous-programmes rend votre programme plus orienté fonction. Il divise la tâche du programme en sous-fonctions, de sorte que chaque sous-programme est responsable d'une sous-fonction. Votre programme devient plus facile à maintenir car les modifications des fonctions ne doivent souvent être implémentées que dans le sous-programme.