Programmation ABAP IV : reports - PowerPoint PPT Presentation

About This Presentation
Title:

Programmation ABAP IV : reports

Description:

Title: Cours de base ABAP Author: F. CABRERA Last modified by: lcherif Created Date: 2/14/1997 4:22:04 PM Document presentation format: Affichage l' cran – PowerPoint PPT presentation

Number of Views:105
Avg rating:3.0/5.0
Slides: 130
Provided by: F452
Category:

less

Transcript and Presenter's Notes

Title: Programmation ABAP IV : reports


1
  • Programmation ABAP IV reports

2
Reporting ABAP IV Objectifs
  • Vous serez capable
  • de créer des listes simples d édition de données
  • de créer des listes complexes reports
    interactifs
  • de créer des programmes d extractions de données

3
Reporting ABAP IV Sommaire
  • Chapitre 1 Généralités ABAP IV syntaxe,
    gestion événementielle, structure de programme,
    éditeur ABAP
  • Chapitre 2 Déclarations des Données
  • Chapitre 3 Instructions de base ABAP
  • Chapitre 4 Traitement des tables SAP
    l instruction SELECT
  • Chapitre 5 Programmation structurée
    modularité, form, module fonction, routine
  • Chapitre 6 Gestion des tables internes
  • Chapitre 7 Gestion des fichiers
  • Chapitre 8 Concepts de programmation avancée

4
Chapitre 1Reporting ABAP IVGénéralités ABAP
IV
5
Généralités ABAP IV Syntaxe
  • Le langage de programmation ABAP IV est
    constitué des éléments de syntaxe suivants
  • Phrases
  • Mot-clés
  • Commentaires

6
Syntaxe Phrases
  • Chaque phrase commence par un mot-clé et se
    termine par une ponctuation.
  • Les différents mots de la phrase doivent être
    séparés par un espace.
  • REPORT ZZZFOR01.
  • DATA VAR01, VAR02.
  • WRITE Exemple.

7
Syntaxe Mot-clés
  • Un mot-clé détermine la signification de la
    phrase entière.
  • Il existe 4 types de mot-clés
  • déclaratifs DATA, TABLES ...
  • opérationnels MOVE, WRITE
  • de contrôle IF, WHILE, CASE ...
  • événementiels GET, AT USER-COMMAND ...

8
Syntaxe Commentaires
  • Ligne entière astérisque en début de ligne
  • Partie restante dune ligne guillemet devant le
    commentaire
  • REPORT ZZZFOR01.
  • Commentaire général
  • WRITE 'Premier programme '. " commentaire de ligne

9
Généralités ABAP IV Gestion événementielle
  • Lexécution dun programme ABAP IV peut être
    contrôlée par des événements temporels.
  • Ces événements sont déclenchés soit par dautres
    programmes, soit par lintervention de
    lutilisateur, soit par le système SAP.
  • La gestion de ces événements se fait grâce aux
    mot-clés événementiels, auxquels on peut associer
    un bloc de traitement.
  • Attention un programme ABAP IV ne sexécute pas
    nécessairement dans lordre où il est écrit

10
Généralités ABAP IV Gestion événementielle
Programme ABAP IV
Contrôle externe
Mot-clé événementiel
Bloc de traitement Contrôle interne
Contrôle externe
Mot-clé événementiel
Bloc de traitement Contrôle interne
11
Généralités ABAP IV AIDE
  • Une aide sur le langage ABAP est disponible à
    tout moment
  • dans l éditeur par la commande Help ltmot-clégt
  • dans le programme se positionner sur un mot-clé
    et faire F1
  • dans laide on-line
  • dans la documentation des mots-clés
  • Pas de panique !! laide ABAP est très complète
    et donne l exhaustivité des options des
    mots-clés.

12
Généralités ABAP IV Structure dun Report ABAP
IV
  • Un programme ABAP de type report est composé au
    minimum de 4 parties
  • Identification de l ABAP
  • Déclaration des données
  • Lecture et sélection des données
  • Traitement des données éditions, mises à jour.

13
Identification de l ABAP
  • Le nom d un ABAP spécifique commence toujours
    par Z ou par Y et codé sur 40 caractères
  • Mot-Clé REPORT ltnom programmegt
  • Options LINE-SIZE, LINE-COUNT NO STANDARD PAGE
    HEADING. définir la mise en page de l édition
    (taille colonnes, nombre de lignes)
  • ex REPORT ZFREFIC00 LINE-SIZE 255.

14
Editeur ABAP
  • Pour créer un ABAP il faut indiquer
  • le nom de l abap
  • le libellé de l abap
  • le type de programme
  • le statut de programme
  • la classe de développement
  • éventuellement
  • l application fonctionnelle associée
  • la base de données logique
  • le groupe d autorisation

15
Commandes de l éditeur ABAP
  • 3 présentations du mode éditeur ( Options
    Editeur )
  • mode PC avec numérotation des lignes
  • mode PC sans numérotation des lignes
  • mode Editeur on-line
  • 2 niveaux de commandes
  • sur la ligne de commande commandes globales
  • sur les numérotations de ligne commandes au
    niveau ligne

16
Commandes de l éditeur Abap
  • Commandes
  • fonctions d édition
  • sauvegarder
  • contrôler
  • générer
  • exécuter

17
Chapitre 2Reporting ABAP IVDéclarations de
données
18
Déclaration de données
  • Données à déclarer dans le programme
  • DATA déclaration des données internes au
    programme. C est l ensemble de toutes les
    variables, structures de travail valable pour
    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 .

19
Déclaration de données
  • Données disponibles à tout moment dans le
    programme sans besoin de déclaration
  • Les éléments de texte du programme ABAP
  • Données systèmes la structure SY (ou SYST)
    l ensemble des données système SAP disponibles
    au moment de lexécution du programme.
  • Les messages derreur et d information standard
    SAP

20
Déclaration de données Données internes
  • DATA ZONE1(10) TYPE C VALUE TEST.
  • Type Lg déf. Val.init. Cadrage
  • Ccaractère 1 Space gauche
  • Ddate (YYYYMMDD) 8 00000000 gauche
  • I nombre entier 4 0 droit
  • Ntexte numérique 1 0..00 droit
  • P nombre packé 8 0 droit
  • F nombre virgule flottante 8 0 droit
  • T heure (HHMMSS) 6 0 gauche
  • X hexadécimal 1 X00 gauche

