Les tables
Les tables du dictionnaire de données sont une représentation des tables de la base de données.
Les structures
C’est l’équivalent des structures créées dans les programmes ; Celles-ci seront utilisables par tous les programmes.
On y accède par le radio-bouton types de données.
Les éléments de données ( ou Types de données )
S’il est possible de typer directement une zone de table ou de structure, on utilise en général pour cela les éléments de donnés.
Il permettent d’associer à une zone un sens applicatif
On leur associe des désignations qui seront utilisées selon le contexte ( taille de la zone )
On leur associe de la documentation ( quand on fait F1 sur la zone )
On leur associe un domaine de valeurs.
On peut leur associer également une aide à la recherche.
On peut leur associer un parameter ID
Les domaines de valeurs
Il regroupe un type de données élémentaire de la base de données avec en général une plage de valeurs et éventuellement des fonctions de conversion.
1.2 Utilisation du dictionnaire dans les programmes
Les zones de structures ou de table du dictionnaire de données, les types de données pourront être utilisés pour typer les variables d’un programme.
DATA nomvariable LIKE MARA-MATNR.
DATA nomvariable TYPE EMATNR.
Les structures ( mais également les tables ) pourront être utilisées pour définir des structures ou des tables internes du programme.
DATA nomstructure like EMARA.ou DATA nomstructure type EMARA
Mais également
DATA : BEGIN OF nomstructure ,
Nomzone TYPE I.
!include! STRUCTURE VBAP.
DATA : Nom_zone2 LIKE VBAK-KUNNR.
END OF nomstructure.
Les zones de saisie de l’écran de sélection pourront également s’appuyer sur les zones des tables et structures du dictionnaire de données , elles pourront ainsi récupérer quand elles existent des aides à la recherche.:
SELECT-OPTIONS nom_zone FOR MARA-MATNR.
PARAMETERS nom_zone LIKE MARA-MATNR.
1.3 Accès à la base de donnée dans les programmes
Le dialogue avec la base de donnée se fait grace à un ensemble d’instructions constituant l’OPEN SQL ; C’est un langage SQL propre à SAP qui est indépendant de la base de donnée utilisée.
Instruction TABLES
Avant de pouvoir être utilisée dans les instructions de lecture ou de mise à jour , une table doit être déclarée par l’instruction TABLES.
TABLES MARA.
Cette déclaration déclare dans le même temps une structure MARA qui pourra être utilisée comme telle.
Lecture de données
L'instruction SELECT permet de lire les données de la base.
a) Premier exemple
C’est l’équivalent de la boucle LOOP pour les tables internes
SELECT * FROM nomtable
WHERE conditions.
xxxxxxxxxxxxxxxxxx
ENDSELECT.
b) Second exemple
SELECT SINGLE * FROM nom_table WHERE conditions.
c) Troisième exemple
SELECT * FROM nom_table INTO nom_table_interne WHERE conditions
d) Quatrième exemple
Select * into INTO CORRESPONDING FIELDS OF nomtable_interne
e) Test du SELECT
Une instruction SELECT est généralement suivi d’un test .
On utilise pour cela la variable système SY-SUBRC.
Si elle vaut 0 c’est que des lignes ont été trouvées.
f) Optimisation
Il existe des formulations comme l'utilisation des jointures ou de l'addition FOR ALL entries qui permettent d'optimiser les instructions.
Cf bouton conseils et astuce du menu analyse de l'exécution.
1.4 Mise à jour de la base
La mise à jour directe de la base ne concerne que les tables spécifiques. La mise à jour des tables standards se fait à l'aide de batch-inputs ou de fonctions standards de mise à jour.
a) Instructions de mise à jour
UPDATE…
Modification d'un enregistrement
L'instruction sans condition WHERE fonctionne et ne met à jour qu'une ligne.
INSERT…
Création d'un enregistrement
DELETE…
Suppression d'un enregistrement
MODIFY….
Ajout / modification d'un enregistrement selon son existence.
Attention : ne pas utiliser les : pour cumuler des zones
b) Groupement de mise à jour
Il est possible de grouper plusieurs instructions de mises à jour de telle sorte que soit toutes les mises à jours soient prises en compte soit aucune.
Pour cela on utilise les instructions ROLLBACK WORK et COMMIT WORK.