5 visiteur(s) et 0 membre(s) en ligne. Devenez membre privilégié en cliquant ici
vendredi 04 avril 2025
Article du Jour
Il n'y a pas encore d'Article du Jour.
Activité du Site
Pages vues depuis 15/01/2008 : 21 177 616
  • Nb. de Membres : 2 146
  • Nb. d'Articles : 80
  • Nb. de Forums : 10
  • Nb. de Sujets : 4
  • Nb. de Critiques : 2

Top 15  Statistiques

Sondage

Intéresser par
 ABAP
 Aministration SAP
 Autorisation-Securité
 SAP BW
 SAP Webdynpro,BSP...
 SAP Fonctionnel
 Autres...

  Results, Résultats


  • Votes : 1299
  • Commentaire(s) : 0
Lettre d'information


Votre adresse E-mail



Recevez par mail les nouveautés du site.

Rudiments language ABAP
(Voir rubrique documentation pour plus de détails)




Les types de données élémentaires

a) Les types numériques


Type I :  Nombre entier signé ; valeurs comprises entre-2147483648 et 2147483647.

    DATA nom_variable TYPE I.

Type P : 15 caractères

   DATA nom_variable(5) TYPE p DECIMALS 2.

Type F : Format décimal scientifique ; valeurs comprises entre 2.2...E-308 et  1.7...E+308

   DATA nomvariable type f.


b) Les types caractères

Type C : Définit une chaîne de caractères ; Elle peut avoir jusqu'à 65535 caractères.

    DATA nom_variable(10) TYPE C.  Déclare une chaîne de 10 caractères.

Type N : Correspond aux chaînes numériques , elle peut contenir jusqu'à 65535 caractères.

               La valeur numérique stockée est précédée par des 0.
    DATA nom_variable(10) TYPE N.  Déclare une chaîne numérique de 10 caractères.

Type STRING : Chaine de caractère sans  limite de longueur

    Data nom_variable TYPE STRING.


c) Autres types élémentaires

Type D : Date  au format YYYYMMDD.
Type T : Heure au format HHMMSS.
Type X : Type hexadécimal 65535.
Type XSTRING : type Hexadécimal pas de limite de longueur.


Déclaration des variables

Avant de pouvoir être utilisées les variables doivent avoir été déclarées.
La déclaration d’une variable se fait en utilisant l’instruction DATA.
On peut associer la  variable à un type ( élémentaire ou composite ):

    DATA nomvariable type i.

On peut également faire référence à une autre variable déclarée au préalable :

    DATA nomvariable2 like nomvariable.

Les variables système

Ce sont des variables réservées qui sont valorisées par le système ; Elles permettent de récupérer un certains nombre d’informations liées au contexte.

SY-SUBRC  : Indique le bon déroulement d’une instruction ( vaut 0 si OK )
SY-UNAME : Contient le login de l’utilisateur
SY-DATUM : Contient la date du jour
SY-LANGU : Indique la langue de connexion
……….

Les constantes

Elles permettent de donner une appellation plus compréhensible à certaines valeurs.
Elles sont déclarées par l’instruction CONSTANTS .

CONSTANTS langue_francais TYPE c VALUE ‘F’.

Les structures

Les structures sont des ensembles  de variables.

DATA : BEGIN OF nom_structure1,
             Nomzone1 type i,
             Nomzone2 like nomvariable,
       END OF nom_structure1.

Pour atteindre une zone de la structure : nom_structure-nomzone1.

Alimentation d'une structure à partir d'une autre.

Il existe différentes manières d'alimenter une structure à partir d'une autre.
On  peut faire un transfert zone à zone .

    Nom_structure1-nom_zone1 = Nom_structure2-nom_zone2.

On peut faire un transfert global si les deux structures sont identiques

    Nom_structure1 = Nom_structure2.

On peut charger les zones de la seconde  à partir des zones de la première qui correspondent en nom et sont compatibles en format .

    Move-corresponding Nom_structure1 to Nom_structure2.

Initialisation des variables et  structures

L’instruction CLEAR nom_variable ( CLEAR nom_structure ) permet de réinitialiser une chaîne ( une structure ).

Déclaration de types

L’instruction TYPES permet de déclarer des types de données propres au programme.

TYPES : BEGIN OF nom_type_structure1,
             Nomzone1 type i,
             Nomzone2 like nom_variable,
         END OF nom_type_structure1.

Une fois déclaré un type peut être utilisé comme le sont les types élémentaires.

DATA nom_variable TYPE nom_type_structure1.

Les tables internes

Les tables internes sont des tableaux structurés de variables.

d) Déclaration d’une table interne

