Introducing ABAP Syntax

Objectives

After completing this lesson, you will be able to:
  • Expliquer les notions de base de la syntaxe ABAP
  • Définir des types de données, des variables, des constantes et des littéraux et des instructions chaînées

Notions de base de la syntaxe ABAP

Vue d'ensemble

À la fin de ce module, le programmeur débutant travaillera avec les bases de la syntaxe ABAP, telles que les types de données, les variables, les constantes et les littéraux, les instructions chaînées, l'ajout de commentaires au code source, l'exécution de calculs arithmétiques, l'utilisation d'informations système, le débogage d'un programme, la création d'une liste ABAP et le traitement de chaînes de caractères à l'aide du langage ABAP.

Fonctionnalités de base du langage ABAP

Le langage ABAP comprend des phrases individuelles (instructions). Les éléments importants à retenir concernant les instructions ABAP sont les suivants :

  • Le code ABAP est constitué d'instructions individuelles.
  • Le premier mot d'une instruction est appelé mot-clé ABAP.
  • Chaque extrait se termine par une période
  • Un espace doit séparer deux mots.
  • Les instructions peuvent être mises en retrait pour améliorer la lisibilité du code
  • Peut contenir des ajouts et des opérandes (selon le mot-clé utilisé)
  • Peut couvrir plusieurs lignes
  • Les mots-clés, les ajouts et les opérandes peuvent utiliser des majuscules ou des minuscules.
  • Le système d'exécution ABAP ne fait pas de distinction entre les cas. Il est d'usage d'écrire des mots-clés et leurs ajouts en majuscules et des opérandes en minuscules.

Objets de données dans ABAP

Variables, constantes et littéraux

ABAP connaît trois types d'objets de données : variables, constantes et littéraux.

Un objet de données dans le code ABAP représente une section réservée de la mémoire du programme. ABAP connaît trois types d'objets de données : variables, constantes et littéraux.

Variables
Une variable est un objet de données avec du contenu qui peut être modifié lors de l'exécution. Une variable est identifiée par un nom. Le nom est également utilisé pour adresser l'objet de données lors de l'exécution. La valeur de départ d'une variable ABAP est bien définie.
Constantes
Les constantes sont comme les variables. Cependant, contrairement aux variables, la valeur est codée en dur dans le code source et ne doit pas être modifiée lors de l'exécution. Comme les variables, les constantes ont un nom sous lequel elles peuvent être réutilisées.
Littéraux

La valeur des littéraux est également codée en dur dans le code source. Contrairement aux constantes, les littéraux n'ont pas de nom. Pour cette raison, vous ne pouvez pas réutiliser un littéral. Utilisez uniquement des littéraux pour spécifier les valeurs pour les constantes et les valeurs de départ pour les variables.

Les objets de données ABAP sont toujours typés : chaque objet de données est basé sur un type de données qui détermine les informations qu'il peut contenir. Le type de données d'un objet de données ABAP reste le même tout au long de l'exécution d'un programme.

Déclaration de variables

Les variables sont déclarées à l'aide de DATA, TYPE et éventuellement du mot-clé VALUE.

Une variable dans le code ABAP est déclarée avec le mot-clé DATA.

Une instruction DATA se compose des parties suivantes :

DATA

Le mot-clé DATA est suivi du nom de la variable. Le nom d'une variable peut comporter jusqu'à 30 caractères. Il peut contenir les caractères A-Z, les chiffres 0 à 9 et le trait de soulignement. Le nom doit commencer par une lettre ou un trait de soulignement.

TYPE
Le type de la variable est indiqué après l'ajout TYPE. Dans l'exemple, les types intégrés I (pour les nombres entiers) et string (chaîne de caractères de longueur variable) sont utilisés.
VALEUR
L'ajout de VALEUR est facultatif et vous pouvez l'utiliser pour spécifier une valeur de début pour la variable. Si VALUE est manquante, la variable est créée avec une valeur initiale qui dépend du type technique de la variable.

Utilisation des types de données

ABAP prend en charge 13 types intégrés ou types définis par l'utilisateur à l'aide du mot-clé TYPES ou du Dictionnaire ABAP.

ABAP propose les sources de types de données suivantes :

ABAP intégré (types ABAP prédéfinis)

