Disclaimer: librement inspiré de la documentation officielle SAP.
Bonjour à tous,
Article dédié à tous ceux qui souhaitent découvrir l’ABAP, en français. Je pense particulièrement à un ami, futur rival dans le monde du développement ABAP ?
Nous allons donc survoler les groupes d’instructions de ce langage SAP pour fournir un aperçu des vastes possibilités qui s’offrent au développeur ABAP. Dans d’autres articles, je tâcherai de revenir plus en détails sur certaines…
Généralités
Cela va sans dire, mais ça va mieux en le disant : le code source des développements ABAP est composé d’instructions ABAP (master of the obvious point)
Les commentaires, passage obligé de tout bon développeur, sont de deux types : pour une ligne complète, il faut la démarrer par le caractère *. Pour une fin de ligne, le caractère » (double cote droite, et non chevrons à la française) commentera tout le reste de la ligne.
Une instruction ABAP commencera toujours par un mot-clé (sauf certaines formes d’appels de méthode) et terminera par un point (adieu le point-virgule pour les habitués).
Instructions et mots-clés
Le premier élément d’une instruction ABAP, comme je le disais, est un mot-clé dans la plupart des cas. Ce mot-clé permet de définir le type de l’instruction…
Déclarations
Comme le nom l’indique, de telles instructions permettent de déclarer des objets (au sens large), dont la portée sera fonction de la localisation de l’instruction.
Exemples de mots-clés de déclaration :
- TYPES : pour déclarer des…types !
- DATA : pour déclarer des variables
- CONSTANTS : pour déclarer des… constantes !
- FIELD-SYMBOLS : pour déclarer des pointeurs (à la façon ABAP).
Modularité
Il existe des instruction permettant de moduler le code source. L’ABAP distingue deux types de modularisation.
Par événements, au sens ABAP du terme: Il s’agit d’événements déclenchés automatiquement lors du déroulement d’un programme. Les éots-clés associés permettent d’exécuter du code lors de ces événements. Je ne vais pas trop m’y attarder dans cet article.
Autre modularisation possible, les mots-clés de définition de blocs. Ils permettent de définir des ensembles d’instructions plus ou moins réutilisables et accessibles de divers endroits selon les cas.
- FORM… ENDFORM : permet de déclarer et coder un sous-programme dont la portée devrait être locale au programme (ou groupe de fonctions) dans lequel il est déclaré.
- FUNCTION…ENDFUCTION : permet de déclarer et coder un module fonction qui est un objet à part entière, accessible de n’importe quel code source. Il n’est pas possible d’insérer un tel bloc au sein d’un programme.
- Mais aussi MODULE…ENDMODULE, METHOD…ENDMETHOD : et bien d’autres encore.
Structure de contrôle
Que serait un langage de programmation sans ce type d’instructions ? Les algorithmes ne seraient pas codables… Vous l’aurez compris, je parle des fameux IF, des boucles, etc.
- IF…ELSEIF…ELSE…ENDIF : cela se passe de commentaire !
- CASE…WHEN…WHEN OTHERS…ENDCASE : permet de switcher dans la bonne branche d’exécution du code selon une valeur donnée, comparée de façon exacte avec une autre (je veux dire par là qu’il sera impossible de faire un WHEN > 0 par exemple).
- WHILE…ENDWHILE : une boucle conditionnelle.
- DO…ENDDO : une boucle infinie, à moins d’y mettre une instruction de sortie et/ou un nombre d’itérations.
- LOOP…ENDLOOP : pour boucler sur une table interne.
Instructions d’appel
Certaines instructions permettent d’appeler d’autres éléments de code, comme un sous-programme ou un module fonction. Il est bien sûr possible de passer des paramètres lors de ces appels.
- PERFORM : pour appeler un sous-programme.
- CALL : pour appeler une méthode, un module fonction, une transaction.
- SUBMIT : pour exécuter un autre programme.
Instructions opérationnelles
Pour appliquer certains traitements sur les variables.
- WRITE : habituellement pour écrire à l’écran, mais peut enregistrer le résultat dans une variable, avec différents formats.
- MOVE : équivalent du =.
- ADD : équivalent du +.
Base de données
Pour s’interfacer avec la base de donn2es, il existe des instructions, évidemment… On distingue l’open SQL du SQL natif.
- Open SQL : SELECT, INSERT, DELETE uniquement ou quasiment. C’est le plus utilisé dans le code ABAP, car les programmes ne créent que rarement des tables, ni les suppriment, etc.
- SQL natif : comme son nom l’indique. Ici, on tapera directement dans la base de données, et non via la couche d’abstraction fournie par SAP. Il faudra donc garder en tête qu’un tel code dépend du SGBD utilisé…
Cet article touche à sa fin, mais il ne s’agit que d’un début. La suite viendra, plus détaillée, mais cela demandera un peu plus de temps.