Vous êtes sur la page 1sur 12

PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS

TP4 4ème Année Management N. ZIDANE

4. DÉVELOPPEMENT ABAP
Objectifs

À la fin de cet atelier, vous serez à même d'effectuer les tâches suivantes :
 Utiliser la transaction SE80
 Appliquer la transaction SE38
 Programmer des applications des instructions de base data,move,write

Durée approximative de cet atelier : 3 heures

  Le langage ABAP est le langage de programmation propriétaire de SAP. Ce langage permet


le développement de fonctionnalités supplémentaires au système. Nous noterons que nous
travaillons principalement avec des bases de données et que l’ABAP est surtout un langage de
traitement de données. Un programme en ABAP est souvent découpé en trois parties :
récupération des données, traitement des données puis édition et mise à jour des données.
C’est pour cette raison que l’accès aux données se fait via des commandes similaires aux
commandes SQL. Il est d’ailleurs possible d’utiliser des commandes SQL dans un programme
ABAP afin de travailler directement avec la base de données. Mais l’utilisation des commandes
SQL est déconseillée par SAP.
Une aide sur le langage ABAP est disponible à tout moment en appuyant sur la touche F1 après
avoir placé le curseur sur un mot-clé. Cette aide est très complète et donne l’ensemble des
options associées à un mot clé.
Vous pourrez aussi consulter l’aide en ligne à l’adresse suivante : http://help.sap.com/

1
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

4.1 Utiliser la transaction SE80


Après avoir sélectionné la transaction se80 dans les favoris ou tapé se80 sur la ligne de
commande.

Cliquez sur le bouton Edit object puis cliquez sur


sélectionnez l’onglet Program et cliquer ici

La liste des programmes s’affiche :

2
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

4.2 Utiliser la transaction SE38


Pour développer en ABAP, il faut lancer la transaction se38 pour obtenir l’éditeur.

 
Création d'un programme ABAP
Pour créer un programme en ABAP, il faut spécifier :
 Le nom du programme
 Son libellé
 Son type
 Son statut
 Sa classe de développement
De plus, vous pouvez éventuellement spécifier l’application associée, la base de données
logique utilisée ainsi que le groupe d’autorisation.
Pour lancer son programme ABAP il faut préalablement avoir :
sauvegardé..................
Contrôlé le code..........
Activé le programme....
Exécuté le programme. ou
Le langage de programmation ABAP est constitué des éléments suivants :

3
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

 Phrases
 Mots-clés
Commentaires : * en début de ligne pour la ligne entière.
                        " Devant la partie de ligne à commenter.
Chaque traitement commence par un mot-clé et se termine par un point ‘.’
Il existe 4 types de mots-clés :
 Déclaratifs : data, tables …
 Opérationnels : move, write…
 De contrôle: if, while, case…
 Evénementiels : get, at user-command…
Un programme de type report est généralement composé de 4 parties :
 Identification du programme
 Déclaration des données
 Traitement des données
 Affichage des résultats

Identification du programme
  Cette partie contient le nom du programme. Celui-ci commence toujours par "Z" ou par "Y"
dans le but de différencier les programmes utilisateurs des programmes systèmes.
Tout programme de type report débute par la ligne report « nom du programme »
Nous pouvons spécifier des options telles que "line-size", "line-count", "no standard", "page
heading"… afin de définir la mise en page de l’édition comme la taille des colonnes ou encore
le nombre de lignes.
REPORT ZESSAI LINE-SIZE 200
 
Déclaration des données
  Dans un programme, vous pouvez déclarer deux types de données: les data et les tables. Pour
cela, utiliser les mots clés suivants :
DATA : déclaration des données internes au programme. C’est l’ensemble de toutes les
variables utilisées par un programme ABAP.
TABLES : déclaration des données externes au programme. C’est l’ensemble des tables, vues
et structures qui sont déclarées dans le dictionnaire de données SAP.
Certaines données n’ont pas besoin d’être déclarées dans le programme comme les éléments de
texte du programme ABAP, les messages d’erreur standard SAP ainsi que les données
systèmes nommées "SY-xxxx" ou "SYST-xxxxx".
Voici les données internes disponibles :
 C : Caractère
 D : Date (YYYYMMDD)
 I  : Nombre entier
 N : Numérique
 P : Nombre à virgule flottante
 T : Heure (HHMMSS)
 X : Hexadécimal
Exemple de déclaration de variable :

4
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

DATA NOM(10) TYPE C.


La variable "NOM" est de type char et a une longueur de 10 caractères.
 
En ABAP, il est possible d’affecter à une variable le type d’une autre variable.
DATA NOM LIKE TABLE-NOM.
Dans ce cas, la variable NOM est du même type que le champ NOM de la table TABLE.
 