21
Déclaration de données Données internes
  • DATA CLIENT LIKE KNA1-KUNNR.
  • permet de définir une variable ayant les mêmes
    caractéristiques techniques (longueur, type) que
    le champ KUNNR de la table base de donnée KNA1.
  • DATA NUMBER TYPE P DECIMALS 2.
  • définit le nombre de chiffres après la virgule
    pour un champ de type P uniquement.

22
Déclaration de données Données internes
  • Structure
  • DATA BEGIN OF CLIENT,
  • NOM(20) TYPE C,
  • RUE(20) TYPE C,
  • NUMERO TYPE P,
  • CP(5) TYPE N,
  • VILLE(20) TYPE C,
  • END OF CLIENT.
  • Une structure est un groupe de champs. Chacun
    des champs peut être adressé par son nom préfixé
    du nom de la structure (CLIENT-NOM).

23
Déclaration de données Données externes
  • Les données externes existent indépendamment du
    programme.
  • Elles doivent être définies sous forme de table
    ou structure dans le dictionnaire de données SAP.
  • Pour se référencer à ces données dans un
    programme
  • mot-clé TABLES.
  • TABLES KNA1, MARA.

24
Déclaration de données Eléments de texte
  • Chaque ABAP a ses propres textes
  • textes d entête de liste et colonnes
  • textes des paramètres de sélection
  • textes numérotés tout libellé, chaîne de
    caractère doit être déclaré dans les textes
    numérotés de l abap et ensuite on peut les
    utiliser tels quels dans l abap. TEXT-ltnnngt.
  • Ex WRITE TEXT-100.

25
Déclaration de données Données système
  • Ces données sont utilisables dans chaque ABAP IV
    sans avoir besoin de les déclarer.
  • SPACE constante de type C, longueur 1,
    initialisée à blanc.
  • Les données système préfixées par SY.
  • SY-SUBRC code retour (zéro, si un ordre a été
    réalisé avec succès)
  • SY-UNAME nom de lutilisateur
  • SY-DATUM date courante
  • SY-UZEIT heure courante

26
Déclaration des données Points à retenir
  • TABLES déclaration des tables et structures du
    dictionnaire de données SAP
  • DATA déclaration des données propres au
    programme variables de travail, structures de
    travail
  • la structure SYST ensemble des données système
    SAP
  • les textes numérotés d un ABAP

27
Chapître 3Reporting ABAP IVInstructions de
base
28
Instructions de base ABAP IV
  • Edition de données
  • Affectation de zones
  • Opérations sur des chaînes de caractères
  • Opérations arithmétiques
  • Traitements conditionnels
  • Traitements de boucles

29
Instructions de BaseEdition de données
  • WRITE ltnom_zonegt.
  • Affiche le contenu du champ ltnom_zonegt à
    lécran. Le format dédition dépend du type du
    champ.
  • type lg édition Justification
  • C lg champ gauche
  • D 8 gauche
  • I 11 droit
  • N lg champ gauche
  • P 2 lg champ(1) droit

30
Instructions de Base Edition des données
  • WRITE AT /ltposgt(ltlggt) ltnom_zonegt.
  • édite le champ ltnom_zonegt sur une nouvelle ligne
    (/) en position ltposgt sur une longueur ltlggt.
  • Si les spécification de position et de longueur
    ne sont pas des variables, on peut omettre le
    mot-clé AT.
  • WRITE AT /10(15) CLIENT-NOM. Ou
  • WRITE /10(15) CLIENT-NOM
  • La zone CLIENT-NOM sera éditée sur 15
    caractères à partir de la 10ème colonne.

31
Instructions de Base Edition des données
  • Options de mise en forme
  • WRITE ltnom_zonegt ltoptionsgt.
  • LEFT-JUSTIFIED Cadrage à gauche.
  • CENTERED Centrage.
  • RIGHT-JUSTIFIED Cadrage à droite.
  • UNDER ltggt Alignement sur le champ ltggt
    d'une ligne précédente.
  • NO-GAP Suppression des colonnes de
    séparations.
  • NO-ZERO Suppression des zéros initiaux
    (type N,P).
  • DECIMALS ltdgt ltdgt décimales après la
    virgule.
  • USING EDIT MASK ltmgt utilisation d un masque
    d édition spécifique
  • ...

32
Instructions de Base Edition des données
  • Options de couleur WRITE ltnom_zonegt COLOR ltngt.
  • 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

33
Instructions de baseAffectation de zones
  • Réinitialisation dune zone CLEAR ltf1gt.
  • La zone est réinitialisée selon son type.
  • Affectation de zones MOVE ltf1gt TO ltf2gt.
  • Si ltf1gt et ltf2gt sont de types différents, le
    contenu de ltf1gt est converti selon le type de
    ltf2gt.
  • Autre forme ltf2gt ltf1gt.

34
Instructions de baseAffectation de zones
  • MOVE Exemples de conversion
  • DATA ZONE1(4) TYPE C VALUE 1234,
  • ZONE2(2) TYPE C,
  • ZONE3(6) TYPE N,
  • ZONE4(5) TYPE P VALUE 123456789.
  • MOVE ZONE1 TO ZONE2. ZONE2 12
  • MOVE ZONE1 TO ZONE3. ZONE3 001234
  • MOVE ZONE4 TO ZONE3. ZONEB 456789

35
Instructions de baseAffectation de zones
  • Affectation de zones
  • WRITE ltf1gt TO ltf2gt.
  • La zone réceptrice ltF2gt doit TOUJOURS être de
    type caractère. Le WRITE TO permet d effectuer
    automatiquement les opérations de conversion du
    format interne (de stockage) des données au
    format externe (d affichage) des données
  • Ex DATA W_DATE LIKE SY-DATUM VALUE
     19990726 ,
  • W_CHAINE(10) TYPE C
  • WRITE W_DATE TO W_CHAINE.
  • W_CHAINE va contenir la valeur  26.07.1999 
  • MOVE W_DATE to W_CHAINE.
  • W_CHAINE va contenir la valeur  19990726 

36
Instructions de baseAffectation de zones
  • MOVE-CORRESPONDING ltst1gt TO ltst2gt.
  • Pour chaque champ ayant le même nom dans chacune
    des deux structures ltst1gt et ltst2gt, le système
    effectue lopération
  • MOVE st1-ltchampgt TO st2-ltchampgt.

37
Instructions de baseAffectation de zones
  • MOVE-CORRESPONDING exemple

DATA BEGIN OF STRUC2, ZONEB(3) TYPE
N, ZONEC(8) TYPE C, ZONED(5) TYPE P, END OF
STRUC2.
  • DATA BEGIN OF STRUC1,
  • ZONEA,
  • ZONEB(3) TYPE N,
  • ZONEC(8) TYPE C,
  • END OF STRUC1.

