Académique Documents
Professionnel Documents
Culture Documents
Modifi par
Valid par
Version 1
ATTENTION : ce document est une rfrence. A chaque fois quil est modifi, il convient de
changer de version et de noter les modifications effectues en tte de document avec la date.
HISTORIQUE DES MODIFICATIONS
Date
Version
Auteur
Motifs
10/07/03
0.0
M. LE FAUCHEUR
Version initiale
23/12/03
1.0
S. BRUN
Validation
20/01/03
1.1
M. LE FAUCHEUR
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 1
Modifi par
Valid par
Version 1
Sommaire
1.
OBJECTIFS DU DOCUMENT......................................................................................6
2.
PRSENTATION GLOBALE........................................................................................6
2.1.
2.2.
3.
CONCEPTS GNRAUX.................................................................................................6
ACTEURS PRINCIPAUX.................................................................................................6
4.
5.
LABAP DICTIONARY................................................................................................22
5.1.
TABLES, STRUCTURES ET VUES.................................................................................22
5.1.1.
LABAP Dictionary...........................................................................................22
5.1.2.
Mthodes de recherche.....................................................................................23
5.1.3.
Tables et structures...........................................................................................23
5.1.4.
Vues...................................................................................................................24
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 2
Modifi par
Valid par
Version 1
5.2.
ELMENTS DE DONNES ET DOMAINES.....................................................................25
5.2.1.
Objets de base...................................................................................................25
5.2.2.
Une conception deux niveaux........................................................................25
6.
ANALYSE DE PROGRAMMES.................................................................................27
6.1.
LANALYSE STATIQUE : LDITEUR ABAP.................................................................27
6.1.1.
Vue du programme : lObject Navigator..........................................................27
6.1.2.
Exemple de programme et syntaxe ABAP gnrale..........................................27
6.1.3.
Navigation........................................................................................................29
6.1.4.
Aide et documentation......................................................................................29
6.1.5.
Programme de base..........................................................................................30
6.2.
LANALYSE DYNAMIQUE : LE MODE DBOGUEUR......................................................31
6.2.1.
Excution en mode dbogueur..........................................................................31
6.2.2.
Excution pas pas..........................................................................................32
6.2.3.
Utilisation du point darrt..............................................................................33
7.
8.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 3
8.1.2.
8.1.3.
8.1.4.
8.1.5.
8.1.6.
8.1.7.
9.
Modifi par
Valid par
Version 1
Modalits daccs.............................................................................................53
SELECT SINGLE..............................................................................................54
SELECTENDSELECT...................................................................................55
Slection par blocs (Array fetch)......................................................................56
La clause INTO.................................................................................................57
La clause INTO CORRESPONDING FIELDS.................................................59
PRINCIPES DE MODULARISATION.......................................................................60
9.1.
ELMENTS DUN PROGRAMME ABAP.......................................................................60
9.1.1.
Les vnements.................................................................................................60
9.1.1.1.
Exemple : programme ABAP avec vnements............................................60
9.1.1.2.
Exemple : excution dun programme avec vnements..............................61
9.1.1.3.
Les vnements dans un report.....................................................................62
9.1.2.
Les sous-routines..............................................................................................63
9.1.2.1.
Sous-routines et Object Navigator................................................................63
9.1.2.2.
Exemple de sous-routine...............................................................................64
9.1.3.
Les modules fonction........................................................................................65
10.
EVOLUTION DU STANDARD...................................................................................67
10.1.
ETENDUE DES POSSIBILITS...................................................................................67
10.1.1. Plusieurs possibilits de faire voluer le standard SAP :.................................67
10.1.2. Procdure de choix de la mthode :.................................................................67
10.2.
PERSONNALISATION...............................................................................................68
10.2.1. Personnalisation au niveau Entreprise :..........................................................68
10.2.2. Personnalisation au niveau Rles :..................................................................68
10.2.3. Personnalisation au niveau Utilisateur :.........................................................68
10.3.
EXTENSIONS..........................................................................................................68
10.3.1. Dictionnaire de donnes...................................................................................68
10.3.1.1.
Extensions de tables.....................................................................................68
10.3.1.2.
Exit de zone...................................................................................................69
10.3.2. Customer-exits..................................................................................................69
10.3.3. Business Transaction Events............................................................................72
10.3.4. Business Add-Ins (aka BAdI)............................................................................73
10.4.
MODIFICATIONS.....................................................................................................75
10.4.1. User exits..........................................................................................................75
10.4.2. Modification assistes......................................................................................76
10.4.3. Modification non assistes...............................................................................76
11.
11.1.
ANALYSE DES ERREURS.........................................................................................77
11.1.1. Analyse du vidage de la mmoire ABAP : ST22...............................................77
11.1.2. Prsentation du compte rendu derreur............................................................78
11.1.3. Time-out............................................................................................................81
11.1.4. Autres erreurs dexcution................................................................................82
11.2.
OSS.......................................................................................................................83
11.2.1. Prsentation......................................................................................................83
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 4
11.2.2.
11.2.3.
12.
Modifi par
Valid par
Version 1
Mthodes de recherche.....................................................................................84
Cration dun message.....................................................................................84
ANNEXES......................................................................................................................87
12.1.
EXEMPLES DTAILLS...........................................................................................87
12.1.1. Exemple 1 : programme ZFORMATION1........................................................87
12.1.2. Exemple 2 : programme ZFORMATION2........................................................88
12.1.3. Exemple 3 : Programme ZFORMATION3.......................................................89
12.1.4. Exemple 4 : programme ZFORMATION4........................................................91
12.1.5. Exemple 5 : programme ZFORMATION5........................................................93
12.1.6. Exemple 6 : programme ZFORMATION6........................................................94
12.1.7. Note OSS 94300................................................................................................96
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 5
Modifi par
Valid par
Version 1
1. Objectifs du document
Lobjectif de ce document est de permettre aux consultants fonctionnels de mieux
apprhender les aspects techniques lis au langage ABAP dans lexercice de leur mtier.
2. Prsentation globale
2.1. Concepts gnraux
Les points suivants seront abords dans ce guide :
- ABAP Workbench : les outils
- Droulement dun programme
- LABAP dictionary : les tables
- Analyse de programmes
- Dclarations de donnes et expression ABAP
- Accs la base de donnes
- Modularisation des programmes
- Evolution du standard
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 6
Modifi par
Valid par
Version 1
Prsentation dABAP
Conception et ralisation
SAP
solution
Performance tools
ABAP Dictionary
Debugger
Screen Painter
Menu Painter
Test sequences
Modeling
Workbench
Organiser
Version
management
Function Builder
ABAP Editor
Analysis/
design
Fichier
260038387.doc
Implmentation
Modifi le 10/02/15
Test
Administration
Imprim le 15/07/03
Page 7
Modifi par
Valid par
Version 1
Le R/3 Repository
Presentation
Server
Layer
Application
Server
Layer
ABAP program
Cross client
Repository
Database
Client-specific
Customizing tables
Applications tables
Tous les objets crs partir des outils de dveloppement de lABAP Workbench font partie
du Repository. Les objets du Repository sont tous intermandants.
Le R/3 Repository est une partie spcifique de systme de bas de donnes.
Organisation du Repository
Le Repository sorganise par application. Chaque application se subdivise en classes de
dveloppement. En effet, chaque objet du Repository lors de sa cration doit tre affect
une classe de dveloppement.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 8
Modifi par
Valid par
Version 1
LABAP Workbench propose diffrents outils pour la conception dobjets. Les plus
importants dentre-eux sont :
Lditeur ABAP (SE38) pour le dveloppement de programme ABAP
Le dictionnaire ABAP (SE11) pour la cration dobjets du dictionnaire (tables,
structures, type de donnes)
Le Menu Painter (SE41) pour la conception des statuts dcrans (barres de menus,
boutons)
Le Screen Painter (SE51) pour la conception des dynpros des programmes interactifs
Le Function Builder (SE37) pour la gestion des modules de fonction
Le Class Builder (SE24) pour la cration des classes
Ces outils sont accessibles de deux faons :
Chaque outil peut tre appel individuellement afin de traiter chaque type dobjet de
faon indpendante.
On peut aussi utiliser lObject Navigator (SE80). Cette transaction permet dobtenir
une hirarchie de lobjet principal contenant tous ses sous-objets. La navigation entre
les objets et leur outil associ seffectue par double-clic.
3.2.3.1.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 9
Modifi par
Valid par
Version 1
Une fois le type dobjet et le nom de lobjet principal renseign dans la partie
suprieure de lcran, lObject Navigator indique la liste hirarchique de tous les
objets qui le composent (exemple : pour une classe de dveloppement donne, la
transaction affichera tous les objets rattachs cette classe, idem pour un programme
ou un groupe de fonctions)
Le bouton
permet de remonter dun niveau dans la hirarchie partir de lobjet
principal (exemple : si lon est dans un programme, on remontera dans la classe de
dveloppement).
La navigation entre les objets au sein de la transaction seffectue par double-clic (ou
menu contextuel). Double-cliquer sur un objet existant permet de lancer la transaction
associe qui permet de le modifier et de lafficher dans la partie de droite. Si lobjet
nexiste pas, le systme propose de le crer.
3.2.4.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 10
Modifi par
Valid par
Version 1
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 11
Modifi par
Valid par
Version 1
Cette transaction rpertorie tous les objets du Repository en fonction de leur type. Une fois le
type slectionn par double-clic, on peut effectuer une recherche en fonction de certains
critres (nom de lobjet, classe de dveloppement).
Cette transaction est approprie pour la recherche dobjets spcifiques.
3.2.6.
Un objet est transportable sil est rattach une classe de dveloppement autorisant le
transport lors de sa cration.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 12
Modifi par
Valid par
Version 1
Presentation
Server
Layer
Application
Server
Layer
Database
Larchitecture client/serveur
SAPGUI
SAPGUI
Dispatcher
SAPGUI
SAPGUI
Dispatcher
Work
Process
Work
Process
Work
Process
Work
Process
Work
Process
Work
Processss
Work
Processss
Work
Processss
Le SGBDR (Systme de Gestion de Base de Donnes relationnelle) est stock sur une seule
machine physique. Cest ce niveau que seffectue la gestion du dictionnaire physique de
donnes, savoir :
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 13
Modifi par
Valid par
Version 1
Leur validation.
Pendant une transaction, les donnes sont stockes dans un buffer. Cest seulement en fin de
transaction que la mise jour physique est effectue. On dit alors que la validation des
donnes seffectue par blocs.
4.1.1.2.
Le serveur dapplication
Au niveau applicatif, il existe sept types de tches diffrentes. Ces tches sont rparties sur un
ou plusieurs serveurs et gres sous forme dinstances (ensemble des process dun serveur).
Le serveur de prsentation
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 14
4.1.2.
Modifi par
Valid par
Version 1
Presentation
Server
Layer
Work Process
Application
Server
Layer
ABAP Program
Database
Il sagit dun schma simplifi afin de mettre en avant le fonctionnement dun programme
ABAP.
Les programmes ABAP sont excuts sur le serveur dapplication. Cela implique une prise en
compte de limportance des tapes de dialogue avec le serveur de base de donnes et le
serveur de prsentation lors du dveloppement dapplications.
Au niveau du serveur de prsentation, il y a techniquement 3 types dcran possibles
(dynpros, cran de slection et liste). Lutilisateur ne peroit pas les
Fichier
260038387.doc
Prsentation
Modifi le 10/02/15
Imprim le 15/07/03
Page 15
Modifi par
Valid par
Version 1
Chargement du programme
Program start
ABAP Program
Repository
Selection Screen
Data Objects
Database table
ABAP
Processing
Block
Time
Lorsque lutilisateur lance une application, le programme est charg au niveau du serveur
dapplication partir du Repository.
Lapplication lance dans cet exemple est un programme de type liste avec un cran de
slection,
une variable
Program
start et une structure.
ABAP Program
Lexcution du programme est contrle par lABAP runtime system (processeur ABAP).
Data Objects
4.2.3.
Database table
ABAPleRuntime
Modifi
10/02/15SystemImprim le 15/07/03
Fichier
260038387.doc
Time
Page 16
Modifi par
Valid par
Version 1
4.2.4.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 17
Modifi par
Valid par
Version 1
ABAP Program
Program start
Data Objects
ABAP
Processing
Block
Database table
Program start
4.2.5.
Edition de la liste
ABAP Program
Fichier
260038387.doc
Modifi le 10/02/15
ABAP Runtime System
Database table
Imprim le 15/07/03
Page 18
Modifi par
Valid par
Version 1
Data Objects
ABAP
Processing
Block
Time
Ldition dune liste est prvue dans le bloc de traitement. A la fin de lexcution, lABAP
runtime system envoie au serveur de prsentation lcran contenant la liste des donnes
afficher.
Prsentation
Un programme interactif (type pool de modules) implique un dialogue avec lutilisateur. Des
crans doivent tre dvelopps et leur dynamique (gestion des enchanements) gre. A
chaque cran correspond une logique dexcution.
4.3.2.
Logique dexcution
La logique dexcution dun cran (dynpro) dfinit son fonctionnement. Lorsquun cran
excut, on distingue trois tapes :
Process Before Output (PBO)
Cette tape est systmatiquement excute avant lenvoi dun cran au serveur de
prsentation. Il sagit dune liste dinstructions codes telles que, par exemple, les contrles
dautorisation, la gestion des blocages, la gestion des titres.
Saisie des donnes
Au cours de cette tape, lutilisateur saisie ses donnes et les valide.
Process After Input
Cette tape est systmatiquement excute lorsque lutilisateur valide ses donnes ou ralise
une action quelconque lcran. Elle correspond lexcution de routines telles que, par
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 19
Modifi par
Valid par
Version 1
exemple, le contrle des donnes saisies, le passage un autre cran ou la sortie (gestion du
OK_CODE) ou la modification de lcran actuel.
4.3.3.
4.3.3.1.
Etapes dexcution
Chargement du programme et excution
ABAP Program
Program Start
Screen
Repository
Database Table
ABAP
Processing
Block
Time
Lexemple choisi est un programme de type report avec un cran de slection, mais qui, via un
appel de dynpro, restituera les donnes slectionnes dans un cran au lieu dune liste.
Au dmarrage du programme, lensemble des objets dclars est charg sur le serveur
dapplication partir du Repository. Par rapport lexemple prcdent, on a maintenant en
plus un dynpro et sa logique dexcution.
A ce niveau de lexcution, le fonctionnement est celui dun report : lcran de slection est
envoy au serveur de prsentation par lABAP Runtime System. Lutilisateur renseigne les
champs
et excute
Program
Start le programme.
4.3.3.2.
ABAP Program
Data objects
Fichier
260038387.doc
Modifi le 10/02/15
ABAP Runtime System
Imprim le 15/07/03
Page 20
Modifi par
Valid par
Version 1
Screen
ABAP
Processing
Block
Time
Appel de dynpro
ABAP Program
Program Start
Data objects
Database Table
Screen
PBO
ABAP
Processing
Block
PAI
Fichier
260038387.doc
Modifi le 10/02/15
ABAP Runtime System
Imprim le 15/07/03
Page 21
Modifi par
Valid par
Version 1
Time
Un appel de dynpro est effectu par le programme. Le Process Before Output est excut juste
avant lenvoi de lcran au serveur de prsentation. Les donnes afficher sont
automatiquement transfres dans les zones de lcran correspondantes.
Lorsque lutilisateur excute une action, le serveur dapplication reprend le contrle de
lexcution. Les donnes lcran sont alors automatiquement transfres au programme et le
Process After Input est excut. (La sortie de lcran doit tre gre dans le PAI).
5. LABAP Dictionary
5.1. Tables, structures et vues
5.1.1.
LABAP Dictionary
LABAP Dictionary (SE11) dfinit et gre toutes les dfinitions de donnes du systme. Les
dfinitions dobjet les plus importantes sont les tables de base de donnes, les vues, les types
de donnes (lment de donnes, structure et type de table), les domaines, les aides la
recherche et les objets de blocage.
Les tables de la base de donnes sont gres dans lABAP Dictionary en tant que tables
transparentes.
A chaque table transparente de lABAP Dictionary correspond une table physique dans la
base de donnes. Le nom de la table physique et de la dfinition de table logique dans le
dictionnaire ABAP/4 doivent tre identiques.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 22
Modifi par
Valid par
Version 1
Il existe deux mthodes pour visualiser les tables transparentes dans lABAP Dictionary :
partir de la transaction SE11 en renseignant le nom de la table consulter,
ou directement partir de lditeur ABAP par double-clic sur le nom de la table dans
le code du programme.
5.1.2.
Mthodes de recherche
Les principales mthodes de recherche dune table de base de donnes sont les suivantes :
Tables et structures
Lorsquune table transparente est active dans lABAP Dictionary SE11), son quivalent
physique est automatiquement cr dans la base de donnes. La description de la table au sein
de lABAP Dictionary est automatiquement convertie au niveau du systme de base de
donnes.
Depuis la version 3.0, lordre des champs dans lABAP Dictionary peut diffrer de celui dans
la base de donnes. Cette particularit permet dinsrer de nouveaux champs sans avoir
effectuer une conversion de la table avec rorganisation physique. En fait, un nouvelle zone
est toujours ajoute la fin de la table de base de donnes sans tenir compte de sa position
dans lABAP Dictionary.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 23
Modifi par
Valid par
Version 1
Une structure na pas son quivalent dans la base de donnes. Elle nexiste que dans le
dictionnaire ABAP et correspond une liste de zones qui permet de ne stocker quun seul
enregistrement de donnes le temps de lexcution dun programme.
Vues
5.1.4.
ABAP Dictionary
Join
Table 1
Table 3
Table 2
Projection
Vue utilisateur
Selection
Une vue logique est une projection dune ou plusieurs tables : elle n'est pas sauvegarde de
manire physique dans la base de donnes mais fait fonction de drive d'une ou de plusieurs
tables.
Ce procd de drivation, dans le cas le plus simple, peut se traduire par l'occultation d'une ou
de plusieurs zones d'une table (projection) ou par la reprise dans la vue de certaines entres
particulires d'une table (slection). Des vues complexes peuvent se composer de plusieurs
tables, chacune tant relie par des oprations de jointure.
La vue SAP est un objet logique de lABAP Dictionary (SE11) qui nexiste pas dans le
systme de base de donnes.
5.2.1.
Field
uses
Fichier
260038387.doc
uses
Imprim le 15/07/03
Technical field attributes
Domain
Page 24
Modifi par
Valid par
Version 1
Les objets de base pour la dfinition des donnes dans lABAP Dictionary (SE11) sont la
table, llment de donnes et le domaine.
Llment de donnes permet de dfinir le type dune zone, ses proprits et sa description.
En ce qui concerne le type, les caractristiques techniques peuvent tre dfinies directement
au niveau de llment de donnes ou hrites du domaine.
De faon plus gnrale, le domaine constitue la dfinition technique (type et longueur) dune
zone et llment de donnes, sa description (texte descriptif).
Le domaine se dfinit sans faire rfrence dautres objets du dictionnaire. Il dtermine des
informations techniques telles que les valeurs possibles de la zone, son format ddition et son
format interne.
5.2.2.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 25
Modifi par
Valid par
Version 1
Les 3 zones utilisent le mme domaine car elles ont les mmes attributs techniques.
Un domaine donn dfinit les caractristiques techniques de plusieurs zones via leur lment
de donnes.
La domaine permet de dfinir les attributs dun type de zone de faon unique et donc
dassurer une gestion du dictionnaire de donnes simplifie au maximum.
Llment de donnes revt un caractre plutt contextuel ; il permet de dfinir la zone dun
point de vue smantique (description, aide la recherche, aide F1) en fonction de la table.
6. Analyse de programmes
6.1. Lanalyse statique : lditeur ABAP
6.1.1.
LObject Navigator (SE80) permet dafficher une vue globale des objets dun programme.
Chacun des objets peut tre analys en dtail dans la fentre de droite par simple double-clic
ou en utilisant le menu contextuel.
6.1.2.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 26
Modifi par
Valid par
Version 1
REPORT ztest.
TABLES kna1.
DATA t_kna1 TYPE kna1.
PARAMETERS p_kunnr TYPE kna1-kunnr.
START-OF-SELECTION.
*Read data record from database
SELECT SINGLE *
FROM kna1
WHERE kunnr = p_kunnr.
IF sy-subrc = 0.
MOVE-CORRESPONDING kna1 TO t_kna1.
WRITE t_kna1-kunnr COLOR COL_KEY. "Display customer
WRITE t_kna1-name1.
ENDIF.
ABAP
Keyword
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 27
Modifi par
Valid par
Version 1
Devient
WRITE : t_kna1-kunnr COLOR COL_KEY,
t_kna1-name1.
6.1.3.
Navigation
Definition of
Database table in the
ABAP Dictionary
START-OF-SELECTION.
SELECT SINGLE *
FROM kna1
INTO CORRESPONDING FIELDS OF t_kna1
WHERE kunnr = p_kunnr.
IF sy-subrc = 0.
CALL SCREEN 100.
ENDIF.
Definition of
structure
Screen definition
(in the Screen Painter )
On peut obtenir des informations dtailles sur un objet utilis dans un programme en doublecliquant directement dessus. Cela a pour consquence le lancement de loutil de conception
associ lobjet :
Un double-clic sur le nom dune table dans le programme permet dafficher sa
dfinition dans la fentre de droite via lABAP Dictionary (SE11),
Un double-clic sur une donne locale permet dafficher la section du programme o
elle est dclare,
Un double-clic sur un numro dcran affiche le dynpro via le Screen Painter (SE51).
6.1.4.
Aide et documentation
START-OF-SELECTION.
SELECT SINGLE *
FROM kna1
INTO CORRESPONDING FIELDS OF t_kna1
WHERE kunnr = p_kunnr.
IF sy-subrc = 0.
WRITE t_kna1-name1.
ENDIF.
Fichier
260038387.doc
F1
Modifi le 10/02/15
Keyword Documentation
Imprim le 15/07/03
Page 28
Keyword Documentation
Modifi par
Valid par
Version 1
Une fois le programme affich dans lditeur ABAP (SE38 ou SE80), le bouton information
de la barre doutils active une bote de dialogue offrant de la documentation sur les
principaux objets techniques.
Une autre mthode directe consiste se positionner directement sur le terme du programme
pour lequel on dsire afficher la documentation et activer laide F1.
6.1.5.
Programme de base
TABLES ds_struc.
DATA t_kna1 TYPE kna1.
PARAMETERS p_kunnr TYPE kna1-kunnr.
(1)
START-OF-SELECTION.
SELECT SINGLE *
FROM kna1
INTO CORRESPONDING FIELDS OF t_kna1
WHERE kunnr = p_kunnr.
(2)
IF sy-subrc = 0.
MOVE-CORRESPONDING t_kna1 TO ds_struc.
CALL SCREEN 100.
(3)
(4)
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 29
Modifi par
Valid par
Version 1
TABLES permet de dclarer une structure (ou une table) dfinie dans lABAP
Dictionary (SE11). Le nom de lobjet dans le programme reste identique celui de la
structure de lABAP Dictionary. Ces structures sont, en gnral, utilises comme
interface dans la programmation interactive (passage des donnes entre lABAP et le
dynpro).
DATA est utilis pour dfinir des objets locaux. Le type de lobjet est prcis en
utilisant le complment TYPE.
PARAMETERS (comme tous les autres mots cls permettant de dialoguer avec
lutilisateur) dfinit non seulement une variable locale, mais aussi une zone de saisie
sur lcran de slection gnr automatiquement par le programme.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 30
Modifi par
Valid par
Version 1
Lorsquun programme est lanc partir de lObject Navigator (SE80) (ou de lditeur ABAP
(SE38)), deux modes dexcution sont disponibles :
- Excuter -> Directement excute directement le programme
Pas pas
- Excuter -> Dboguage
excute le programme en mode dbogueur
6.2.2.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 31
Modifi par
Valid par
Version 1
Excuter un programme en mode dbogueur permet de suivre son droulement instruction par
instruction en utilisant licne Pas pas
ou la touche F5.
Licne Excuter
ou touche F6 permet dexcuter directement les routines appeles par le
programme (modules fonction, bloc de traitement appel par perform).
Licne Retour
ou touche F7 permet un retour direct au niveau de lappel lorsquon se
trouve dans une routine appele.
Pour suivre le contenu dune variable, il suffit de la renseigner dans la colonne de gauche du
tableau. Un autre moyen consiste double-cliquer sur la variable concerne directement dans
le code du programme.
On peut afficher simultanment jusqu huit contenus de variables. Le contenu dune table
interne peut tre affich via le bouton Table.
6.2.3.
Continuer
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 32
Modifi par
Valid par
Version 1
En mode dbogueur, on peut insrer (ou supprimer) un point darrt au niveau dune
instruction en double-cliquant dans la partie vide gauche de la ligne correspondante.
Licne Continuer
Une autre mthode consiste dfinir un point darrt partir de lditeur ABAP (SE38) et
excuter le programme sans activer le mode dbogueur. Dans ce cas, le programme
sexcutera directement jusquau point darrt et passera automatiquement en mode
dbogueur une fois ce dernier atteint.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 33
Modifi par
Valid par
Version 1
<user-defined-type>.
DATA : <varname> TYPE
<ABAP-dictionary-type>.
Types locaux
Pour dfinir un type de donnes simple ou une variable, il faut se rfrer un type prdfini :
-C
Character
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 34
Modifi par
Valid par
Version 1
-N
Numeric Text
-D
Date (YYYYMMDD)
-T
Time (HHMMSS)
-I
Integer
-P
Packed Number
-F
Floating Point Number
- STRING Character String
7.1.3.
Variables
DATA : v_kunnr
TYPE kunnr,
v_counter TYPE i,
v_filler(10) TYPE c.
Il est possible de dfinir des variables avec linstruction DATA sans quun type local
nait t dfinit pralablement par linstruction TYPES.
Une valeur par dfaut peut tre prcise au moment de la dclaration de la donne en
utilisant en complment linstruction VALUE.
Fichier
260038387.doc
Initialisation et transfert
Modifi le 10/02/15
Imprim le 15/07/03
Page 35
Modifi par
Valid par
Version 1
Data Declarations :
CONSTANTS c_land TYPE land1 VALUE FR.
DATA : v_land_1 TYPE land1,
v_land_2 TYPE land1 VALUE EN,
v_counter TYPE i.
v_land_1 v_land_2
Program start
c_land
FR
v_counter
EN
0000
FR
EN
0000
v_land_2 = v_land_1.
FR
FR
0000
ADD 1 TO v_counter.
FR
FR
0001
CLEAR: v_land_1,
v_land_2,
CLEAR: v_counter.
0000
Il existe deux syntaxes possibles pour copier le contenu dune variable 1 dans une
variable 2 :
- MOVE var1 TO var 2.
- var2 = var1.
Selon les deux variables sont de types diffrents, il faut en tenir compte.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 36
7.1.3.2.
Modifi par
Valid par
Version 1
Calculs
Data Declarations :
DATA : v_total TYPE i,
v_compteur TYPE
v_pourcentage TYPE
La formulation des calculs peut tre prcde de linstruction COMPUTE. Cette instruction
est optionnelle et les deux syntaxes peuvent tre utilises de faon indiffrente.
7.1.3.3.
Conditions
WHEN OTHERS.
ENDCASE.
IF <logical expression>.
ELSE.
ENDIF.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 37
Modifi par
Valid par
Version 1
CASEENDCASE
La distinction se base sur le contenu de la variable. La variable teste est prcise par
linstruction CASE.
Les diffrentes branches du traitement sont introduites par linstruction WHEN suivie
de la valeur conditionner. ENDCASE permet de conclure linstruction. La condition
WHEN OTHERS est optionnelle.
Exemple :
CASE v_test.
WHEN 1.
WHEN 2.
ENDCASE.
IFENDIF
Les instructions IF et ELSEIF doivent tre suivies dune expression logique. Les
expressions logiques autorises sont dcrites dans la documentation sur le mot cl IF.
Les instructions ELSE et ELSEIF sont optionnelles.
Si l'expression logique est vrifie, le traitement conditionn par lexpression est
excut.
Si l'expression logique n'est pas vrifie, les alternatives ELSE ou ELSEIF sont
excutes. Sil ny a pas dalternative, le droulement du programme se poursuit aprs
la fin de la condition ENDIF.
On peut introduire autant dalternatives exclusives ELSEIF que lon souhaite.
Exemple :
IF v_test > 0.
ELSE.
ENDIF.
ELSEIF v_test = 0.
ENDIF.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 38
7.1.3.4.
Modifi par
Valid par
Version 1
Pas pas
Pour suivre le contenu dune variable en mode dbogueur, il suffit de la renseigner dans la
colonne de gauche du tableau. Un autre moyen consiste double-cliquer sur la variable
concerne directement dans le code du programme.
On peut afficher simultanment jusqu huit contenus de variables.
Pour modifier le contenu dune variable durant lexcution, il suffit dinscrire la valeur
dsire la place de lancien contenu et de valider avec licne Modif. cont. zone .
7.1.4.
7.1.4.1.
Fichier
260038387.doc
Structures
Dfinition
Modifi le 10/02/15
Imprim le 15/07/03
Page 39
Modifi par
Valid par
Version 1
edopen
Structure definition
ds_kna1
s38e
ABAP
Program
Une structure est une combinaison de plusieurs variables appartenant un mme objet de
donnes. Les structures peuvent tre imbriques ; cela signifie quune structure (ou une table)
peut tre un sous objet de structure.
Il existe deux sortes de structures en ABAP :
structures dfinies par linstruction
DATA <name> TYPE <structure_type>.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 40
7.1.4.2.
Modifi par
Valid par
Ds_kna1
mandt kunnr
Version 1
land1
ABAP
Program
name1
Fields in structures are
always addressed by
<structure>-<field_name>
Laccs une zone donne de structure en lecture ou en criture se fait avec prcisant le nom
de la zone : <structure>-<field_name>.
7.1.4.3.
mandt
100
kunnr
land1
850000
FR
kunnr
850000
Fichier
260038387.doc
name1
Client 1
name1
Client 1
bukrs
300
Modifi le 10/02/15
Imprim le 15/07/03
Page 41
Modifi par
Valid par
Version 1
Double-click
Pour suivre le contenu des zones dune structure en mode dbogueur, il faut indiquer le nom
de la structure dans la colonne de gauche du tableau, puis double-cliquer dessus. Un autre
moyen consiste double-cliquer sur la structure concerne directement dans le code du
programme.
7.1.5.
7.1.5.1.
Fichier
260038387.doc
Tables internes
Dfinition et types de table
Modifi le 10/02/15
Imprim le 15/07/03
Page 42
Modifi par
Valid par
Version 1
ANY TABLE
INDEX TABLE
HASHED TABLE
STANDARD TABLE
SORTED TABLE
Access with
Index
YES
YES
YES
YES
YES
Unique /
Non-unique Key
Non-unique
Unique / Non-unique
Unique
Access using
Mainly Index
Mainly Keys
Keys Only
Une table interne fournit un moyen de sauvegarder dans la mmoire ABAP les donnes dune
structure. Les enregistrements sont sauvegards ligne par ligne, chaque ligne ayant la mme
structure.
Pour dfinir une table interne, il est ncessaire de prciser les informations suivantes :
- le type de ligne : cest une structure qui permet de dfinir les zones de la table interne
- la cl (dpend du type de table)
- le type de table (standard, tri ou adresses calcules)
Il existe trois types de table interne qui se distinguent par leur mode daccs aux
enregistrements :
Les tables standard (standard tables)
Ce type de table autorise les deux types daccs : via lindex de la table ou par les donnes
(cl).
les tables tries (sorted tables)
les enregistrements de cette table sont automatiquement tris en fonction de la cl prcise
lors de sa dclaration. En cas de cl unique, les doublons ne sont pas autoriss. Lajout
denregistrement dans ce type de table tient compte de la cl (instruction INSERT). Si la cl
existe dj et est unique, lenregistrement nest pas insr.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 43
Modifi par
Valid par
Version 1
Ces tables ne grent pas lindex. Laccs aux donnes se fait uniquement via la cl prcise
lors de la dclaration de la table.
Il existe deux mthodes daccs aux enregistrements dune table interne :
Accs en utilisant lindex
Ce type daccs utilise lindex de la table maintenu par le systme pour accder un
enregistrement.
Exemple : la lecture de lenregistrement ayant lindex 5 revient lire le cinquime
enregistrement de la table interne.
Accs en utilisant une cl
Cet accs revient chercher dans la table interne un enregistrement respectant une condition
donne. Contrairement laccs par lindex, laccs se fait par les donnes.
Exemple : recherche dans une table interne contenant des numros de client (KUNNR) un
enregistrement pour lequel KUNNR = 850000.
Dans un programme, lutilisation de tel ou tel type de table dpend donc de la faon dont on
souhaite accder aux enregistrements. Pour des volumtries importantes, ce choix peut avoir
un impact sur les performances.
7.1.5.2.
Dclaration
ABAP Dictionary
Table type : ztype_table
Line type : ztype_line
Data access type : standard table
ABAP
Program
t_table
DATA t_table TYPE ztype_table.
Un type de table peut tre dfini localement au niveau du programme ou de faon globale
dans lABAP Dictionary (SE11).
Pour dfinir une table interne, il faut lui spcifier un type de table dfini localement ou au
niveau de lABAP Dictionary.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 44
7.1.5.3.
Modifi par
Valid par
Version 1
Append
Insert
Read
Change
Delete
i
Les oprations suivantes peuvent ralises sur un enregistrement de table interne :
Ajout dun enregistrement : APPEND permet dajouter le contenu dune structure
une table interne. La structure doit avoir le mme type que la ligne de table interne.
Cette instruction ne doit tre utilise quavec les tables standards.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 45
7.1.5.4.
Modifi par
Valid par
Version 1
Traitements en masse
Loop :
For all operations
ENDLOOP.
Delete
Insert
multiple lines
from an internal
table
Append
multiple lines
from an internal
table
Les traitements suivants permettent de traiter plusieurs enregistrements en une seule tape :
DELETE supprime les lignes dune table interne qui remplissent la condition
<condition>.
INSERT copie le contenu de plusieurs lignes dune table interne dans une autre table
interne
APPEND ajoute le contenu de plusieurs lignes dune table interne dans une autre table
interne de type standard
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 46
Modifi par
Valid par
Version 1
SORT permet de trier les enregistrements dune table interne en fonction des zones
choisies. Cette instruction ne peut pas tre utilise pour trier des tables tris (sorted
tables).
7.1.5.5.
t_kna1
wa_kna1
LOOP AT t_kna1 INTO wa_kna1.
WRITE :/ wa_kna1-kunnr,
wa_kna1-name1,
wa_kna1-pstlz,
wa_kna1-ort01.
ENDLOOP.
Linstruction LOOP permet de lire et/ou diter le contenu dune table interne. Dans
cet exemple, le contenu dune ligne est copi chaque fois de la table interne vers la
structure. Les champs de la structure peuvent tre dits avec linstruction WRITE.
7.1.5.6.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 47
Modifi par
Valid par
Version 1
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 48
Modifi par
Valid par
Version 1
Pour suivre le contenu dune table interne en mode dbogueur, il faut cliquer sur le bouton
Table, puis renseigner le nom de la table dsir dans la zone correspondante.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 49
Modifi par
Valid par
Version 1
CONSTANTS c_fr
TYPE land1
VALUE FR.
Sy-subrc
ABAP Program
0
Basis function at
READ
land1
BE
Not available
ES
BR
t_kna1
IF sy-subrc = 0.
*Message
ENDIF.
Return code 4
Fichier
260038387.doc
Messages utilisateurs
Modifi le 10/02/15
Imprim le 15/07/03
Page 50
Modifi par
Valid par
Version 1
Which columns ?
SELECT <result>
FROM <table>
Which table(s) ?
Where ?
INTO <destination>
Which lines ?
8. Accs la base de donnes
WHERE <condition>
Single line
Particular column
Fichier
260038387.doc
Modifi le 10/02/15
Multiple lines
Imprim le 15/07/03
Page 51
Modifi par
Valid par
Version 1
Linstruction Open SQL SELECT permet daccder aux contenus des tables de la base
de donnes.
Cette instruction se compose dune srie de clauses, chacune dentre-elles remplissant
une fonction particulire :
- la clause SELECT prcise :
si le rsultat de la slection est un enregistrement unique (dans ce cas tous les
champs de la cl primaire doivent tre prciss dans la clause WHERE) ou un
ensemble denregistrements
la liste des zones dont le contenu est rcuprer
si les doublons de la slection doivent tre supprims
la clause INTO prcise lobjet de donnes du programme dans lequel le rsultat de la
slection sera enregistr
la clause FROM prcise la table dans laquelle la slection est ralise
la clause WHERE prcise les conditions de slection. Elle dtermine le nombre
ABAP
Program
denregistrements
slectionner.
Data Objects
8.1.2.
ABAP
Processing
Modalits daccs
Block
SELECT Open SQL
Database
Specific
Conversion
Database SQL
Database
Interface
ABAP Runtime System
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 52
Modifi par
Valid par
Version 1
Open SQL est un driv de Standard SQL compltement intgr au langage ABAP. Il permet
daccder la base de donnes depuis un programme ABAP toujours avec la mme syntaxe
quel que soit le systme de base de donnes utilis avec SAP.
Les instructions Open SQL sont converties dans le langage spcifique de la base de donnes
par la database interface.
ABAP Program
Data Objects
8.1.3.
p_kunnr
SELECT
SINGLE
Wa_kna1
Key
Database
Interface
Modifi le 10/02/15
Database
table
KNA1
Imprim le 15/07/03
Page 53
Modifi par
Valid par
Version 1
ABAP Program
Data Objects
p_land1
Wa_kna1
Key
Fichier
ABAP Runtime System
260038387.doc
Database
table
KNA1
Database
Interface
Modifi le 10/02/15
Imprim le 15/07/03
Page 54
Modifi par
Valid par
Version 1
Quand linstruction SELECT est utilise sans le complment SINGLE, la lecture des
enregistrements dans la base de donnes est multiple. La liste des champs suivant le SELECT
permet de dterminer les colonnes que doit lire la base de donnes.
La clause WHERE permet de limiter le nombre des enregistrements qui doivent tre lus.
Les donnes lues sont envoyes la database interface par paquets. LABAP runtime system
copie ensuite les enregistrements ligne par ligne vers la structure cible. Linstruction
SELECTENDSELECT constitue donc un boucle et fonctionne de manire de manire
squentielle.
Le code retour prend la valeur 0 si au moins un enregistrement est slectionn. Aprs
lexcution du SELECT chaque itration, la zone systme SY-DBCNT contient le nombre
actuel de lignes lues. Aprs lexcution du ENDSELECT, SY-DBCNT contient le nombre
total denregistrements slectionns.
ABAP Program
Data Objects
p_land1
t_kna1
8.1.5.
Key
Database
Interface
Modifi le 10/02/15
Database
table
KNA1
Imprim le 15/07/03
Page 55
Modifi par
Valid par
Version 1
Lorsque la clause INTO TABLE <itab> est utilise, lABAP Runtime System copie le
contenu de la database interface directement dans la table interne itab. Cette opration est
appele array fetch. Dans ce cas, linstruction ENDSELECT ne doit pas tre utilise car le
processus nest plus itratif.
Si au moins un enregistrement est slectionn, le code retour SY-SUBRC est gal 0.
8.1.6.
La clause INTO
Fichier
260038387.doc
Modifi le 10/02/15
Same type as
column read
Imprim le 15/07/03
Page 56
Modifi par
Valid par
Version 1
Le programme doit prsenter un objet de donnes avec un type appropri pour chaque
colonne de la table de base de donnes slectionne. Pour des raisons de maintenance de
programme, il est recommand dutiliser les mmes types que ceux utiliss par la table de
base de donnes pour dclarer les objets correspondants.
La clause INTO permet alors de prciser les objets de donnes dans lesquels les donnes lues
seront mmorises. Pour cela, il existe deux faons de procder :
Utilisation de variables
Une liste de variables doit tre prcise par la clause INTO.
Exemple :
DATA : v_kunnr TYPE kna1-kunnr,
v_name1 TYPE kna1-name1,
v_pstlz TYPE kna1-pstlz,
v_ort01 TYPE kna1-ort01.
START-OF-SELECTION.
SELECT kunnr name1 pstlz ort01
DATA wa_kna1 TYPE z_type.
FROM kna1
INTO (v_kunnr, v_name1, v_pstlz, v_ort01)
SELECT SINGLE kunnr name1 pstlz ort01
WHERE
FROM kna1
INTO CORRESPONDING FIELDS OF wa_kna1
WHERE land1 = p_land1.
8.1.7.
mandt
Fichier
260038387.doc
Same name as
column read
kunnr
name1
pstlz
Modifi le 10/02/15
mandt
kunnr
name1
ort01
Imprim le 15/07/03
pstlz
ort01
Page 57
Modifi par
Valid par
Version 1
9. Principes de modularisation
Event
9.1.Block
Elments dun programme ABAP
Event
Block
Selection screen
Event
Block
Module
Interface
Event
Fichier
Block
260038387.doc
Subroutine
Module
Modifi le 10/02/15
Process
Before
Output
Process
After
Input
Imprim le 15/07/03
Page 58
Screen
Modifi par
Valid par
Version 1
les blocs de traitement vnementiels (event block) sont appels par le systme
(runtime system) lors de lexcution dun programme, dun cran de slection ou
dune liste.
les sous-routines sont excutes via une instruction ABAP. Elles peuvent contenir des
variables locales et des paramtres peuvent ventuellement leur tre passs .
les modules sont des blocs de traitement spcifiques lis la logique dexcution des
dynpros.
Les vnements
9.1.1.
9.1.1.1.
INITIALIZATION.
p_date = p_date 7.
Fichier
START-OF-SELECTION.
260038387.doc
WRITE p_date.
Event block
Modifi le 10/02/15
Imprim le 15/07/03
Event block
Page 59
Modifi par
Valid par
Version 1
Dans tous les exemples de programmes vus jusqu maintenant, il ny avait quun seul bloc de
traitement en plus des dclarations de donnes. Dans ce cas, il est inutile de dclarer des blocs
de traitement de faon explicite. Par contre, dans les programmes complexes, il devient
ncessaire de crer des blocs de traitement afin damliorer la lisibilit.
Le programme ci-dessus donne un exemple dvnements. Il indique une date par dfaut sur
le paramtre de lcran de slection. Cette valeur par dfaut ne peut pas tre dfinie au niveau
de linstruction PARAMETERS car elle ncessite un calcul.
Linstruction DEFAULT permet de dfinir une valeur par dfaut lexcution du programme.
Les valeurs par dfaut peuvent tre des constantes de type caractre ou des zones de la
structure SYST.
Lvnement INITIALIZATION permet de modifier la valeur de la date au moment de
lexcution, mais avant lenvoi de lcran de slection par le systme.
START-OF-SELECTION est un vnement utilis pour la cration de listes.
Les dclarations globales de donnes sont identifies dans tout le programme par le systme
et forment ainsi un bloc de traitement logique. (Cependant, pour des raisons de clart, il
convient de dclarer les objets de donnes en dbut de programme).
PARAMETERS fait partie des instructions permettant de dclarer des objets de donnes.
Cette instruction permet de gnrer automatiquement un cran de slection lorsque le
programme est activ.
9.1.1.2.
Program
Start
ABAP program
INITIALIZATION.
p_date = p_date 7.
START-OF-SELECTION.
WRITE p_date.
Fichier
260038387.doc
Modifi le 10/02/15
List
buffer
for basic
list
Imprim le 15/07/03
Page 60
Modifi par
Valid par
Version 1
Le systme excute les vnements dans une squence prdtermine pour la gnration de
listes :
- lvnement INITIALIZATION est dabord excut
- lcran de slection est ensuite envoy au serveur de prsentation
- ds que lutilisateur valide son cran, lvnement START-OF-SELECTION est appel
- si lvnement START-OF-SELECTION contient des instructions ddition (WRITE,
SKIP ou ULINE), une liste est mmorise dans un buffer
- la liste est ensuite envoye au serveur de prsentation.
9.1.1.3.
Les vnements sont des blocs de traitement appels par le systme ABAP. La squence dans
laquelle ils sont excuts est dtermine par le systme ABAP de faon automatique.
Dans les programmes excutables (reports), il existe diffrents vnements qui rpondent aux
fonctions ncessaires la cration de listes (AT SELECTION-SCREEN, TOP-OFPAGE)
Lordre dans lequel sont crits les vnements dans le programme na pas dincidence sur la
squence dexcution dtermine par le systme ABAP. Le systme excutera toujours les
vnements dans un ordre prdtermin.
START-OF-SELECTION est lvnement par dfaut pour la gnration de liste. Il est
appel par le systme ds lors que lutilisateur a press la touche F8.
INITIALIZATION est un vnement qui permet de dterminer des valeurs par dfaut avant
laffichage de lcran de slection. Il permet deffectuer des oprations qui normalement ne
peuvent tre ralises que pendant lexcution.
La fin dun vnement est dlimite par le dbut de lvnement suivant.
9.1.2.
Les sous-routines
Event
Block
Interface
Subroutine
Interface
Subroutine
Fichier
260038387.doc
Functions encasuplated
Better strcutured programs that can
be read and understood more easily
Easier program maintenance
Can be reused locally within
program
Processing block interface
Modifi le 10/02/15
Imprim le 15/07/03
Page 61
Modifi par
Valid par
Version 1
Les sous-routines sont des blocs de traitement avec une interface qui peuvent tre appels par
nimporte quel autre bloc de traitement via linstruction PERFORM.
9.1.2.1.
Exemple de sous-routine
Imprim le 15/07/03
Page 62
Modifi par
Valid par
Version 1
Import parameters
Function module
Export
parameters
Exception
Les modules fonction sont des programmes indpendants dots dune interface excutables
directement via la transaction SE37.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 63
Modifi par
Valid par
Version 1
Les modules fonction remplissent des fonctionnalits prcises et souvent utilises dans les
programmes. Ils sutilisent comme des sous-routines.
Linterface dun module peut contenir les lments suivants :
Import parameters
Les paramtres dimport correspondent aux paramtres qui sont passs au module
fonction par le programme appelant. Certains paramtres dimport peuvent tre
optionnels.
Export parmeters
Les paramtres dexport correspondent aux paramtres envoys par le module
focntion au programme appelant. Les paramtres dexport sont toujours optionnels.
Changing parameters
Ces paramtres sont mis jour et passs au programme appelant par le module
fonction. Le rsultat est retourn au programme appelant une fois lexcution du
module fonction termine. Les paramtres mis jour peuvent tre optionnels.
Exceptions
Les exceptions permettent dintercepter les ventuelles erreurs lies lexcution du
module fonction. Si une erreur dclenche une exception, lexcution du module
fonction sarrte. Ces exceptions peuvent tre traites dans le programme dans le
programme appelant car la valeur de lexception est assigne au code retour SYSUBRC.
Dans un programme, les modules fonction sont appels en utilisant linstruction CALL
FUNCTION. Le nom du module fonction doit tre prcis entre cotes.
Exemple :
CALL FUNCTION POPUP_TO_CONFIRM_LOSS_DATA
EXPORTING
textline = gd_textline
title = gd_title
IMPORTING
answer = gd_answer.
CASE gd_answer.
WHEN
WHEN
ENDCASE.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 64
Modifi par
Valid par
Version 1
Dans la partie gauche sont indiqus les noms des paramtres de linterface du module
fonction, tandis qu droite de lgalit saffichent les objets de donnes utiliss par le
programme appelant.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 65
10.
Modifi par
Valid par
Version 1
Evolution du standard
On regarde dabord si la fonction souhaite nest pas propose dans le standard SAP,
aux ajustements possibles reprsents par le paramtrage et la personnalisation.
Puis si on na pas trouv cette fonction, on regarde sil existe une fonction similaire
dans le standard SAP.
o Si non, on fait du dveloppement spcifique.
o Si oui, on regarde si cette fonction similaire possde des extensions.
Si oui, on utilise les extensions.
Si non, on fait du dveloppement spcifique (copie de programme
standard ou non, et en dernier lieu, modification du standard).
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 66
Modifi par
Valid par
Version 1
10.2. Personnalisation
Il existe diffrents niveaux de personnalisation :
Entreprise
Rles
Utilisateur
10.2.1.
Au niveau des rles, on peut personnaliser SAP au niveau des menus de domaine, des menus
bass sur les rles et des variantes de transactions. Ces actions sont lies au paramtrage des
autorisations dans SAP.
Les variantes de transactions (SHD0) permettent de personnaliser une transaction standard
SAP, en masquant des zones, en renseignant des valeurs par dfaut, etc. Cette transaction
standard possde alors des variantes de transactions, qui sont, elles, des transactions
spcifiques dans SAP.
10.2.3.
Au niveau de lutilisateur, on peut personnaliser les favoris, les liens, les raccourcis, etc.
10.3. Extensions
Il est possible de distinguer 4 types dextensions :
Celles lies au dictionnaire de donnes
Customer Exits
Business Transaction Events
Business Add-Ins
10.3.1.
Dictionnaire de donnes
SAP fournit 2 mthodes pour tendre les tables, celles-ci permettent de rajouter des champs
sans modifier la table standard.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 67
Modifi par
Valid par
Version 1
Il existe dans SAP la possibilit dajouter du code un lment de donnes. Par consquent ce
code est utilis chaque fois quune zone dans un cran fait rfrence cet lment de
donnes. On a aussi la possibilit daffecter ce code aux crans souhaits afin de spcifier au
maximum la fonction de cet exit.
Ltendue des possibilits de codage est faible, car on ne connat que la valeur du champ
concern, et on ne peut modifier que celle-ci.
Par contre cela peut tre intressant pour formater un champ (saisie de 10 caractres dans une
zone de 20, vrification quune zone est obligatoire alors que le paramtrage ne permet pas de
le faire, etc.).
Pour plus dinformations, merci de vous rfrer la note OSS 29377 qui explique comment
utiliser cette fonctionnalit que SAP ne souhaite plus promouvoir depuis la version 4.6C, mais
qui est toujours prsente dans le systme.
10.3.2.
Customer-exits
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 68
Modifi par
Valid par
Version 1
Ils permettent dajouter des crans spcifiques contenant des zones spcifiques dans
les crans standards.
Function module exits :
Ils permettent dinsrer le code spcifique li une nouvelle fonctionnalit et sont
identifiables par leur syntaxe : CALL CUSTOMER-FUNCTION 001 .
Le nom de ces fonctions est normalis : EXIT_<nom_prog>_nnn :
o Nom_prog = le nom du programme standard contenant lextension
(SAPMF02A pour la cration de client, etc.)
o Nnn = un numro incrment commenant 001, et en rapport avec le numro
dans la syntaxe CALL CUSTOMER-FUNCTION nnn.
10.3.2.1. Comment retrouver une extension
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 69
Modifi par
Valid par
Version 1
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 70
10.3.3.
Modifi par
Valid par
Version 1
Les BTE sont prsents dans 3 domaines (Comptabilit gnrale, Comptabilit clients et
fournisseurs, Administration des ventes) et mettent disposition 2 types dinterfaces.
10.3.3.1. Les interfaces Publish&Subscribe
Elles permettent de mettre disposition dun systme externe des donnes SAP (par exemple
cration/modification dun client) sans quaucune donne ne soit retourne SAP.
10.3.3.2. Les interface Process
La mise en uvre se fait par la transaction FIBF, options modules processus dune appl.
SAP
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 71
Modifi par
Valid par
Version 1
Une fois le BTE choisi, insrer le nom du module fonction dvelopp (il doit commencer par
Y ou Z)
10.3.4.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 72
Modifi par
Valid par
Version 1
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 73
Modifi par
Valid par
Version 1
10.4. Modifications
Il est possible de distinguer 3 types de modifications :
User Exits ;
Modifications Assistes (avec le Sap Software Change Registration - SSCR) ;
Modifications non assistes (certains objets SAP ne sont pas bloqus par des
cls dobjets associs au SSCR).
Il faut savoir quun objet (programme, table, etc.) nest original que dans un seul systme.
Pour les objets SAP, le systme original est un systme SAP appartenant SAP. Ces objets
sont copis sur les systmes clients.
Pour les objets clients, le systme original est le systme de dveloppement, les autres
systmes ne contenant que des copies.
10.4.1.
User exits
Les programmes avec user exits contiennent en certains points des appels des routines
identifies par leur prfixe USEREXIT . Il est possible dinclure dans ces routines les
modifications souhaites sur les lments visibles depuis cette routine (tables internes,
structures, etc.).
Les user exits se trouvent principalement dans la fonctionnalit SD, la liste peut tre consulte
dans lIMG sous Sales and Distribution System Modification User exits.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 74
Modifi par
Valid par
Version 1
Modification assistes
Pour viter des modifications sauvages sur les copies des objets SAP, SAP les bloque via une
cl qui est accessible seulement via OSS et le SSCR. Cette fonctionnalit enregistre toutes les
modifications dobjets standards SAP, et permet dacclrer la rimplmentation des
modifications lors dune monte de version.
A lintrieur du programme standard modifi, au lieu dinsrer directement votre code,
prfrer lencapsulation de votre code. Cest--dire insrer une fonction ou include dans le
programme standard, et coder dans linclude ou dans la fonction votre code. Cela vous permet
de minimiser limpact dune monte de version.
De mme ne jamais supprimer du code standard, mais le mettre en commentaire.
10.4.3.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 75
11.
Modifi par
Valid par
Version 1
Un systme SAP tant en perptuelle volution, des bugs techniques peuvent tre prsents
aussi bien dans la partie standard que dans les programmes spcifiques. Une erreur
dexcution ABAP se traduit par un arrt brutal du programme avec dition dune log. Il sagit
dun dump.
La liste des dumps (encore appels vidages de la mmoire ABAP) est visible via la transaction
ST22.
Pour un jour donn, elle fournit la liste des vidages mmoire du systme. Un double-clic sur
une ligne permet dafficher la log dtaille du dump correspondant.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 76
11.1.2.
Modifi par
Valid par
Version 1
Lentte du document
Dans cette partie sont indiques le nom de lerreur dexcution (ici, BCD_ZERODIVIDE)
ainsi quune description synthtique du problme (ici, division par 0 avec une variable de type
P dans le programme ZFORMATION)
Analyse erreur
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 77
Modifi par
Valid par
Version 1
Cette rubrique dtaille les informations dj rvles dans lentte. Des indications
supplmentaires comme par exemple la liste des mots des mots cls susceptibles de gnrer ce
type de derreur.
Cette rubrique indique parfois dans certains types de dump des conseils utiles la rsolution
de lanomalie (comme par exemple lutilisation dune autre instruction plus approprie
lorsquil sagit dun programme spcifique).
Dans le cas dun dump de programme standard, une liste de mots cls utiles est propose pour
la recherche via OSS.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 78
Modifi par
Valid par
Version 1
Certains lments du programme tels que lvnement ou le nom de la routine concerns par
linterruption sont prciss.
Un extrait du code source qui prcde linterruption est repris. La dernire ligne affiche
indique linstruction responsable de lanomalie.
Variables slectionnes
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 79
11.1.3.
Modifi par
Valid par
Version 1
Time-out
Le time-out est un dump relativement frquent chez les utilisateurs. Il est particulier dans le
sens o il nest pas li une erreur de programme, mais un problme de dure dexcution.
Il se produit lorsque la dure dexcution dun programme lanc en avant plan excde la
valeur maximale fixe par les administrateurs du systme (en moyenne 10 minutes).
Lorsquun time-out se produit, la raction la plus vidente consiste excuter le programme
en arrire plan. Cette solution a lavantage dtre immdiate et efficace.
De mme, il faut penser restreindre suffisamment les critres de slection du programme de
faon les rendre le plus pertinent possible et ainsi rduire considrablement le temps
dexcution.
Dans un deuxime temps, si lapplication doit de prfrence tre excute en avant plan, on
peut tenter doptimiser ou de modifier le programme afin damliorer les temps de traitement
Une dernire solution consiste augmenter la valeur maximale du time-out du systme SAP,
mais elle est souvent refuse par les administrateurs.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 80
11.1.4.
Modifi par
Valid par
Version 1
Lorsquon excute une application et quun dump se produit, il faut cliquer sur le bouton
Dbogueur afin dobtenir un tat du programme (contenu des variables) linstant du
vidage mmoire. On peut ainsi consulter les datas et vrifier les valeurs incrimines.
Dans lexemple ci-dessus, le compte rendu nous informe que le vidage mmoire est la
consquence dune division par zro. Lactivation du dbogueur permet de voir directement
quel moment (tat des variables) et dans quelle partie du programme sest produit lerreur.
Ici, le curseur est positionn sur linstruction suivante : v_test = p_1 / p_2.
Le dbogueur permet de constater que le dnominateur p_2 est gal 0. Il convient ce
moment de savoir sil sagit dun problme de donne non conforme ou dun algorithme
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 81
Modifi par
Valid par
Version 1
dficient. Dans notre cas, il apparat que la solution consiste rajouter un contrle sur la
donne p_2 afin dviter deffectuer une division par 0.
Dans cet exemple, lutilisation du dbogueur ne savre pas ncessaire car la dtection de
lanomalie est vidente. Mais on peut imaginer un cas plus complexe o laide du dbogueur
devient prcieuse :
Prenons maintenant lexemple dune interface qui charge un important fichier de donnes afin
de le traiter et de lintgrer dans SAP. La structure du fichier contient des zones spcifies
comme tant des montants ; on peut trs bien imaginer un fichier corrompu dans lequel une
zone montant contiendrait un caractre alpha, ce qui entranerait un dump de linterface lors
de lintgration du fichier. Dans ce cas, il peut tre important de connatre la valeur de la zone
responsable afin de la corriger et le dbogueur prend alors toute son utilit.
De faon gnrale, on peut distinguer deux types de cause lie un dump :
Il peut sagir dune anomalie au niveau des donnes (exemple : une interface qui
reoit une valeur de type caractre alors quune valeur numrique est attendue)
ou dun bug de programmation (exemple : division par zro ou index invalide lors
dune mise jour de table interne).
Lorsquil sagit dune erreur dexcution de programme spcifique, la correction est faite en
interne par lquipe de maintenance.
Dans le cas dun programme standard, aprs stre assur de la validit des donnes, il
convient de consulter le service OSS de SAP.
11.2. OSS
11.2.1.
Prsentation
OSS est un service dassistance en ligne (Online Service & Support) pour le systme SAP R/3.
On peut accder ce service via Internet (http://www.mysap.com/) ou via SAP (transaction
OSS1).
En cas de problme technique ou fonctionnel sur un traitement standard SAP, une solution
rapide consiste utiliser le service OSS et d'y chercher soi-mme la solution. C'est une vraie
base de donnes recensant tous les incidents sous forme de "Notes OSS" qui proposent la
solution mener afin de remdier au problme.
Le service OSS reprsente une mine dinformations considrables pour le consultant SAP, quil
soit technique ou fonctionnel. Il faut systmatiquement penser consulter le service de note
OSS lorsque lon est confront un problme de fonctionnement standard technique ou
fonctionnel.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 82
Modifi par
Valid par
11.2.2.
Mthodes de recherche
11.2.3.
Version 1
La recherche de notes sur OSS seffectue laide dun moteur de recherche (ci-dessus la
dernire version disponible avec le SAPGUI 6.20).
Pour une recherche efficace, les recommandations suivantes peuvent tre prises en compte :
Ne pas tre trop vague
Effectivement, il nest pas pertinent deffectuer une recherche avec des termes gnriques tels
que par exemple pricing procedure qui peuvent regrouper une multitude de composantes.
Dans ce cas, le rsultat constitu de plusieurs centaines (voire de plusieurs milliers) de notes
risque dtre peu exploitable.
Il faut plutt dmarrer avec une recherche relativement prcise et largir au fur et mesure le
primtre si linformation nest pas trouve.
Lorsque cela est possible, il vaut mieux privilgier les termes techniques (nom technique de
zone, numro de message, classe de message) par rapport aux termes mtiers ou fonctionnels
ce qui rendra le primtre de rsultat beaucoup plus en adquation avec la recherche
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 83
Modifi par
Valid par
Version 1
Il vaut mieux effectuer la recherche avec des mots cls (options All Terms AND ou At
Least On Term OR ) plutt que dutiliser des phrases (option Phrase). En effet, en utilisant des
phrases, le primtre est fortement restreint et la recherche risque de ne pas aboutir.
retreindre la recherche la version et au niveau de patches du systme
Toujours dans le but de restreindre la slection de notes possibles, il convient de renseigner le
maximum de critres connus. Il faut ainsi indiquer la version et le niveau de support package du
systme.
Pour connatre le niveau de support package dun systme SAP R/3 :
En passant par le menu Systme -> Statut -> bouton informations composantes
, il faut
rechercher le dernier numro de R/3 Support Package, soit dans notre exemple SAPKH46C36.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 84
Modifi par
Valid par
Version 1
Si la composante applicative est connue, il faut aussi lindiquer dans la partie Seach Criteria
de linterface.
Si la recherche est la consquence dun dump standard
Il faut dans ce cas se reporter la rubrique Comment corriger lerreur du compte rendu
derreur et effectuer la recherche avec la liste de mots cls propose.
Si pour une anomalie donne (dump technique ou problmatique fonctionnelle), aucune note
nest disponible sur le sujet et sil ne sagit dun problme li aux donnes, il se peut quil
sagisse dun bug non encore signal. Dans ce cas, il convient de rdiger un message dans OSS.
La note OSS 94300 disponible en annexes de ce document dcrit les rgles respecter lors de la
cration dun message dans OSS.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 85
12.
Modifi par
Valid par
Version 1
Annexes
"Non utilis
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 86
Modifi par
Valid par
Version 1
12.1.2.
"Affichage du client
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 87
Modifi par
Valid par
Version 1
* ECRAN DE SELECTION
*----------------------------------------------------------------------*----------------------------------------------------------------------* DEBUT DE PROGRAMME
*----------------------------------------------------------------------START-OF-SELECTION.
* Etat initial
SKIP.
WRITE: / 'Etat initial:',
/ 'v_land_1:', v_land_1,
/ 'v_land_2:', v_land_2,
/ 'v_counter:', v_counter.
* La variable v_land_1 est mise jour avec la constante c_land
MOVE c_land TO v_land_1.
SKIP.
WRITE: / 'Mise jour de v_land_1 avec la constante FR:',
/ 'v_land_1:', v_land_1,
/ 'v_land_2:', v_land_2,
/ 'v_counter:', v_counter.
* La variable v_land_2 est mise jour avec v_land1
v_land_2 = v_land_1.
SKIP.
WRITE: / 'Mise jour de v_land_2 avec v_land1:',
/ 'v_land_1:', v_land_1,
/ 'v_land_2:', v_land_2,
/ 'v_counter:', v_counter.
* Incrmentation du compteur v_counter
ADD 1 TO v_counter.
SKIP.
WRITE: / 'Incrmentation du compteur:',
/ 'v_land_1:', v_land_1,
/ 'v_land_2:', v_land_2,
/ 'v_counter:', v_counter.
* Initialisation 0 ou blanc des variables (dpend du type)
CLEAR: v_land_1,
v_land_2.
CLEAR v_counter.
SKIP.
WRITE: / 'Initialisation des variables:',
/ 'v_land_1:', v_land_1,
/ 'v_land_2:', v_land_2,
/ 'v_counter:', v_counter.
12.1.3.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 88
Modifi par
Valid par
Version 1
*
* Points abords :
* - accs aux zones d'une structure
* - slection par blocs
* - traitement en masse (loop de table)
* - conditions
* - accder aux zones d'une structure
* - gestion du code retour
* - edition de liste
* - principes de modularisation (perform -> form)
*----------------------------------------------------------------------REPORT zformation3.
*----------------------------------------------------------------------* TABLES
*----------------------------------------------------------------------TABLES kna1.
*----------------------------------------------------------------------* DATAS
*----------------------------------------------------------------------* Dclaration d'une table interne
DATA t_kna1 TYPE kna1 OCCURS 0.
* Dclaration d'une structure
DATA wa_kna1 TYPE kna1.
*----------------------------------------------------------------------* ECRAN DE SELECTION
*----------------------------------------------------------------------SELECT-OPTIONS s_kunnr FOR kna1-kunnr.
PARAMETERS : p_1 AS CHECKBOX,
"Slection des FR uniquement
p_2 AS CHECKBOX.
"Slection des 20 premiers
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 89
Modifi par
Valid par
Version 1
wa_kna1-pstlz,
wa_kna1-ort01.
ENDLOOP.
ELSEIF p_2 = 'X'.
* Lecture pour affichage des 20 premiers clients de la table
* Il s'agit d'une lecture en utilisant l'index
LOOP AT t_kna1 INTO wa_kna1 FROM 1 TO 20.
WRITE: / wa_kna1-kunnr,
wa_kna1-name1,
wa_kna1-pstlz,
wa_kna1-ort01.
ENDLOOP.
ELSE.
* Lecture pour affichage de tous les clients de la table
LOOP AT t_kna1 INTO wa_kna1.
WRITE: / wa_kna1-kunnr,
wa_kna1-name1,
wa_kna1-pstlz,
wa_kna1-ort01.
ENDLOOP.
ENDIF.
12.1.4.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 90
Modifi par
Valid par
Version 1
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 91
Modifi par
Valid par
Version 1
p_wa_kna1-ort01.
ENDFORM.
12.1.5.
" f_write
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 92
Modifi par
Valid par
Version 1
12.1.6.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 93
Modifi par
Valid par
Version 1
*----------------------------------------------------------------------* DATAS
*----------------------------------------------------------------------* STRUCTURES
* Dclaration d'une structure en utilisant le type local client
DATA : wa_client TYPE client.
* TABLE INTERNE
* Dclaration d'une table interne en utilisant le type local client
DATA : t_client TYPE client OCCURS 0.
*----------------------------------------------------------------------* ECRAN DE SELECTION
*----------------------------------------------------------------------SELECT-OPTIONS s_bukrs FOR knb1-bukrs.
SELECT-OPTIONS s_kunnr FOR kna1-kunnr.
SELECT-OPTIONS s_land1 FOR kna1-land1.
*----------------------------------------------------------------------* INITIALIZATION
*----------------------------------------------------------------------INITIALIZATION.
*----------------------------------------------------------------------* DEBUT DE PROGRAMME
*----------------------------------------------------------------------START-OF-SELECTION.
* Slection ligne par ligne des clients dans la table knb1
SELECT bukrs kunnr
INTO (wa_client-bukrs, wa_client-kunnr)
FROM knb1 UP TO 30 ROWS "limitation aux 50 1ers clients
WHERE bukrs IN s_bukrs
AND kunnr IN s_kunnr.
* Pour chaque ligne slectionne, ajout du contenu de la structure
* wa_client dans la table interne t_client
APPEND wa_client TO t_client.
ENDSELECT.
* Loop de la table interne t_client -> chaque itration, le contenu de
* la ligne lue est plac dans la structure wa_client
LOOP AT t_client INTO wa_client.
* Lecture d'un enregistrement unique -> la cl complte doit tre
* prcise
SELECT SINGLE land1 name1
FROM kna1
INTO (wa_client-land1, wa_client-name1)
WHERE kunnr = wa_client-kunnr
AND land1 IN s_land1.
* Test du code retour : si diffrent de 0, l'enregistrement n'existe pas
IF sy-subrc = 0.
* Traitement sur une enregistrement : mise jour des zones land1 et
* name1 pour le client lu
MODIFY t_client FROM wa_client.
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 94
Modifi par
Valid par
Version 1
ELSE.
* Traitement sur un enregistrement : suppression du client lu de la
* table t_client
DELETE t_client.
ENDIF.
ENDLOOP.
* Affichage de la date et de l'heure systme
WRITE: / 'Date:', sy-datum,
/ 'Heure:', sy-uzeit.
* Saut de ligne
SKIP.
LOOP AT t_client INTO wa_client.
* Accs aux zones de la structure
WRITE: / wa_client-bukrs,
wa_client-kunnr,
wa_client-name1,
wa_client-land1.
ENDLOOP.
12.1.7.
EN
Comment crer un message dans OSS
Administrator
SAP AG
Component
XX-SER-GEN Service general
________________________________________________________________________
Long text
Symptom
Vous avez un problem avec R/3.
Additional key words
Cause and preconditions
Solution
Comment crer un message dans OSS
- Standards respecter pour la cration d'un message dans OSS
Cette note sera automatiquement attache tous vos messages. Le Service
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 95
Modifi par
Valid par
Version 1
Modifi le 10/02/15
Imprim le 15/07/03
Page 96
Modifi par
Valid par
Version 1
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 97
Modifi par
Valid par
Version 1
Modifi le 10/02/15
Imprim le 15/07/03
Page 98
Modifi par
Valid par
Version 1
________________________________________________________________________
0o0
Fichier
260038387.doc
Modifi le 10/02/15
Imprim le 15/07/03
Page 99