SAP ABAP - Modules de fonction

Les modules de fonction constituent une partie importante d'un système SAP, car depuis des années, SAP a modulaire le code à l'aide de modules de fonction, permettant la réutilisation du code, par eux-mêmes, leurs développeurs et également par leurs clients.

Les modules de fonction sont des sous-programmes contenant un ensemble d'instructions réutilisables avec des paramètres d'importation et d'exportation. Contrairement aux programmes Inclure, les modules fonction peuvent être exécutés indépendamment. Le système SAP contient plusieurs modules fonction prédéfinis qui peuvent être appelés à partir de n'importe quel programme ABAP. Le groupe de fonctions agit comme une sorte de conteneur pour un certain nombre de modules de fonction qui appartiendraient logiquement ensemble. Par exemple, les modules de fonction pour un système de paie HR seraient regroupés dans un groupe de fonctions.

Pour voir comment créer des modules de fonction, le générateur de fonctions doit être exploré. Vous pouvez trouver le générateur de fonctions avec le code de transaction SE37. Tapez simplement une partie du nom d'un module de fonction avec un caractère générique pour illustrer la manière dont les modules de fonction peuvent être recherchés. Tapez * montant * puis appuyez sur la touche F4.

Les résultats de la recherche seront affichés dans une nouvelle fenêtre. Les modules de fonction sont affichés dans les lignes sur fond bleu et leurs groupes de fonctions dans les lignes roses. Vous pouvez regarder plus loin le groupe de fonctions ISOC en utilisant l'écran Object Navigator (Transaction SE80). Vous pouvez voir une liste des modules de fonction et également d'autres objets contenus dans le groupe de fonctions. Considérons le module fonction SPELL_AMOUNT. Ce module fonction convertit les chiffres numériques en mots.

Créer un nouveau programme

Step 1 - Accédez à la transaction SE38 et créez un nouveau programme appelé Z_SPELLAMOUNT.

Step 2- Entrer un code afin qu'un paramètre puisse être défini où une valeur pourrait être saisie et transmise au module fonction. L'élément de texte text-001 lit ici «Entrez une valeur».

Step 3- Pour écrire le code pour cela, utilisez CTRL + F6. Après cela, une fenêtre apparaît où «FONCTION D'APPEL» est la première option dans une liste. Entrez 'spell_amount' dans la zone de texte et cliquez sur le bouton Continuer.

Step 4- Certains codes sont générés automatiquement. Mais nous devons améliorer l'instruction IF pour inclure un code pour ÉCRIRE un message à l'écran pour dire «Le module fonction a renvoyé une valeur de: sy-subrc» et ajouter l'instruction ELSE afin d'écrire le résultat correct lorsque la fonction module réussit. Ici, une nouvelle variable doit être configurée pour contenir la valeur renvoyée par le module fonction. Appelons cela par «résultat».

Voici le code -

REPORT Z_SPELLAMOUNT. 
data result like SPELL. 

selection-screen begin of line. 
selection-screen comment 1(15) text-001. 

parameter num_1 Type I. 
selection-screen end of line. 
CALL FUNCTION 'SPELL_AMOUNT' 
EXPORTING 
AMOUNT = num_1 
IMPORTING 
IN_WORDS = result. 

IF SY-SUBRC <> 0. 
   Write: 'Value returned is:', SY-SUBRC. 
else. 
   Write: 'Amount in words is:', result-word. 
ENDIF.

Step 5- La variable renvoyée par le module fonction est appelée IN_WORDS. Configurez la variable correspondante dans le programme appelé «résultat». Définissez IN_WORDS à l'aide de l'instruction LIKE pour faire référence à une structure appelée SPELL.

Step 6- Enregistrez, activez et exécutez le programme. Entrez une valeur comme indiqué dans la capture d'écran suivante et appuyez sur F8.

Le code ci-dessus produit la sortie suivante -

Spelling the Amount 
Amount in words is: 
FIVE THOUSAND SIX HUNDRED EIGHTY