MOVE-CORRESPONDING STRUC1 TO STRUC2. équivaut
à MOVE STRUC1-ZONEB TO STRUC2-ZONEB. MOVE
STRUC1-ZONEC TO STRUC2-ZONEC.
38
Instructions de baseAffectation de zones
  • MOVE ltf1gtltos1gt(ltlg1gt) TO ltf2gtltos2gt(ltlg2gt)
  • Affectation de zones avec spécification doffset
    et de longueur sous forme de variable ou de
    constantes.
  • DATA ZONE1(4) TYPE C VALUE 1234,
  • ZONE2(4) TYPE C VALUE ABCD.
  • MOVE ZONE12(2) TO ZONE2(2) ZONE2  34CD 
  • A nutiliser quavec des zones de type C

39
Instructions de baseOpération sur des chaînes de
caractères
  • CONCATENATE ltf1gt ltf2gt into ltzgt concaténation
    de chaînes de caractères
  • SPLIT ltzgt AT ltcgt INTO ltf1gt ltf2gt éclatement 
    d une chaîne de caractères
  • DATA W_CHAINE(30) TYPE C VALUE  01,02,03 .
  • SPLIT W_CHAINE AT  ,  INTO ZONE1 ZONE 2 ZONE3.

40
Instructions de baseOpération sur des chaînes de
caractères
  • TRANSLATE ltf1gt option transformation d une
    chaîne de caractères.
  • DATA W_CHAINE(30) TYPE C VALUE  Dupont .
  • TRANSLATE W_CHAINE TO UPPER CASE.
  • W_CHAINE sera mis en majuscules  DUPONT 
  • DATA W_CH1(4) TYPE C VALUE  12154 ,
  • W_CH2(4) TYPE C VALUE
     1A2B3Z5P .
  • TRANSLATE W_CH1 USING W_CH2.
  • Tous les caractères de W_CH1 vont être
    remplacés en fonction du contenu de W_CH2.
  • QUE VA CONTENIR W_CH1 ?

41
Instructions de base Opérations Arithmétiques
  • Addition
  • ADD ltf1gt to ltf2gt.
  • Équivalent à ltf2gt ltf2gt ltf1gt.
  • ltf3gt ltf2gt ltf1gt.
  • ADD-CORRESPONDING struc1 to struc2.
  • Toutes les zones ayant le même nom des structures
    struc1 et struc2 seront additionnées entre elles.

42
Instructions de base Opérations Arithmétiques
  • Soustraction
  • SUBTRACT ltf1gt FROM ltf2gt.
  • Équivalent à ltf2gt ltf2gt - ltf1gt.
  • Autre forme ltf3gt ltf2gt - ltf1gt.
  • SUBTRACT-CORRESPONDING struc1 FROM struc2.
  • Toutes les zones ayant le même nom des structures
    struc1 et struc2 seront soustraites entre elles.

43
Instructions de base Opérations Arithmétiques
  • Multiplication
  • MULTIPLY ltf1gt BY ltf2gt.
  • Équivalent à ltf1gt ltf1gt ltf2gt.
  • MULTIPLY-CORRESPONDING struc1 BY struc2.
  • Toutes les zones ayant le même nom des structures
    struc1 et struc2 seront multipliés entre elles et
    le résultat sera stocké dans la structure struc1.

44
Instructions de base Opérations Arithmétiques
  • Division
  • DIVIDE ltf1gt BY ltf2gt.
  • Équivalent à ltf1gt ltf1gt / ltf2gt.
  • DIVIDE-CORRESPONDING struc1 BY struc2.
  • Toutes les zones ayant le même nom des structures
    struc1 et struc2 seront divisées entre elles et
    le résultat sera stocké dans la structure struc1.

45
Instruction de base Traitement Conditionnel
  • Branchement selon une condition logique
  • IF condition1.
  • traitement.
  • ELSEIF condition2.
  • traitement.
  • ELSE.
  • traitement.
  • ENDIF.

46
Instruction de base Traitement Conditionnel
  • Opérateurs logiques
  • tous types de champs
  • EQ equal to
  • NE not equal to
  • LT less than
  • LE less than or equal to
  • GT greater than
  • GE greater than or equal to

champs de type C ou N CO Contains
Only CN Contains Not only CA Contains
Any NA contains Not Any CS Contains
String NS contains No String CP Contains
Pattern NP contains No Pattern
47
Instruction de base Traitement Conditionnel
  • Branchement conditionnel selon une valeur de zone
  • CASE ltfgt.
  • WHEN ltf1gt.
  • ltstatement blockgt
  • WHEN ltf2gt.
  • ltstatement blockgt
  • WHEN OTHERS.
  • ltstatement blockgt
  • ENDCASE.

48
Instruction de base Traitement de boucle
  • Boucle inconditionnelle
  • DO ltngt TIMES.
  • CHECK condition.
  • IF condition.
  • EXIT.
  • ENDIF.
  • traitement.
  • ENDDO.
  • Boucle conditionnelle
  • WHILE condition.
  • traitement.
  • ENDWHILE.

49
Instruction des base Traitement de boucle
  • EXIT sortie de la boucle
  • CONTINUE passage à l occurrence suivante

DO 4 TIMES. IF zone GT 100. CONTINUE.
ENDIF. ENDDO.
WHILE I gt 400. IF SY-SUBRC NE 0.
EXIT. ENDIF. ENDWHILE.
  • Comment vont réagir les boucles dans chacun de
    ces 2 cas ?

50
Instructions de Base Points à retenir
  • WRITE édition de données
  • MOVE affectation de données
  • CONCATENATE, SPLIT, TRANSLATE opérations sur
    chaîne de caractère
  • ADD, SUBTRACT, MULTIPLY, DIVIDE calculs
  • IF..ENDIF, CASEENDCASE instructions
    conditionnelles
  • DO..ENDDO, WHILEENDWHILE instructions de
    boucle
  • Dans l aide on-line ABAP, vous trouverez toutes
    les options de ces instructions et d autres
    instructions encore

51
Chapitre 4Reporting ABAP IVTraitement des
tables SAP l instruction SELECT
52
Traitement des tables SAP Open SQL
  • Afin de rendre ABAP IV indépendant du système de
    base de données relationnelle utilisé, SAP a créé
    un ensemble dordres SQL appelé OPEN SQL.
  • Une interface Base de Donnée traduit les ordres
    Open SQL en ordre SQL spécifiques au système de
    Base de Donnée utilisé (Native SQL).
  • Il est aussi possible de coder directement des
    ordres Native SQL dans un programme ABAP IV.