Données internes :
Une structure est un ensemble de champs de table.
DATA : BEGIN OF ELEVE, 
            NOM(10) TYPE C,
            PRENOM(15) TYPE C,
            CLASSE(5) TYPE C
            NUMERO(5) TYPE N,
END OF ELEVE.
 
Données externes :
Les données externes existent indépendamment du programme et doivent être définies sous
forme de table ou de structure dans le dictionnaire de données SAP. Pour déclarer ces données
dans un programme ABAP, il faut utiliser le mot clé TABLES.
TABLES : ELEVE, CLIENT.
 
Données système :
Les données système sont utilisables dans tout programme ABAP sans avoir besoin de les
déclarer. Elles sont toutes préfixées par SY. Voici les données système les plus courantes :
 SY-SUBRC     : code retour (il est de 0 si un ordre a été réalisé avec succès)
 SY-SUBNAME : nom d’utilisateur
 SY-DATUM     : date du jour
 SY-MANDT     : numéro du mandant
 SY-UZEIT       : heure courante
 SY-DBCNT : Nombre d’enregistrements trouvés par la requête SELECT.
 
Edition des données
WRITE ‹VAL› .
Cette instruction affiche le contenu du champ VAL à l’écran.
 
WRITE /10(15) CLIENT.
Le champ client sera affiché sur 15 caractères à partir de la dixième colonne.
 
WRITE ‹champ› ‹options› .
Liste des options de l’instruction WRITE :
 LEFT-JUSTIFIED        Alignement à gauche.
 CENTERED               Centré.
 RIGHT-JUSTIFIED     Alignement à droite.

5
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

 UNDER  ‹g›              Alignement sur le champ ‹g› d'une ligne précédente.


 NO-GAP                   Suppression des colonnes de séparation.
 NO-ZERO                 Suppression des zéros initiaux.
 DECIMALS ‹d›          Décimales après la virgule.
 

Liste des options de couleur :


WRITE ‹champ› COLOR ‹n› .
 1  ou  COL_HEADING    bleu gris
 2  ou  COL_NORMAL     gris clair
 3  ou  COL_TOTAL        jaune
 4  ou  COL_KEY            bleu vert
 5  ou  COL_POSITIVE   vert
 6  ou  COL_NEGATIVE  rouge
 7  ou  COL_GROUP       violet
 
Affectation de zones
Pour réinitialiser une zone, il faut utiliser le mot clé "CLEAR".
CLEAR ‹zone›.
La zone sera alors réinitialisée selon son type.
 
Pour affecter une zone à une autre vous pouvez utiliser
MOVE ‹f1› TO ‹f2› .
ou
‹f2› = ‹f1›.
 
Dans le cas où f1 est différent de f2, le contenu de f1 sera automatiquement converti selon le
type de f2.
MOVE-CORRESPONDING ‹st1› TO ‹st2›.
Pour chaque champ de f1 ayant le même nom qu’un champ de f2, le système effectue
l’opération : MOVE st1-champ TO st2-champ.
Exemple d'utilisation du MOVE-CORRESPONDING :
       TABLE1                  TABLE2
       NOM                        NOM
       PRENOM                  AGE
       AGE                        ADRESSE
MOVE-CORRESPONDING TABLE1 TO TABLE2.
=
MOVE TABLE1-NOM TO TABLE2-NOM.
MOVE TABLE1-AGE TO TABLE2-AGE.
 
7 Opération sur des chaînes de caractères
Concaténation de chaînes de caractères
CONCATENATE ‹f1› ‹f2› INTO ‹f3›.
 

6
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

Séparation d’une chaîne de caractères


SPLIT ‹f3› AT ‹C› INTO ‹f1› ‹f2›.
 

Exemple de séparation de caractère :


DATA : W_CHAINE(20) TYPE C VALUE '06,05,03'.
SPLIT W_CHAINE AT ',' INTO f1 f2 f3.
Dans cet exemple, la chaîne de caractère "W_CHAINE" sera tronquée à chaque caractère ‘,’.
Opérations arithmétiques
Addition :
ADD ‹f1› TO ‹f2› .
‹f2› = ‹f2› + ‹f1›.
‹f3› = ‹f2› + ‹f1›.
La fonction "ADD-CORRESPONDING struct1 TO struct2" permet de n’additionner entre
elles que les champs du même nom.
 
Soustraction :
SUBSTRACT ‹f1› FROM ‹f2›.
‹f2› = ‹f1› - ‹f1›.
‹f3› = ‹f2› - ‹f1›.
La fonction "SUBSTRACT-CORRESPONDING struct1 FROM struct2" permet de ne
soustraire entre elles que les champs du même nom.
 

