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.
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.
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.
Une constante est une variable dont la valeur ne change pas.
CONSTANTS wc_oui(3) TYPE c VALUE 'oui'.
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.
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.
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.
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 :
Le temps :
Le programme en cours :
Les programmes ABAP :
Les écrans :
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.
Astuce pour déboguer un package ...
Vider le cache BPC avec UJA_REFRESH_DIM_CACHE ...