53
Sélection des données Lecture séquentielle
  • Sélectionner toutes les données de plusieurs
    lignes dune table
  • SELECT FROM dbtab
  • WHERE champ1 valeur1
  • AND champ2 valeur2 .
  • WRITE dbtab-champ1, dbtab-champ2.
  • ENDSELECT.
  • SY-SUBRC 0 au moins une ligne sélectionnée
  • 4 aucune ligne sélectionnées

54
Sélection des données Lecture directe
  • Sélectionner toutes les données dune seule ligne
    de table
  • SELECT SINGLE FROM dbtab
  • WHERE CLE1 valeur1
  • AND CLE2 valeur2.
  • Tous les champs clés primaires de la table
    doivent être spécifiés
  • SY-SUBRC 0 la ligne spécifiée a été trouvée
  • 4 la ligne spécifiée na pas été
    trouvée

55
SELECT fonctions d agrégat
  • Des fonctions d agrégat sont disponibles lors du
    SELECT
  • COUNT( ) nombre d entrées sélectionnées
  • MAX (champ) la valeur maximale lue pour un
    champ
  • MIN (champ) la valeur minimale lue pour un
    champ
  • AVG (champ) la valeur moyenne
  • SUM (champ) la somme des valeurs d un champ

56
SELECT fonctions d agrégat
  • Exemple
  • SELECT COUNT() MAX(LIFNR)
  • INTO (NB_FOU , W_MAX)
  • FROM LFA1.
  • WRITE NB_FOU, W_MAX .
  • Que contiennent les zones NB_FOU et W_MAX ?

57
SELECT jointures de table
  • SELECT aliasdbtab1zone1 aliasdbtab2zone2
  • INTO (dbtab1-zone1 , dbtab2- zone2)
  • FROM dbtab1 AS aliasdbtab1
  • INNER JOIN dbtab2 AS aliasdbtab2
  • ON aliasdbtab1clé1 aliasdbtab2clé1
  • WHERE ...
  • WRITE / dbtab1-zone1, dbtab2-zone2.
  • ENDSELECT.
  • SAP va sélectionner tous les enregistrements de
    dbtab1 et dbtab2 qui ont les mêmes valeurs de clé
    pour clé1

58
SELECT jointures de table
  • Exemple
  • SELECT F1KUNNR F1NAME1 F2VBELN
  • INTO (KNA1-KUNNR,KNA1-NAME1,VBAK-VBELN)
  • FROM KNA1 AS F1 JOIN VBAK AS F2
  • ON F1KUNNR F2KUNNR.
  • WRITE / KNA1-KUNNR, 13 KNA1-NAME1, 50
    VBAK-VBELN.
  • ENDSELECT.

59
SELECT jointures de tables
VBAK commandes clients
KNA1 clients
JOIN
Résultat de la jointure
On remarque qu aucune jointure n a été faite
pour le client n 2300
60
SELECT jointures de tables
  • On peut joindre 2 tables même s il n existe pas
    toutes les occurrences dans la 2è table il faut
    utiliser alors utiliser l option LEFT OUTER
    JOIN.
  • Syntaxe
  • SELECT aliasdbtab1zone1 aliasdbtab2zone2
  • INTO (dbtab1-zone1 , dbtab2- zone2)
  • FROM dbtab1 AS aliasdbtab1
  • LEFT OUTER JOIN dbtab2 AS aliasdbtab2
  • ON aliasdbtab1clé1 aliasdbtab2clé1
  • WHERE ...
  • WRITE / dbtab1-zone1, dbtab2-zone2.
  • ENDSELECT

61
SELECT jointures de table
  • Exemple
  • SELECT F1KUNNR F1NAME1 F2VBELN
  • INTO (KNA1-KUNNR,KNA1-NAME1,VBAK-VBELN)
  • FROM KNA1 AS F1
  • LEFT OUTER JOIN VBAK AS F2
  • ON F1KUNNR F2KUNNR.
  • WRITE / KNA1-KUNNR, 13 KNA1-NAME1, 50
    VBAK-VBELN.
  • ENDSELECT.

62
SELECT jointures de tables
VBAK commandes clients
KNA1 clients
LEFT OUTER JOIN
Résultat de la jointure
On remarque qu une jointure a été faite pour le
client n 2300 , mais le n commande n est
renseigné
63
SELECT option HAVING
  • On peut ajouter des conditions supplémentaires de
    sélection dans un SELECT qui optimise
    considérablement les traitements.
  • Syntaxe
  • SELECT zone1 FROM dbtab
  • WHERE .
  • HAVING ltconditiongt.
  • ENDSELECT.

64
SELECT option HAVING
  • Exemple
  • SELECT LAND1 MAX( NAME1 )
  • INTO (LFA1-LAND1 , LFA1-NAME1)
  • FROM LFA1
  • GROUP BY LAND1
  • HAVING MAX( NAME1 ) GE 'S'.
  • WRITE / LFA1-LAND1, LFA1-NAME1.
  • ENDSELECT.
  • Qu édite cette instruction ?

65
SQL gestion des tables SAP
  • Il existe des instructions de mise à jour des
    tables SAP
  • INSERT dbtab création d un enregistrement
  • UPDATE dbtab modification d un enregistrement
  • DELETE dbtab suppression d un enregistrement
  • EN AUCUN CAS CES INSTRUCTIONS NE DOIVENT ETRE
    UTILISES SUR LES TABLES STANDARD SAP seulement
    sur les tables spécifiques que vous devez créer
    pour vos programmes

66
Sélection des donnéesCritères de sélection
  • SELECT-OPTIONS ltseltabgt FOR ltdbtab-field1gt.
  • définit un critère de sélection pour le champ
    dbtab-field1
  • SELECT FROM dbtab
  • WHERE ltfield1gt IN ltseltabgt.
  • En déclarant un Select-options un écran de
    sélection sera automatiquement généré par SAP.
  • Les SELECT-OPTIONS permettent de gérer une ou
    plusieurs fourchettes de valeurs

67
Sélection des donnéesParamètres
  • Linstruction PARAMETERS permet de définir une
    variable en saisie sur lécran de sélection qui
    na aucun lien avec un champ de table base de
    donnée.
  • PARAMETERS P_DATE TYPE D
  • DEFAULT SY-DATUM.
  • Ou
  • PARAMETERS P_DATE LIKE SY-DATUM

