Introduction à ABAP : types de données, OperaTors & Editor – Tutoriel

⚡ Résumé intelligent

L'introduction à ABAP couvre le langage SAP Conçu pour le développement d'applications sur le système R/3, ce document explique les types de données, les opérateurs, les instructions de contrôle, les tables internes et l'éditeur SE38, point de départ de tout programme ABAP.

  • 🔤 Syntaxe de déclaration : La commande DATA variable_name TYPE variable_type déclare chaque variable en ABAP.
  • (I.e. Types de données: I, F et P contiennent des nombres ; C, D, N et T contiennent des caractères ; X contient des données hexadécimales.
  • (I.e. Operateurs : Les opérateurs arithmétiques modifient les valeurs, tandis que les opérateurs logiques tels que EQ, NE, GT et LT déterminent les décisions.
  • (I.e. Déclarations de contrôle : Les instructions IF, CASE, WHILE et DO déterminent quelles lignes d'un programme sont effectivement exécutées.
  • 📋 Tables internes : Une table interne stocke plusieurs lignes en mémoire et constitue l'élément central de tout rapport ABAP.
  • ️ Rédacteur en chef: La transaction SE38 est l'éditeur ABAP, où les programmes sont écrits, vérifiés et exécutés.

Introduction à la SAP ABAP

Qu'est-ce qu'ABAP ?

ABAP signifie Advanced Business Application Programming. C'est un langage de programmation pour le développement d'applications métier.ping applications pour le SAP Système R/3.

La dernière version d'ABAP s'appelle ABAP Objects et prend en charge la programmation orientée objet. SAP exécutera des applications écrites à l'aide d'ABAP/4, la version antérieure d'ABAP, ainsi que des applications utilisant des objets ABAP.

Cette introduction ne prétend pas tout documenter Langue ABAP Ce livre présente rapidement les concepts clés, vous permettant ainsi de commencer à écrire des programmes fonctionnels avant de passer à des sujets plus avancés.

Types de données

Chaque programme ABAP commence par déclarer les données avec lesquelles il va travailler.

Syntaxe pour déclarer une variable dans ABAP –

DATA Variable_Name TYPE Variable_Type.

Exemple :

DATA employee_number TYPE I.

Voici la liste des types de données pris en charge par ABAP.

Type de données Longueur du champ initial Longueur de champ valide Valeur initiale Sens
Types numériques
I 4 4 0 Entier (nombre entier)
F 8 8 0 Nombre à virgule flottante
P 8 1 – 16 0 Numéro emballé
Types de caractères
C 1 1 – 65535 '…' Champ de texte (caractères alphanumériques)
D 8 8 «00000000 ' Champ Date (format : AAAAMMJJ)
N 1 1 – 65535 '0… 0' Champ de texte numérique (caractères numériques)
T 6 6 «000000 ' Champ Heure (format : HHMMSS)
Type hexadécimal
X 1 1 – 65535 X'0 … 0′ Champ hexadécimal

Les huit types mentionnés ci-dessus sont les types classiques à longueur fixe. ABAP propose également deux types à longueur variable que les débutants rencontrent presque immédiatement : STRING pour des textes de toute longueur, et XSTRING pour les données binaires de toute longueur.

ABAP Operajeudi

Une fois les données déclarées, ce sont les opérateurs qui les modifient et les comparent.

Attribution de valeurs

a = 16.
MOVE 16 TO a.
WRITE a TO b.

Ces trois instructions déplacent une valeur. Le signe égal est la forme moderne, tandis que MOVE et WRITE TO sont les anciens équivalents que l'on rencontre encore dans les programmes existants.

Opérations arithmétiques

COMPUTE a = a * 100.

ABAP prend également en charge ADD et SUB.TRACT, MULTIPLY et DIVIDE peuvent être utilisés comme mots clés indépendants, mais la forme COMPUTE présentée ci-dessus est celle qui est le plus souvent utilisée.

Les opérateurs logiques

Les opérateurs logiques renvoient vrai ou faux, et c'est ce que testent toutes les instructions de contrôle de la section suivante. Chaque opérateur possède une forme textuelle et une forme symbolique, et les deux sont interchangeables.

Forme lexicale Forme symbolique Sens
EQ = Égal à
NE <> Pas égal à
GT > Supérieure à
GE >= Plus grand ou égal à
LT < Less que
LE <= Less supérieur ou égal à

Déclarations de contrôle

Les instructions de contrôle utilisent les opérateurs logiques ci-dessus pour déterminer quelles lignes de code sont exécutées et à quelle fréquence.

SI … FIN SI

IF [NOT] exp [ AND / OR [NOT] exp ].
  ........
[ELSEIF exp.
  .......]
[ELSE.
  .......]
ENDIF.

Déclaration CASE

CASE variable.
  WHEN value1.
    .........
  WHEN value2.
    .........
  [WHEN OTHERS.
    .........]
ENDCASE.

boucle WHILE

WHILE <logical expression>.
  .....
ENDWHILE.

Boucle DO

DO <n> TIMES.
  .....
ENDDO.

Une boucle WHILE s'exécute tant que sa condition est vraie. Une boucle DO s'exécute un nombre de fois fixe, ou indéfiniment jusqu'à ce qu'une instruction EXIT l'arrête.

Tables internes en ABAP

Les variables isolées sont rarement suffisantes. Les programmes métier lisent plusieurs lignes simultanément, et la table interne est la structure qui les stocke en mémoire.

Une table interne est un tableau dynamique. Elle n'a pas de taille fixe, sa durée de vie est limitée à celle du programme, et elle constitue la méthode standard pour transférer des lignes entre la base de données et l'écran.

" Declare an internal table and a work area
DATA: lt_employees TYPE TABLE OF pa0001,
      ls_employee  TYPE pa0001.

" Fill it from the database
SELECT * FROM pa0001 INTO TABLE lt_employees UP TO 10 ROWS.

" Read it row by row
LOOP AT lt_employees INTO ls_employee.
  WRITE: / ls_employee-pernr, ls_employee-ename.
ENDLOOP.

Les trois opérations ci-dessus couvrent la plupart des tâches quotidiennes : déclarer la table, la remplir avec une requête SELECT, puis la parcourir avec une boucle LOOP AT. APPEND ajoute une ligne, READ TABLE en trouve une et DELETE supprime les lignes correspondant à une condition.

Éditeur ABAP/4

Toute la syntaxe ci-dessus est saisie en un seul endroit.

Transaction SE38 ouvre l'éditeur ABAP, où vous passerez la majeure partie de votre temps en tant que développeur à créer et modifier des programmes.

Éditeur ABAP/4

L'éditeur ABAP/4, transaction SE38

Comment écrire votre premier programme ABAP

L'écran ci-dessus illustre les étapes suivantes. La séquence ci-dessous génère un rapport fonctionnel en quelques minutes.

  1. Ouvrez l'éditeur. Entrez le code de transaction SE38 dans le SAP Champ de commande de l'interface graphique et appuyez sur Entrée.
  2. Nommez le programme. Saisissez un nom commençant par Z or Y, Par exemple ZHELLO_WORLDCes deux lettres constituent l'espace de noms du client, et SAP garantit qu'il ne les écrasera jamais lors d'une mise à niveau.
  3. Créez-le. Cliquez à nouveau Créer, saisissez une brève description et choisissez Programme exécutable comme type.
  4. Attribuer un colis. Choisissez Objet local Pour les exercices pratiques. Un objet local reste dans votre système et ne nécessite aucune requête de transport.
  5. Écrivez le code.
REPORT zhello_world.

DATA employee_name TYPE string.
employee_name = 'Guru99'.

WRITE: / 'Hello, ABAP!',
       / 'Welcome', employee_name.
  1. Vérifiez la syntaxe. Presse Ctrl + F2La barre d'état signale toute erreur et la ligne qui l'a provoquée.
  2. Activer le programme. Presse Ctrl + F3Un programme inactif ne peut pas s'exécuter.
  3. Exécuter. Presse F8La liste de sortie s'ouvre et affiche les deux lignes WRITE.

La barre oblique dans l'instruction WRITE force un saut de ligne. La supprimer permet d'imprimer tout sur une seule ligne, ce qui constitue la première habitude de formatage que la plupart des débutants acquièrent.

Transaction ABAP courante Codes

Quelques codes de transaction suffisent pour couvrir presque tout ce dont un nouveau développeur ABAP a besoin.

Transaction Interet
SE38 Éditeur ABAP. Créez, modifiez, vérifiez et exécutez des programmes.
SE80 Navigateur d'objets. Un espace de travail unique pour les programmes, les classes, les packages et les écrans.
SE11 Dictionnaire ABAP. Définir et examiner les tables de base de données, les éléments de données et les domaines.
SE16N Explorateur de données. Consultez le contenu de n'importe quelle table sans écrire de requête SELECT.
SE37 Générateur de fonctions. Créez et testez des modules de fonctions.
SE24 Générateur de classes. Créez des classes globales pour les objets ABAP.
ST22 Analyse du vidage mémoire. Lecture de l'erreur d'exécution lors de la terminaison d'un programme.

SE38 et SE11 suffisent pour générer un premier rapport. ST22 devient l'outil le plus précieux du groupe dès qu'un programme plante.

FAQ

Z et Y constituent l'espace de noms client. SAP Le programme ne sera jamais livré avec des objets comportant ces préfixes ; une mise à jour ne peut donc pas écraser votre programme. Les noms situés en dehors de cet espace de noms risquent d’être remplacés.

ABAP/4 est la version procédurale, basée sur des rapports et des sous-programmes. ABAP Objects ajoute les classes, les interfaces et l'héritage. Les deux versions s'exécutent sur le même système, permettant ainsi la coexistence de l'ancien et du nouveau code.

Utilisez le type P, qui conserve les décimales avec précision, comme l'exige la monnaie. Le type F, qui est un nombre à virgule flottante, introduit des erreurs d'arrondi qui rendent les totaux financiers peu fiables.

Oui. Un assistant IA peut analyser un dump, traduire le pseudocode en ABAP et suggérer une boucle plus propre. Il est toujours recommandé d'effectuer une vérification syntaxique, car le code généré peut faire référence à des tables absentes de votre système.

À vérifier absolument. Le code généré ignore souvent les contrôles d'autorisation, les règles de performance et la liste des API publiées par ABAP Cloud. Considérez-le comme une première ébauche, puis testez-le comme vous le feriez pour n'importe quel code.

Résumez cet article avec :