Multiplication :
MULTIPLY ‹f1› BY ‹f2›.
‹f1› = ‹f1› * ‹f2›.
La fonction "MULTIPLY-CORRESPONDING struct1 BY struct2" permet de ne multiplier
que les champs ayant le même nom.
 
Division :
DIVIDE ‹f1› BY ‹f2›.
‹f1› = ‹f1› / ‹f2›.
La fonction "DIVIDE-CORRESPONDING struct1 BY struct2" permet de ne diviser que les
champs ayant le même nom.
 
Traitements conditionnels
Condition logique IF :
IF condition1.
      Traitement.
ELSEIF condition2.
     Traitement.
ELSE.
     Traitement.
ENDIF.

7
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

 
Opérateurs logiques :
EQ equal to                          CO Contains Only         
NE not equal to                     CN Contains Not Only
LT less than                          CA Contains Any
LE less than or equal to         CS Contains String
GT greater than                    NS Contains No String
GE greater than or equal to    CP Contains Pattern
NA contains Not Any              NP Contains No Pattern
 
Opérateurs logique CASE :
CASE ‹f›.
       WHEN ‹f1›.
             ‹Traitement1›.
       WHEN ‹f2›.
             ‹Traitement2›.
       WHEN OTHERS.
             ‹Traitement3›.
ENDCASE.
 
Traitement de boucles conditionnelles :
WHILE Condition.
           Traitement.
ENDWHILE.
 
Traitement de boucles inconditionnelles :
DO ‹n› TIMES.
     CHECK condition.
     IF condition.
          Traitement.
                EXIT.
     ENDIF.
     Traitement.
ENDDO.
Dans l’aide en ligne de ABAP, vous trouverez toutes les options de ces instructions.
 
Traitement des tables SAP
  Afin de rendre l’ABAP indépendant du système de base de données utilisé, SAP a créé un
ensemble d’instructions SQL appelé "OPEN SQL". Il est cependant possible d’insérer les
ordres Native SQL dans un programme ABAP mais cela reste fortement déconseillé.
Lecture séquentielle :
Sélection de toutes les données de plusieurs lignes de la table « table ».
SELECT * FROM table
       WHERE  champ1 = valeur1
       AND      champ2 = valeur2.

8
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

       WRITE : table-champ1, table-champ2.


ENDSELECT.
Le code de retour "SY-SUBRC" (sub record ou sous enregistrements) permet de contrôler le
retour de l’ordre SQL.
 Si SY-SUBRC = 0 alors au moins une ligne est sélectionnée
 Si SY-SUBRC = 4 alors aucune ligne est sélectionnées
Sélection de toutes les données d’une seule ligne de la table « table ».
SELECT SINGLE * FROM table
       WHERE  champ1 = valeur1
       AND      champ2 = valeur2.
       WRITE : table-champ1, table-champ2.
ENDSELECT.
Lecture séquentielle
Lecture de tous les enregistrements :
LOOP AT itab.
          WRITE: / itab-nom, itab-prenom, itab-age.
ENDLOOP.
 
Lecture sélective des enregistrements :
LOOP AT itab WHERE nom = 'Durand'.
          WRITE: / itab-nom, itab-prenom.
ENDLOOP.
 Lecture directe :
READ TABLE ‹itab›.
 Tri et recherche de doublons :
Pour trier une table interne, on utilise l’instruction "SORT".
SORT itab [BY f1 f2 ...] [ASCENDING] [DESCENDING].
 
Pour supprimer les doublons d’une table, il faut commencer par la trier et utiliser l’instruction
suivante :
DELETE ADJACENT DUPLICATES FROM itab.

9
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

4.3 Programmer des applications avec les instructions de base data,move,write


EXERCICE 1 :
*Programme d'addition de 2 nombres entiers
REPORT ZEXERCICE1 LINE-SIZE 250.
*Déclarations des variables
data v1 type i.
data v2 type i.
data r type i.
*Affectation des données
v1 = 50.
v2 = 20.
*operations arithmétique
r =v1 + v2. "Addition
*Affichage du résultat
write: 'la somme de ',v1,' et ',v2,' vaut ' ,r.

EXERCICE 2 :
Pour créer un programme ABAP après avoirsélectionné la transaction SE38 on tape le nom
du programme par exemple ZTVA puis cliquer sur create Après tapez un titre du programme
et sélectionnez le type executable program.Puiscliquezsursave.

10
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

Taper $tmp pour development class puis enregistrer en cliquant sur l’icône

Tapezvotre programme

11
PROGICIELS APPLIQUÉS A LA GESTION DES OPÉRATIONS
TP4 4ème Année Management N. ZIDANE

Pour l’exécuter il faut préalablement avoir :


 sauvegardé..................
 Contrôlé le code..........
 Activé le programme....
 Exécuté le programme.

12

Vous aimerez peut-être aussi