68
SAP - SQL Points à retenir
  • SELECT lecture des tables SAP (standard ou
    spécifiques).
  • MAX, MIN, AVG, SUM fonctions d agrégat
  • JOIN fonctions de jointure de table
  • INSERT, UPDATE, DELETE instructions à utiliser
    seulement sur les tables spécifiques
  • SELECT-OPTIONS, PARAMETERS critères de
    sélection qui génèrent un écran de sélection

69
Reporting ABAP IVChapitre 5Modularité
70
Reporting ABAP IVModularité
  • Eviter les blocs de traitement redondants
  • Accroître la lisibilité dun programme et donc
    faciliter sa maintenance et son évolution
  • SAP propose les techniques de modularisation
    suivantes
  • Les programmes includes
  • les sous-routines
  • les modules fonctions

71
ModularitéProgramme Include
  • Contient un bloc de code pouvant être utilisé
    dans plusieurs programmes (Ex déclaration de
    données)
  • Permet de regrouper des traitements par blocs
    fonctionnels ou techniques
  • Création type de programme I dans les
    attributs.
  • Utilisation dans un autre programme INCLUDE
    ltincludegt.

72
ModularitéLes sous-routines
  • Une sous-routine est un bloc de traitement que
    lon peut appeler plusieurs fois dans un
    programme.
  • Usage sans paramètres
  • PERFORM ltsousroutinegt. Appel de la routine
  • FORM ltsousroutinegt . Définition de la routine
  • Bloc de traitement.
  • ENDFORM.

73
ModularitéLes sous-routines
  • passage de paramètres par référence.
  • PERFORM ltsousroutinegt TABLES lttab1gt lttab2gt
    USING ltp1gt ltp2gt ltp3gt CHANGING ltp4gt ltp5gt.
  • FORM ltsousroutinegt TABLES ltftab1gt ltftab2gt
    USING ltfp1gt ltfp2gt ltfp3gt CHANGING ltfp4gt
    ltfp5gt.
  • Bloc de traitement.
  • ENDFORM.

74
ModularitéLes sous-routines
  • Passage de paramètres par valeur
  • FORM ltsousroutinegt USING VALUE(ltfp1gt)
  • CHANGING VALUE (ltfp2gt). Bloc de traitement.
  • ENDFORM.
  • Les paramètres formels sont créés comme copies
    des paramètres actuels .
  • USING Une modification du paramètre formel na
    pas deffet sur le paramètre actuel.
  • CHANGING Une modification du paramètre formel
    entraîne la modification du paramètre actuel.

75
ModularitéLes sous-routines
  • Il est possible dappeler une sous-routine
    définie dans un programme extérieur
  • PERFORM ltsousroutinegt(ltprogrammegt) TABLES
    ... USING .... CHANGING ...
  • Les sous-routines peuvent alors être définies
    dans un programme non exécutable de type S (Pool
    de sous-routines).

76
ModularitéModule de Fonction
  • Les modules de fonction sont des sous-routines
    spéciales stockées dans une bibliothèque
    centrale.
  • SAP fournit de nombreux modules de fonction
    standard , mais lon peut en créer de nouveaux.
  • La définition des paramètres dimport/export
    ainsi que le gestion des erreurs est
    standardisée.
  • Il est possible de tester indépendamment un
    module de fonction. (bouton Test Ind)

77
Module de FonctionCréation
  • La gestion des modules de fonction se fait par la
    transaction SE37.
  • Les étapes de la création sont les suivantes
  • Création dun groupe de fonction
  • Définition des attributs du module de fonction
  • Définition des paramètres Import/Export
  • Définition des paramètres Tables
  • Définition des exceptions
  • Ecriture du code source

78
Module de FonctionUtilisation
  • Lappel dun module fonction dans un programme
    ABAP se fait de la façon suivante
  • CALL FUNCTION ltfonctiongt
  • EXPORTING f1 a1 .... fn an IMPORTING
    f1 a1 .... fn an CHANGING f1 a1 ....
    fn an TABLES f1 a1 .... fn
    an EXCEPTIONS e1 r1 .... en rn .
  • Utiliser le modèle d instructions dans
    l éditeur ABAP pour coder l appel à la fonction
    ainsi , on ne risque pas d oublier des
    paramètres d appel de la fonction.

79
Module de FonctionUtilisation
  • PARAMETRES
  • EXPORTING il s agit des paramètres que l on
    va passer au module fonction (ils ne sont pas
    modifiés par la fonction)
  • IMPORTING ce sont les résultats renvoyés par
    la fonction
  • CHANGING . ce sont des paramètres que l on
    envoit à la fonction, mais qui sont modifiés par
    la fonction.
  • TABLES ce sont les tables internes que l on
    passe à la fonction ou que l on reçoit de la
    fonction
  • EXCEPTIONS .. c est l ensemble des codes
    retour possibles pour la fonction. Ce sont des
    constantes numériques. Si le SY-SUBRC est
    différent de 0, SY-SUBRC contient la valeur de
    l exception l exception étant le motif
    d erreur.

80
Module de FonctionExemple
  • CALL FUNCTION 'STRING_CONCATENATE'
    EXPORTING STRING1 MOT1 STRING2
    MOT2 IMPORTING STRING MOT
    EXCEPTIONS TOO_SMALL 1 OTHERS
    2.
  • CASE SY-SUBRC.
  • WHEN 0.
  • WRITE / MOT.
  • WHEN 1.
  • WRITE /  Erreur chaîne de
    caractères trop courte 
  • WHEN 2.
  • WRITE/  Erreur
    impossibilité de concaténer 
  • ENDCASE.

81
Reporting ABAP IVChapitre 6 Tables Internes
82
Tables internes Définition
  • Les tables internes sont des structures de
    données qui existent le temps de l exécution du
    programme. Elles peuvent contenir un nombre
    quelconque d enregistrements ayant la même
    structure, avec ou sans ligne d en-tête.
  • L en-tête est similaire à une structure et sert
    de work area (aire de travail) à la table
    interne. Le type de données d un enregistrement
    peut être élémentaire ou structuré.

83
Tables internes Différents types (1/2)
  • STANDARD La recherche dans une table standard
    s effectue de manière séquentielle. Le temps
    d accès augmente donc linéairement avec le
    nombre d entrées. Il est recommandé d accéder à
    ces tables avec des index.
  • SORTED Ce type de table est toujours sauvegardé
    correctement triée. L accès utilise une clé
    binaire. Si cette clé n est pas unique le
    système retient l enregistrement avec l index
    le plus faible. Le temps d accès augmente de
    façon logarithmique avec le nombre d entrées. On
    peut également y accéder par index. Le temps pour
    insérer un enregistrement est plus long que pour
    une table standard puisque le système vérifie que
    le tri est correct après chaque insertion.