ABAP a un ensemble de 13 types de données prédéfinis pour les objets de données simples numériques, alphanumériques et binaires.

Instructions TYPES

L'instruction TYPES vous permet de définir des types de données prédéfinis et de les réutiliser à différents endroits, en fonction de l'emplacement de la définition.

Dictionnaire ABAP
Le dictionnaire ABAP fait partie de l'ABAP Repository. Il gère entre autres les types de données globaux disponibles dans tout le système. Les types de Dictionnaire ABAP définissent non seulement des propriétés techniques, mais ajoutent également des informations sémantiques, par exemple des étiquettes. Les types de Dictionnaire ABAP sont particulièrement utiles lors de l'implémentation des interfaces utilisateur.

ABAP intégré (types ABAP prédéfinis)

Exemples de types intégrés

Certains types ABAP standard importants (types de données intégrés) sont répertoriés dans la figure. Les types ABAP sont classés comme types de données complets ou incomplets. Les types de données complets contiennent déjà des spécifications de longueur fixe spécifiques au type. Les types de données incomplets ont une longueur par défaut mais permettent d'indiquer une longueur différente. Dans le cas du type P, vous pouvez également indiquer un nombre de décimales. 

Types ABAP complets

CHAÎNE DE TYPE

Une zone de type chaîne est une zone alphanumérique de longueur variable. Le système d'exécution ABAP alloue et libère de la mémoire pour optimiser la gestion des variables de chaîne. Vous ne pouvez pas influencer ce comportement directement. La longueur maximale d'une chaîne est déterminée par les options définies par l'administrateur système. Cependant, dans la pratique, on parle de cordes étant de longueur illimitée.

TYPE I

Un champ de type I est un champ numérique qui contient un nombre entier. Le système alloue 4 octets (32 bits) pour une telle zone qui autorise des valeurs comprises entre -2^31 et +2^31.

TYPE D

Une zone de type D représente une date. Dans ABAP, la date est toujours au format AAAAMMJJ (sans séparateurs). Le système convertit ce format en fonction des paramètres régionaux actuels avant l'affichage de la valeur dans l'interface utilisateur. De même, lorsque l'utilisateur saisit une date, le système la convertit au format ABAP avant que vous ne commenciez à la traiter.

TYPE T

Une zone de type T représente une heure. Dans ABAP, il a le format HHMMSS (sans séparateurs au format 24 heures). Si les paramètres régionaux actuels utilisent un format de 12 heures, le système convertit automatiquement les valeurs.

Types ABAP incomplets

TYPE C
Une zone de type C est une zone alphanumérique de longueur spécifique. Vous indiquez la longueur en caractères ; le système d'exécution affecte alors le double du nombre d'octets pour adapter la zone. Vous utilisez ce type lorsqu'une longueur fixe est importante.
TYPE N

Une zone de type N est une zone de caractères d'une longueur spécifique contenant uniquement des chiffres. Cette zone doit contenir une séquence de chiffres que vous ne voulez pas considérer comme un nombre et effectuer des calculs avec, par exemple, il peut s'agir d'un matricule ou d'un centre de coûts.

TYPE P

Une zone de type P (P pour "Nombre condensé") est une zone qui contient une valeur numérique avec un nombre donné de chiffres et une décimale. Utilisez ce type pour les nombres avec une décimale ou lorsque le type de plage de valeurs I n'est pas suffisant.

Utilisation des types locaux

Les types définis par l'utilisateur sont définis à l'aide du mot-clé TYPES.

Exemple

Code Snippet
12
TYPES my_type TYPE p LENGTH 3 DECIMALS 2. DATA my_var TYPE my_type.

Au lieu d'utiliser directement des types intégrés dans l'instruction DATA, vous pouvez utiliser l'instruction TYPES pour définir d'abord le type. Vous pouvez ensuite utiliser le type dans une instruction DATA après l'ajout de TYPE.

Utilisation des types globaux - Dictionnaire ABAP

Exemple de type défini par l'utilisateur dans le Dictionnaire ABAP

Dans un système SAP, il existe des milliers d'unités économiques, telles que les codes pays, les divisions, les numéros d'articles, les exercices comptables, les centres de coûts, etc. La définition de ces entités dans chaque programme serait techniquement possible à l'aide des types ABAP intégrés que vous venez de voir. Cependant, cela nécessiterait beaucoup de travail et serait sujet aux erreurs. À la place, SAP fournit le Dictionnaire ABAP, l'archive centrale pour les types de données importants et l'outil que vous utilisez pour créer des tables de base de données.

