6350 Readings
ABAP
SAP for 10 years
Posted by Yann MORINEAU
5 years ago
Modified 5 years ago




Les types de variables et leur déclaration

1.Les variables de type caractère

Type C :  chaîne de caractères définie en taille (jusqu'à 65535 caractères)

  DATA  ma_variable(n) TYPE c.  (n = longueur de la chaîne)

Type STRING : chaîne de caractères sans limite de longueur.

  DATA ma_variable TYPE string.

Type N : chaine numériques pour stocker les nombres sous forme de chaine de caractères (jusqu'à 65535 caractères)

  DATA ma_variable TYPE n.

 

2.Les variables de type numérique

Type I :  nombre entier (de -2147483648 à 2147483647)

  DATA  ma_variable TYPE i.

Type P : numérique avec virgule à position fixe (max 15 caractères).

  DATA ma_variable(n) TYPE p DECIMALS 3. ( n = nombre de caractères)

Type F : chaine auformat scientifique (de 2.2 E-308 à 1.7 E+308)

  DATA ma_variable TYPE f.

 

3.Les autres types de variables

Type D :  date (format YYYYMMDD)

  DATA  ma_variable TYPE d.

Type T : heure (format HHMMSS).

  DATA ma_variable TYPE t.

Type X : hexadécimal (jusqu'à 65535)

  DATA ma_variable TYPE x.

Type XSTRING : hexadécimal (pas de limite de longueur)

  DATA ma_variable TYPE xstring.

 

4.Les constantes

Une constante est une variable dont la valeur ne change pas.

  CONSTANTS wc_oui(3)  TYPE c VALUE 'oui'.

 

5.Les structures

Les structures sont des "tableaux" dans lesquels il est possible de rassembler plusieurs variables.

  DATA : BEGIN OF ma_structure_s,
    ma_zone_1 TYPE c,
    ma_zone_2 TYPE i,
    ma_zone_3 LIKE ma_zone_1,
  END OF ma_structure_s.

Pour atteindre une zone de la structure,

  ma_structure_s-ma_zone_1. (le trait d'union est très important)

Pour transférer le contenu d'une zone vers une autre :

  ma_structure_s-ma_zone_1 = ma_structure_s-ma_zone_2.

Pour transférer le contenu d'une structure vers une autre lorqu'elle sont identiques :

  ma_structure_1_s = ma_structure_2_s.

Pour transférer le contenu des zones identiques à deux structures :

  MOVE-CORRESPONDING ma_structure_1_s TO ma_structure_1_2.

 

6.Les types propres au programme

L'instruction TYPES permet de déclarer des types propres au programme.

  DATA : BEGIN OF mon_type_1,
    ma_zone_1 TYPE c,
    ma_zone_2 TYPE i,
  END OF mon_type_1.

Ensuite nous utilisons le type de cette façon :

  DATA ma_variable TYPE mon_type_1.

 

7.Les tables internes

Les tables internes se déclarent de la façon suivante :

  DATA : BEGIN OF ma_table_interne OOCURS 0,
    ma_zone_1 TYPE c,
    ma_zone_2 TYPE i,
    ma_zone_3 LIKE ma_zone_1,
  END OF ma_table_interne.

ou

  DATA : ma_table_interne LIKE ma_structure_1_s.

ou

  DATA : ma_table_interne TYPE TABLE OF ma_structure_1_s.

Nous verrons dans un autre cours comment exploiter ces tables.

 

8.Les principales variables système

Les variables systèmes sont utilisées par le système pour retouner certaines informations dont vous aurez besoin lors de vos traitements.

La session en cours :

  •   SY-UNAME : Le login de l'utilisateur connecté,
  •   SY-MANDT : Le mandant,
  •   SY-LANGU : La langue de connexion,

Le temps :

  •   SY-DATUM : La date du jour,
  •   SY-UZEIT : L'heure.

Le programme en cours :

  •   SY-CPROG  : Le nom du programme en cours et le nom du programme appelant dans une procédure,
  •   SY-DBNAM  : Le nom de la base de données logique liée à un programme exécutable,
  •   SY-DYNGR  : Groupe de l'écran à laquelle appartient l'écran actuel,
  •   SY-DYNNR : Nombre de l'écran actuel,
  •   SY-REPID : Nom de l'actuel programme ABAP,
  •   SY-TCODE : Le code de transaction du programme actuel.

Les programmes ABAP :

  •   SY-ABCDE  : Elle contient l'alphabets (A.. Z),
  •   SY-ULINE  : Ligne horizontale avec longueur 255 utilisé dans la création de listes,
  •   SY-VLINE  : Ligne verticale, utilisé dans la création de listes,
  •   SY-INDEX  : Dans une boucle, elle contient le numéro de la ligne lue,
  •   SY-FDPOS  : L'emplacement du curseur dans les opérations de chaîne. Utilisées avec le CO, CN, CA, NA, CS, NS, CP, et NP,
  •   SY-TABIX  : Ligne actuelle d'une table interne,
  •   SY-TFILL  : Après les déclarations DESCRIBE TABLE, LOOP AT, et READ TABLE, SY-TFILL contient le nombre de lignes dans latable interne,
  •   SY-DBCNT  : Le nombre d'entrées de table transformées.  Il est fixé par ABAP commandes DELETE, FETCH, insérer, modifier et UPDATE.

Les écrans :

  •   SY-CUCOL : Position du curseur horizontal. Le compteur commence à la colonne 2.
  •   SY-CUROW : Position du curseur vertical. Le compteur commence à la ligne 1.
  •   SY-DATAR : Cette zone contient 'X' si au moins un champ de saisie à l'écran a été changé par l'utilisateur, sinon il est vide.
  •   SY-LOOPC : Nombre de lignes affichées dans un contrôle Table. Peut être utilisé pour la fonctionnalité de défilement.
  •   SY-SCOLS : Nombre de colonnes sur l'écran actuel.
  •   SY-SROWS : Nombre de lignes sur l'écran actuel.
  •   SY-STEPL : Index de la ligne courante dans un Table Control. SY-STEPL n'a pas de valeur significative en dehors de la boucle(par exemple, lors de l'événement POV pour une ligne de tableau).
  •   SY-TITLE : Il contient le texte qui apparaît dans la barre de titre de l'écran. Pour les écrans de sélection et les listes, c'estle nom du programme, il peut être modifié en utilisant l'instruction SET TITLEBAR.
  •   SY-UCOMM : Il contient le code de la fonction qui a déclenché l'entrée le PAI.

 

9.Les types métiers SAP

SAP est orienté métier. C'est pour cette raison que lorsqu'on travaille sur un numéro de référence (Table MARA, zone MATNR) nous ne déclarons pas notre varible de cette façon :

  DATA ma_reference(18) TYPE c.

mais comme ceci :

  DATA ma_reference TYPE matnr.

 

En règle générale, il est conseillé d'utiliser des types métier. Votre code en sera plus lisible. Les types techniques vus plus haut sont à utiliser pour les compteurs et autres indicateurs.

 

10.Schéma SAP des différents types de variables

schéma

Pub

Sign in or Sign up to ask questions.

Latest tutorials from the same author

imgBPC

Déboguer un package

Astuce pour déboguer un package ...

Posted 4 years ago
Modified 4 years ago
4680
imgBPC

BPC BI and Source system

BPC Overview ...

Posted 4 years ago
Modified 4 years ago
5144
imgBPC

Vider le cache BPC

Vider le cache BPC avec UJA_REFRESH_DIM_CACHE ...

Posted 4 years ago
Modified 4 years ago
3980
imgBPC

BPC, BI et Système source

Vue d'ensemble de BPC ...

Posted 4 years ago
Modified 4 years ago
4234