84
Tables internes Différents types (2/2)
  • HASHED La table est gérée par une procédure
    interne de hashage. Une table hashée est une
    collection d enregistrements qui peuvent être
    adressés grâce à une clé unique. On ne peut pas
    utiliser d index pour accéder à ce type de
    table. Toutes les entrées ont une clé unique. Le
    temps daccès est constant quelque soit le nombre
    denregistrements. On ne peut y accéder quen
    utilisant les opérations génériques du type SORT,
    LOOP. Les opérations avec accès implicites ou
    explicites aux index ne sont pas autorisées
    (comme LOOP ... FROM ou INSERT itab avec un
    LOOP).
  • Notons que les types STANDARD et SORTED sont
    réunis sous le type générique INDEX TABLE.
  • Tous les types de tables internes sont réunis
    sous l appellation ANY TABLE.

85
Tables internes Déclaration
  • Déclaration de table standard
  • DATA BEGIN OF itab OCCURS 100, (1)
  • nom(20) TYPE C,
  • code_postal(5) TYPE N,
  • ville(20) TYPE C,
  • END OF itab.
  • Déclaration de table hashée (en référence à un
    type existant)
  • TYPES BEGIN OF struc,
  • name(10),
  • age TYPE I
  • END OF STRUC.
  • TYPES HTAB TYPE HASHED TABLE OF STRUC WITH
    UNIQUE KEY NAME.
  • DATA PERSONS TYPE HTAB.

86
Les tables internesStructure
Table
read table
modify table
Work Area
87
Tables internesAjout
  • APPEND lttabnamegt.
  • Ajoute un poste en fin de table à partir des
    valeurs renseignées dans la work area
  • Move Dupont TO ITAB-NOM.
  • Move 75000 TO ITAB-CP.
  • Move Paris TO ITAB-VILLE.
  • APPEND ITAB.
  • INSERT lttabnamegt INDEX ltidxgt.
  • Insère un poste à la ligne ltidxgt. L'index des
    postes suivants est incrémenté de 1.

88
Tables internesMise à jour
  • MODIFY lttabnamegt INDEX ltidxgt .
  • Modifie la ligne ltidxgt. Si on ne précise pas
    d index alors l instruction MODIFY doit être
    incluse dans un LOOP.
  • Ajout d'un poste en fonction de la clé standard
  • COLLECT ltitabgt
  • La clé standard d'une table interne est composée
    de tous les champs de type non-numérique (P, I et
    F).
  • Si un poste existe déjà avec la même clé
    standard, le système ne crée pas de nouveau poste
    mais cumule les valeurs des champs numériques.

89
Les tables internesMise à jour (Exemple)
  • COLLECT Exemple
  • DATA BEGIN OF CLIENT OCCURS 100,
  • NOM(20) TYPE C,
  • VILLE(20) TYPE C,
  • CA TYPE P,
  • END OF CLIENT.
  • MOVE 'Dupont' TO CLIENT-NOM,
  • 'Paris' TO CLIENT-VILLE,
  • 10000 TO CLIENT-CA.
  • COLLECT CLIENT.

MOVE 'Dupont' TO CLIENT-NOM, 'Lyon' TO
CLIENT-VILLE, 50000 TO CLIENT-CA. COLLECT
CLIENT. MOVE 'Dupont' TO CLIENT-NOM, 'Paris'
TO CLIENT-VILLE, 30000 TO CLIENT-CA. COLLECT
CLIENT. Résultat Dupont Paris 40000 Dupont Lyon
50000
90
Tables internesSuppression
  • DELETE lttabnamegt INDEX ltidxgt .
  • Supprime la ligne ltidxgt
  • CLEAR lttabnamegt.
  • Initialise la work area (i.e. l enregistrement
    courant)
  • REFRESH lttabnamegt.
  • Supprime tous les postes de la table. Attention,
    la work area n est pas initialisée.

91
Tables internesLecture séquentielle
  • Lecture de tous les postes
  • LOOP AT itab.
  • WRITE / itab-nom, itab-rue, itab-ville.
  • ENDLOOP.
  • Lecture sélective de postes
  • LOOP AT itab WHERE nom 'Dupont'.
  • WRITE / itab-rue, itab-ville.
  • ENDLOOP.

92
Tables internesLecture directe
  • En utilisant l'index
  • READ TABLE ltitabgt INDEX ltidxgt.
  • En utilisant la clé standard
  • READ TABLE ltitabgt .

93
Tables internesTris / Doublons
  • On trie une table interne avec l instruction
    SORT.
  • SORT itab BY f1 f2 ASCENDING DESCENDING.
  • On peut effectuer des tris complexes du type
  • SORT itab DESCENDING BY f3 ASCENDING.
  • Dans ce cas la table interne itab sera triée
    globalement de façon ascendante, sauf pour le
    champ f3 qui le sera de façon descendante.
  • Un des intérêts de trier une table est de
    supprimer les doublons, pour cela on utilise
    l intruction suivante
  • DELETE ADJACENT DUPLICATES FROM itab.

94
Tables internesRuptures
  • LOOP AT itab.
  • AT FIRST. ENDAT.
  • AT NEW ltfgt. ENDAT.
  • AT END OF ltfgt. ENDAT.
  • AT LAST. ENDAT.
  • ENDLOOP.
  • AT FIRST ENDAT les instructions incluses à
    l intérieur de cet événement ne seront exécutés
    qu une seule fois en DEBUT de boucle
  • AT LAST ENDAT les instructions incluses à
    l intérieur de cet événement ne seront exécutés
    qu une seule fois en FIN de boucle

95
Tables internesRuptures
  • AT NEW ltfgt. ENDAT les instructions incluses à
    l intérieur de cet événement seront exécutés à
    chaque début de rupture de la zone ltfgt.
  • AT END OF ltfgt. ENDAT les instructions incluses
    à l intérieur de cet événement seront exécutés à
    chaque fin de rupture de la zone ltfgt. ( à chaque
    fin de changement de valeur de ltfgt)

96
Tables internesRuptures
  • Ruptures multi-critères
  • SORT ITAB BY ltfgt ltggt.
  • LOOP AT ITAB.
  • AT NEW ltfgt. ENDAT
  • AT NEW ltggt. ENDAT.
  • ..
  • AT END of ltggt ENDAT.
  • AT END of ltfgt ENDAT
  • ENDLOOP
  • Le contrôle de rupture effectué tient compte de
    toutes les colonnes à gauche de ltggt. AT NEW ltggt
    signifie que la rupture se base sur la
    concaténation des champs à gauche de la zone ltggt
    c est à dire zone ltfgt la zone ltggt.