Dans le Dictionnaire ABAP, les unités économiques individuelles sont décrites par des éléments de données. Dans l'exemple de variable, la variable aéroport est catégorisée avec l'élément de données /DMO/AIRPORT_ID.

Lorsque vous appuyez sur la touche F2 pour afficher les détails du type de données, vous pouvez voir que, techniquement, ce type est un caractère de longueur 3. En outre, l'élément de données fournit la description « Scénario de référence de vol : ID d'aéroport » et les quatre descripteurs de zone de longueur différente.

Lorsque vous appuyez sur la touche F3 pour accéder à la définition du type, une nouvelle vue s'ouvre avec l'éditeur des éléments de données.

Constantes et littéraux

Déclaration de constantes

Les constantes peuvent être définies à l'aide du mot-clé CONSTANTS.

Constantes

Une constante est un objet de données avec une valeur codée en dur qui ne doit pas être modifiée pendant l'exécution. Tout accès en écriture à une constante entraînera une erreur de syntaxe.

Dans ABAP, vous déclarez une constante à l'aide du mot-clé CONSTANTS. Une instruction CONSTANT se compose des mêmes parties qu'une instruction DATA. La seule différence réside dans le fait que l'option VALUE est obligatoire.

Vous pouvez utiliser l'option VALUE dans la forme spéciale VALUE IS INITIAL si la valeur de la constante doit être la valeur initiale spécifique au type. Les valeurs initiales sont normalement zéro pour les types numériques et un espace pour les types de caractères. Il n'existe aucune valeur nulle dans ABAP.

Déclaration des littéraux

ABAP prend en charge les littéraux numériques, textuels et de chaînes

Littéraux

Les littéraux sont des objets de données anonymes avec une valeur codée en dur. Les littéraux sont souvent utilisés pour définir des valeurs non initiales pour les constantes et des valeurs de départ non initiales pour les variables.

Techniquement, vous pouvez utiliser des littéraux n'importe où dans votre code. Pour prendre en charge la lisibilité et la maintenabilité, il est recommandé de définir et d'utiliser des constantes.

ABAP a trois types de littéraux :

  • Les littéraux de nombres sont des nombres entiers avec ou sans signe. Les littéraux numériques ont généralement le type de données I. Si la valeur est trop grande pour le type de données I, le type p est utilisé avec une longueur suffisante et sans décimale.
  • Les littéraux de texte sont des types de caractères dans une paire de guillemets simples (' ).
  • Les littéraux de chaîne sont de type STRING et sont entre guillemets inverses ( ` ). Ils doivent être utilisés pour fournir des valeurs pour les objets de données de type chaîne.

Instructions chaînées

Exemple d'instruction TYPES chaînée

Vous pouvez également définir des types structurés dans le code ABAP à l'aide de l'instruction TYPES. La définition de la structure commence par l'instruction TYPES BEGIN OF <structure type name>.et se termine par TYPES END OF <structure type name>. In entre, vous nommez chaque composant et indiquez son type dans une instruction TYPES supplémentaire.

Un format compact n'utilise le mot-clé TYPES qu'une seule fois, suivi de deux points ( : ). L'option BEGIN OF, l'option END OF et les définitions de composants intermédiaires sont ensuite séparées par des virgules.

On parle alors d'instruction de chaîne.

Remarque

Auparavant, les instructions de chaîne étaient très utilisées dans ABAP. De nos jours, il est uniquement recommandé de combiner des extraits de compte étroitement liés.

Commentaires dans ABAP

Exemple de commentaire à l'aide du symbole étoile

Un commentaire est une explication ajoutée à un programme pour aider les autres à comprendre le code. Les commentaires sont un morceau de code source qui est ignoré par le compilateur ou l'interpréteur.

Dans ABAP, il existe deux façons différentes de définir un morceau de code source comme commentaire :

  • Le signe étoile (*) dans la première colonne identifie la ligne entière comme commentaire.
  • Le guillemet double (") identifie le reste de la ligne, c'est-à-dire le code à droite comme commentaire.