Il existe plusieurs façons de déclarer une table interne :

    Data : nom_table occurs 0,
             nom_zone1  type I,
             nom_zone2 like nom_variable,
             nom_zone3 like nom_structure1 ,
    End of nom_table.

Remarque : la zone nomzone1 de la structure nom_zone3 pourra être atteinte par nom_table- nom_zone3-nomzone1.

Ou 

    Data nom_table like nom_structure1 occurs 0 [ with Header line ]

Ou

    Data  nom_table  type table of nom_type_structure1 [ with Header line ]

mais on peut également declarer un type table

    types typetable1 like structure1 occurs 0.
    Data nom_table type typetable1.

e) Lecture d’une table interne

Il existe deux façons de lire une table interne.

-          Boucler sur les lignes de la table avec l’instruction LOOP

    LOOP AT nom_table into nom_structure [ where conditions ].
     Traitement.
    ENDLOOP.

-          Cibler une ligne avec l’instruction READ

    READ TABLE nom_table  into nom_structure index numéro_de_ligne

    READ TABLE nom_table into nom_structure 
                  WITH KEY nomzone1 = valeur1 nomzone2 = valeur2.

Les instructions LOOP et READ utilisent toutes les deux les variables systèmes SY-SUBRC et SY-TABIX.

SY-SUBRC  indique si une ligne a été trouvée.

SY-TABIX   indique la ligne ciblée.

f) Tri d'une table interne

L'instruction SORT nom_table by zone1 zone2.  permet de trier la table interne nom_table selon deux de ses zones zone1 et Zone2.

g) Alimentation d’une table interne

Pour charger une table on aura besoin d'une structure que l'on valorisera d'abord et qui sera ensuite chargée dans la table.

Ajout d'une ligne dans la table interne

    APPEND nom_structure to nom_table.

Insertion d'une ligne

    INSERT nom_structure INTO nom_table INDEX numero_ligne.

Modification d'une ligne

    MODIFY nom_table INDEX numero_ligne FROM nom_structure.
        REM : Dans un loop on n'a pas besoin du paramètre INDEX.

Suppression de lignes

    DELETE TABLE nom_table with table key …….
    DELETE nom_table where conditions.

Ajout de lignes en cumulant les zones numériques

    COLLECT nom_structure to nom_table.

h) Ligne d'en-tête d’une table interne

Il est possible de déclarer en même temps que la table une structure qui portera le même nom que la table et servira à l'alimenter.
Parmi les trois déclarations de tables internes précédentes : la première a déclaré une ligne d'en-tête , les suivante uniquement si on a rajouté l'addition WITH HEADER LINE.
L'utilisation d'une ligne d'en-tête permet de simplifier les instructions d'alimentation et de lecture; La référence à la structure d'alimentation n'étant plus utile.
On aura par exemple :  APPEND nom_table.

i) Nombre de lignes d’une table interne

L’instruction DESCRIBE TABLE nom_table LINES nom_variable. Permet de charger dans la variable nom_variable le nombre de lignes de la table interne nom_table.

j) Initialisation d’une table interne.

refresh nom_table permet de vider la table interne
Si la table n'a pas de ligne d'entête un CLEAR nom_table suffit.

Les instructions de contrôle

a) Opérateur de comparaison

On peut utiliser les opérateurs classiques ( <, >, = , >= , <=,<> ) ou ceux de SAP ( LT,GT, EQ, GE, LE, NE )
NOT condition  indique sa négation.Il existe également des opérateurs propres à la comparaison de chaînes
CO = contient uniquement des caractères, CN sa négation, CA contient au moins un caractère…. )

b) IF.

IF condition.
  xxxxxxxxxxxxxxxxxx
ELSEIF condition.
  xxxxxxxxxxxxxxxxxx
ELSE.
  xxxxxxxxxxxxxxxxxx
ENDIF.

d) CASE.

CASE nomvariable.
WHEN valeur1 or valeur2. 
  xxxxxxxxxxxxxxxxxx
WHEN valeur3 .
  xxxxxxxxxxxxxxxxxx
WHEN OTHERS.
  xxxxxxxxxxxxxxxxxx
ENDCASE.

e)
 DO.

DO.
  xxxxxxxxxxxxxxxxxx
ENDDO.

f)  WHILE

WHILE condition.
ENDWHILE.


g) Instruction de rupture

EXIT   : Dans une boucle DO ou LOOP sort de la boucle.
CONTINUE. Dans une boucle DO ou LOOP passe à l’itération suivante sans finir la boucle en cours
CHECK condition : est équivalent à un CONTINUE si la condition est vérifiée.


Page Spéciale pour impression


Login Utilisateur

Identifiant

Mot de Passe


Vous n'avez pas encore de compte personnel ? Partager votre expérience et Inscrivez vous.