97
Reporting ABAP IVChapitre 7 Gestion des
Fichiers
98
Fichiers extracts
  • Un fichier EXTRACT est constitué d'une séquence
    d'enregistrements.
  • Ces enregistrements peuvent avoir une structure
    variable.
  • On ne peut définir qu'un seul fichier EXTRACT par
    programme.
  • On ne peut lire un fichier EXTRACT que de façon
    séquentielle.

99
Fichiers extractsDéfinition des enregistrements
  • Les groupes de zones FIELD-GROUPS ltfggt.
  • Un field-group regroupe plusieurs champ sous un
    même nom. Il ne réserve pas d'espace mémoire mais
    est relié à des champs existants grâce à un
    pointeur .
  • Il existe un field-group particulier appelé
    HEADER. Les champs reliés au HEADER sont présent
    dans chaque enregistrement d'un fichier extract.
  • FIELD-GROUPS HEADER, DIVISION, MAGASIN

100
Fichiers extractsDéfinition des enregistrements
  • Affectation des zones à un groupe de zone
  • INSERT ltf1gt ltf2gt ltf3gt INTO ltfggt.
  • L'affectation de zones à un field-group peut se
    faire jusqu'au moment où le premier
    enregistrement utilisant ce field-group est créé.
  • INSERT NUM_ART DIV MAG INTO HEADER,
  • STOCK_DIV INTO DIVISION,
  • STOCK_MAG INTO MAGASIN.

101
Fichiers extractsCréation des enregistrements
  • EXTRACT ltfggt.
  • Crée un enregistrement contenant les valeurs des
    zones du HEADER puis des zones du field-group
    ltfggt au moment de l'EXTRACT. Les champs du HEADER
    préfixent chaque enregistrement pour former une
    clé de tri.
  • EXTRACT DIVISION.
  • EXTRACT MAGASIN.

HEADER
DIVISION
MAGASIN
102
Fichiers extractsLecture
  • SORT Tri selon l'ordre des champs du HEADER
  • Balayage
  • LOOP.
  • AT MAGASIN.
  • Traitement des postes relatifs au field-group
    MAGASIN.
  • ENDAT.
  • Traitement tous postes.
  • AT DIVISION.
  • Traitement des postes relatifs au field-group
    DIVISION.
  • ENDAT.
  • ENDLOOP.

103
Fichiers extractsLecture
  • Gestion des ruptures
  • LOOP.
  • AT FIRST.
  • Traitement premier poste de la table.
  • ENDAT.
  • AT NEW NUM_ART.
  • Traitement nouvelle valeur d'une zone.
  • ENDAT.
  • AT END OF NUM_ART.
  • Traitement fin de valeur d'une zone.
  • ENDAT.
  • AT LAST.
  • Traitement dernier poste de la table.
  • ENDAT.
  • ENDLOOP.

104
Comparaison traitements table interne/fichiers
extracts
  • Les fichiers extracts sont performants pour des
    tableaux de gros volumes.
  • Ils permettent aussi de générer des tableaux de
    structure variable.
  • Chemin Outils -gt Abap Workbench -gt Test -gt
    Analyse durée exécution

105
Fichiers du serveur dapplicationOuverture
  • OPEN DATASET ltdsngt ltoption1gt ltoption2gt.
  • Si le système ne peut pas ouvrir le fichier
    SY-SUBRC 8.
  • option1
  • FOR INPUT en mode lecture
  • FOR OUTPUT en mode écriture
  • FOR APPENDING en mode écriture en fin de
    fichier
  • option2
  • IN TEXT MODE en mode text
  • IN BINARY MODE en mode binaire (défaut)

106
Fichiers du serveur dapplicationLecture
  • READ DATASET ltdsngt INTO ltstructuregt.
  • Lecture dun enregistrement du fichier ltdsngt
    dans la variable ltstructuregt. En fin de fichier,
    SY-SUBRC est différent de zéro.
  • Exemple
  • DO.
  • READ DATASET ltdsngt INTO ltstructuregt.
  • IF SY-SUBRC NE 0.
  • EXIT.
  • ENDIF.
  • Traitement.
  • ENDDO.

107
Fichiers du serveur dapplicationEcriture -
Fermeture
  • TRANSFER ltstructuregt TO ltdsngt.
  • Transfère le contenu de la variable ltstructuregt
    dans le fichier ltdsngt.
  • CLOSE DATASET ltdsngt.
  • Ferme le fichier ltdsngt.

108
Fichiers du serveur de présentationFonction
UPLOAD
  • Cette fonction permet de charger dans une table
    interne un fichier du serveur de présentation
  • - Paramètres dexport
  • FILENAME Nom du fichier
  • FILETYPE type du fichier
  • BIN fichiers binaires.
  • ASC fichiers texte avec pointeurs de fin de
    ligne.
  • DAT fichiers Excel files sauvegardés comme
    fichiers texte avec tabulateurs.
  • WK1 fichiers Excel et Lotus files sauvegardés
    comme feuilles WK1.
  • - Paramètre table table interne ABAP IV

109
Fichiers du serveur de présentationFonction
DOWNLOAD
  • Cette fonction permet de télécharger une table
    interne ABAP IV sur un ficher local.
  • Les paramètres sont les mêmes que pour la
    fonction UPLOAD.

110
Reporting ABAP IVChapitre 8 Concepts de
programmation avancée
111
Report interactifPrésentation
  • Dans le cas d un report interactif,
    l utilisateur peut déclencher des opérations et
    des traitements par des actions sur la liste
    résultante d une interrogation.
  • On peut, par exemple, appeler des transactions,
    d autres reports, lancer des impressions,
    imbriquer des listes
  • Ce type de traitement nécessite souvent de gérer
    le  statut de liste  de la surface du
    programme.
  • Cela s effectue par le MENU PAINTER (SE41).

112
Report interactifMENU PAINTER (SE41)
  • L interface de gestion de surface se décompose
    en 3 éléments pour chaque statut géré

Barre de menus
Barre de fonctions
Barre d outils
113
MENU PAINTERBarre de menus
  • La barre permet de définir le chemin pour accéder
    aux événements. A chaque branche de
    l arborescence se trouve un code fonction ou nom
    de transaction.

114
MENU PAINTERBarre de fonctions
  • Dans cette partie on paramètre les fonctions de
    la surface. Lorsque l utilisateur clique sur un
    bouton ou icône de fonction, le code de la
    fonction (ici  COMMANDE ) est stocké dans
    SY-UCOMM.

115
MENU PAINTERBarre d outils
  • La barre d outils permet une plus grande
    convivialité par rapport à la barre de menus,
    notamment l insertion d icône. On y retrouve
    les options des menus les plus souvents utilisés.

116
Report interactif ABAPCommande At
Line-selection
  • Déclenche un événement à chaque fois que
    l utilisateur choisit une ligne dans une liste
    (une ligne générée par des instructions telles
    que WRITE, ULINE ou SKIP) avec le curseur et
    presse une touche de fonctions qui a la fonction
    PICK dans la définition de l interface (1).
  • L événement AT LINE-SELECTION génère
    habituellement des listes détaillées qui recouvre
    la liste en cours.
  • Lors de l affichage de la liste d origine, on
    sauvegarde les champs à réutiliser grâce à
    l instruction HIDE.

117
Report interactifCommande At User-command
  • Cet événement s exécute lorsque l utilisateur
    presse une touche fonction ou effectue une entrée
    dans le champ de commande.
  • Plusieurs fonctions sont exécutées directement
    par le système et donc ne peuvent pas être
    traitées par le programme
  • PICK réservé pour AT LINE-SELECTION
  • PFn réservé pour AT PFn
  • /... Commande système
  • PRI Imprimer
  • BACK Retour
  • Le code qui va déclecher l événement est stocké
    dans le champ SY-UCOMM.

118
Débogeur SAP
  • Le débogeur est un outil d exécution de
    programme en mode pas à pas. Le contenu des
    champs est visualisable.

119
Débogeur SAP
  • Le débogeur est très utile pour
  • - vérifier le chargement d une table interne,
  • - vérifier les formats des valeurs,
  • - vérifier les paramètres d une requête SQL,
  • - détecter de mauvaises affectations de champs,
  • - comprendre le déroulement d un programme.

120
Trace SQL
  • Il existe un outil de visualisation des accès
    SQL. Il permet entre autres
  • - de rechercher rapidement une table utilisée par
    une transaction standard SAP,
  • - de vérifier l accès aux tables utilisation
    d un champ d index, clé primaire
  • Chemin Outils -gt Abap Workbench -gt Test -gt
    Trace SQL

121
Trace SQL
  • Écran de base
  • Une trace SQL se déclenche à un instant T et pour
    un utilisateur X. Toutes les actions de X sont
    alors enregistrés dans un fichier LOG.
  • Après avoir arrêté la trace, ce fichier est
    visualisable par la fonction  List Trace .

122
Sélection des données Base de Donnée Logique
  • Une base de données logique (BDL) est une méthode
    particulière daccès aux données. C est un
    ensemble de tables SAP dont les liens (ou
    jointures) sont prédéfinies.
  • Elle peut être associée à un programme ABAP IV de
    type Report dans les caractéristiques.
  • Une BDL est toujours accompagnée d un programme
    spécial qui met à votre disposition un ensemble
    dentrées de tables de base de données selon un
    ordre hiérarchique.
  • Transaction SE36 Gestion des bases de données
    logiques

123
Sélection des données Base de Donnée Logique
  • Exemple BDL Article MSM

Données générales MARAV
Unités de quantité MARM
Données de vente MVKE
Données par division MARCV
Données par magasin MARD
Cette BDL peut lire et fournir au programme
auquel elle est associée toutes les entrées de
ces tables dans un ordre hiérarchique et
séquentiel .
124
Base de Donnée Logique l événement GET
  • Syntaxe GET ltdbtabgt.
  • L événement GET est déclenché dans le programme
    quand SAP a mis à disposition les données de la
    table ltdbtabgt.
  • Exemple
  • REPORT ZZEXEMPLE.
  • TABLES MARAV.
  • GET MARAV.
  • WRITE MARAV-MATNR, MARAV-MAKTX.
  • Attention les données de niveaux inférieurs de
    l arborescence ne sont pas disponibles.

125
Base de Donnée Logique l événement GET
  • Comment faire pour accéder aux données d un
    niveau inférieur ? par exemple la table MARD.
  • Il suffit de positionner l événement GET sur la
    table de niveau inférieur.
  • exemple
  • REPORT ZZEXEMPLE.
  • TABLES MARAV, MARD.
  • GET MARD.
  • WRITE MARD-LGORT, MARD-MATNR, MARV-MAKTX.
  • A un niveau inférieur de l arborescence, on
    dispose de toutes les données des niveaux
    supérieurs.

126
Base de Donnée Logique Ecran de sélection
  • A chaque BDL est associé au moins un écran de
    sélection.
  • Il permet à lutilisateur de saisir des valeurs
    de critère de sélection afin de restreindre la
    sélection des données (Ex numéro darticle).
  • Lapparition de ces critères de sélection dépend
    des tables de bases de données qui sont déclarées
    dans le programme par linstruction TABLES.

127
Messages d erreurs
  • MESSAGE tnnn(mid).
  • MESSAGE ID mid TYPE t NUMBER nnn.
  • Produit un message de type  t , ayant pour
    numéro  nnn  et appartenant à la classe de
    message  mid .
  • Types de messages
  • I - Info Press ENTER to continue
  • W - Warning Correction possible
  • E - Error Correction required
  • A - Abend Transaction terminated
  • X - Exit Transaction terminated with
    short dump
  • S - Success Message on next screen

128
Message Classe de message
  • On maintient les classes de messages et les
    messages qu il contient par la transaction SE91
    ou le menu Abap workbench - Développement -
    Environnement de développement - Messages.
  • Exemple de message avec paramètre.
  • Soit le message 456 de la classe de message 99,
    ayant comme contenu  L utilisateur ne peut
    accéder au mandant  . L appel à ce message, en
    tant que message d erreur  E , s effectue
    comme suit
  • MESSAGE E456(99) WITH sy-uname sy-mandt
  • Les deux variables passées en paramètres se
    substitue de façon  en série  aux .

129
Comparaison traitements Outil  Analyse durée
d exécution 
  • L outil  analyse durée d  exécution  intégré
    dans SAP permet d analyser les performances des
    transactions et programmes créés dans l Abap
    Workbench.
  • visualiser les durées d exécution selon trois
    catégories
  • - instruction ABAP (EXPORT, IMPORT),
  • - accès à la base de donnée (SELECT SQL...)
  • - système R/3 (chargement du programme)
Write a Comment
User Comments (0)
About PowerShow.com