Documente Academic
Documente Profesional
Documente Cultură
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Domain
Domain : C'est la dfinition technique
d'un type de donne.
Exemple, un type pour dfinir un
oprateur, et que ce type n'existe pas.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Domain
Data type est le type primitif (CHAR
signifie "Character String").
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Data Element
Un Data Element est un type fonctionnel, c'est dire une surcouche d'un type technique (le
"Domain").
Dans notre exemple, le domain "ZOPERATOR" n'est pas utilisable dans du code ABAP. On ne peut
pas crire par exemple :
En ABAP, on ne code qu' partir des types fonctionnels, et non des domaines.
Le data element sert dfinir les libells associ ce type, il sert dfinir l'aide en ligne, et il sert
porter le "sens fonctionnel" de la donne.
Un domaine (dfinition technique d'un type), peut par exemple signifier que l'on a besoin d'une
chaine de caractres d'une longueur de 8.
Ce mme domaine peut tre utilis par 2 data elements diffrents, par exemple :
un premier data element qui reprsente un numro d'abonn.
un autre data element qui reprsente un numro de plaque d'immatriculation.
Mme si ces deux types sont identiques au sens technique (mme domaine : chaine de caractres
de longueur 8 ), dans un programme le sens fonctionnel est diffrent.
On a donc deux "types fonctionnels" diffrents, qui sont les "data elements", tous les deux
associs au mme domaine.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Data Element
Pour en revenir notre exemple d'oprateur, si je cre le data element
Z_OPERATOR (le nom est volontairement diffrent, mais peut trs bien tre
identique au domaine associ) :
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Rcap
Un "Domain" est la dfinition technique d'un type. Par exemple une chaine de
caractres d'une longueur 10.
Un "Data Element" est la dfinition fonctionnelle d'un type. Par exemple un numro
de compte bancaire. Il est associ un "Domain" qui possde les caractristiques
voulues.
Un programme ABAP fait toujours rfrence des "Data Element", jamais des
"Domain"."
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Le Dictionnaire de donnes
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
TYPES ABAP
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les variables de type caractre
DATA ma_variableTYPE n.
DATA ma_variable(n)TYPE c. (n = longueur de la
chane)
DATA ma_variableTYPE string.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les variables de type numrique
Type I: nombre entier
Type P: numrique avec virgule position fixe (max 15
caractres)
Type F: chaine au format scientifique
DATA ma_variableTYPE i.
DATA ma_variable(n)TYPE pDECIMALS 3. ( n =
nombre de caractres)
DATA ma_variableTYPE f.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les autres types de variables
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les principales variables systme
Les variables systmes sont utilises par le systme pour retouner certaines
informations dont vous aurez besoin lors de vos traitements.
La session en cours :
SY-MANDT : Le mandant,
Le temps :
SY-UZEIT : L'heure.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les principales variables systme
Le programme en cours :
SY-CPROG : Le nom du programme en cours et le nom du programme appelant dans
une procdure,
SY-DBNAM : Le nom de la base de donnes logique lie un programme excutable,
SY-DYNGR : Groupe de l'cran laquelle appartient l'cran actuel,
SY-DYNNR : Nombre de l'cran actuel,
SY-REPID : Nom de l'actuel programme ABAP,
SY-TCODE : Le code de transaction du programme actuel.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les principales variables systme
Les crans :
SY-CUCOL : Position du curseur horizontal. Le compteur commence la colonne 2.
SY-CUROW : Position du curseur vertical. Le compteur commence la ligne 1.
SY-DATAR : Cette zone contient 'X' si au moins un champ de saisie l'cran a t
chang par l'utilisateur, sinon il est vide.
SY-LOOPC : Nombre de lignes affiches dans un contrle Table. Peut tre utilis
pour la fonctionnalit de dfilement.
SY-SCOLS : Nombre de colonnes sur l'cran actuel.
SY-SROWS : Nombre de lignes sur l'cran actuel.
SY-STEPL : Index de la ligne courante dans un Table Control. SY-STEPL n'a pas de
valeur significative en dehors de la boucle(par exemple, lors de l'vnement POV
pour une ligne de tableau).
SY-TITLE : Il contient le texte qui apparat dans la barre de titre de l'cran. Pour les
crans de slection et les listes, c'estle nom du programme, il peut tre modifi en
utilisant l'instruction SET TITLEBAR.
SY-UCOMM : Il contient le code de la fonction qui a dclench l'entre le PAI.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les constantes
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les types mtiers SAP
SAP est orient mtier.
C'est pour cette raison que lorsqu'on travaille sur un numro de
rfrence (Table MARA, zone MATNR) nous ne dclarons pas une
variable de cette faon :
DATA ma_reference(18)TYPE c.
mais comme ceci :
DATA ma_referenceTYPE matnr.
DATA : ma_table_interneTYPE STANDARD TABLE OF matnr.
En rgle
D ATA gnrale,
m a_ref il est
erence(18)TYPE c. conseill d'utiliser des types mtier. Le code
en sera plus lisible.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Schma SAP des
diffrents types de
variables
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
STRUCTURES & TABLES INTERNES
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les structures
Les structures sont des "tableaux" dans lesquels il est possible
de rassembler plusieurs variables.
D ATA :BEG IN O F m a_structure_s,
m a_zone_1TYPE c,
m a_zone_2TYPE i,
m a_zone_3LIKE m a_zone_1,
EN D O F m a_structure_s.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Les types propres au programme
L'instruction TYPES permet de dclarer des types propres au
programme.
TYPES :BEG IN O F m on_type_1,
m a_zone_1TYPE c,
m a_zone_2TYPE i,
EN D O F m on_type_1 .
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Qu'est-ce qu'une table interne ABAP et comment la crer?
Les tables internes sont l'quivalent en ABAP des tableaux (en C, C++), ou des
Vecteurs java.
La table interne pour fonction de stocker des informations rcupres depuis des
tables en base, afin de les manipuler directement dans le code ABAP.
Syntaxe :
TYPES ty_prenom(10) TYPE c.
DATA it_liste_prenom TYPE TABLE OF ty_prenom.
Il existe plusieurs types de tables internes (standard table, sorted tables, hashed
tables, ...).
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Une table de structures
Dans la pratique, 99% des tables internes que lon cr sont des tables contenant
des enregistrement d'un type structure (par exemple une table de personnes).
Il est tout fait possible, au lieu de faire rfrence un type, de faire rfrence une
donne de ce type.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Exemple
Nous voulons stocker des enregistrements de la table SFLIGHT
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Rcap
Referringtolocaldatatyp
e
Referring to local data
object
Referring to data type in
ABAP dictionary
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
APPEND
l'instruction APPEND permet dajouter
des donnes la table interne.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
SELECT INTO
Gnralement, les tables internes sont utilises pour conserver temporairement les
donnes des tables de la base de donnes pour qu'elles s'affichent l'cran ou soient
traites ultrieurement.
Pour remplir la table interne avec des valeurs de base de donnes, on utilise l'instruction
SELECT pour lire les enregistrements de la base de donnes un par un, on les place
dans la zone de travail, puis APPEND les valeurs dans la zone de travail la table
interne.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
SELECT INTO TABLE
En utilisant INTO TABLE, nous pouvons lire plusieurs enregistrements dans la table
interne directement. Aucune zone de travail utilise dans ce cas. Cette instruction select
ne fonctionnera pas en boucle, donc aucun ENDSELECT n'est requis.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Lire depuis une IT
Les donnes peuvent tre lues partir d'une table interne l'aide des 2 instructions
suivantes.
READ TABLE Permet de lire une ligne
LOOP AT / ENDLOOP Permet de lire plusieurs lignes
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
READ ..
Dans l'instruction READ TABLE, nous devons spcifier INDEX ou KEY mais pas les deux
en mme temps.
Si nous voulons lire la troisime ligne de la table interne spcifier l'index comme 3 dans
la clause INDEX de l'instruction READ : Index est un numro de ligne relatif de la table
interne.
Si l'enregistrement est trouv, l'enregistrement trouv est copi dans la zone de travail et
SY-SUBRC est mis 0. Sinon, SY-SUBRC est rgl sur 4 et la zone de travail reste
inchange.
Nous pouvons galement lire une ligne de la table interne en fonction de la valeur dans
un champ particulier en utilisant la clause KEY de l'instruction READ.
Si plus d'une ligne trouve dans la table interne avec la mme valeur spcifie dans la
clause KEY, seule la premire ligne sera rcupre.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
READ .. WITH KEY
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
LOOP AT
La syntaxe de l'instruction LOOP est la suivante.
LOOP AT [INTO Workarea] [DE] [TO] [expression WHERE].
ENDLOOP.
Les lignes sont lues partir de la table interne une la fois et places dans la zone de
travail.
Les lignes entre LOOP et ENDLOOP sont excutes pour chaque enregistrement lu de la
table interne.
Une fois que toutes les lignes de la table interne sont traites, le contrle passe la ligne
suivante aprs l'instruction ENDLOOP.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
REQUETE OPEN SQL
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
SELECT est l'instruction openSQL pour lire
les donnes de la base de donnes. La
syntaxe gnrale de l'instruction SELECT
est la suivante.
SELECT <result>
INTO <target>
FROM <source>
[WHERE <condition>]
Clause Description
SELECT <result> Specifies which columns you want to read, whether one
line or many lines needs to selected, and whether duplicate
entries are allowed
INTO <target> Determines the target area into which the selected data is
to be placed
FROM <source> Specifies the database table from which the data is to be
selected
WHERE <condition> specifies which lines are to be read by specifying conditions
for the selection
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Premire requte depuis notre table
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Explication
WA_EMPLOYEE est la zone de travail : work area contient UN enregistrement de la
table ZEMPLOYEE la fois.
SELECT * spcifie que toutes les lignes et colonnes sont lues dans la base de
donnes.
SELECT - ENDSELECT fonctionne dans une boucle, donc le code entre SELECT et
ENDSELECT sera excut pour chaque enregistrement trouv dans la table de base
de donnes.
Les instructions WRITE sont utilises pour afficher les valeurs dans la liste.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Condition where
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
INTO CORRESPONDING FIELDS OF
Que faire si nous voulons slectionner uniquement certaines colonnes de la table
de base de donnes au lieu de toutes les colonnes?
Nous devons alors spcifier la liste de champs (noms de champ) dans l'instruction
SELECT au lieu de spcifier .
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
INTO CORRESPONDING FIELDS OF TABLE
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
ALV : RAPPEL ET SUITE
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
ALV : Introduction
Le SAP List Viewer est un outil gnrique qui fournit des donnes sous forme de
tableau (lignes et colonnes), avec fonctions intgres pour manipuler la sortie (tri,
totaux, filtre, ordre des colonnes, cache, etc.) , Fichiers CSV, etc.)
Le nom ALV provient de "ABAP List Viewer", comme nomm initialement car il tait
uniquement disponible en ABAP. C'est maintenant un concept plus gnral, qui est
disponible en java aussi (depuis 7.1).
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Fonctions modules standars
ALV est cr par un ensemble de modules de fonctions standard fournis par SAP
qui diminuent sensiblement le temps de dveloppement du rapport.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
My first ALV_GRID : z_initial_alv1
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
EXPORT PARAMS OF REUSE_ALV_GRID_DISPLAY
I_callback_program : report id
I_bypassing_buffer : 'X'
I_callback_pf_status_set : routine where a user can set his own pf status or change the
functionality of the existing pf status.
It_fieldcat : internal table with the list of all fields and their attributes which are to be
printed (this table can be populated automatically by the function)
It_events : internal table with a list of all possible events of ALV and their corresponding
form names.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
FIELD CATALOG
Le field catalog est un tableau qui contient des informations sur les champs
afficher sur la sortie ALV.
Nous devons d'abord construire un field catalog avant d'afficher n'importe quelle
sortie dans l'ALV.
Nous disposons des trois mthodes suivantes pour crer un catalogue de champs.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
FIELD CATALOG MANUEL
REPORTZ_AS_FCMANUEL.
*DATA declaration
DATA:it_sbookTYPETABLEOFsbook.
DATA:it_fieldcatTYPEslis_t_fieldcat_alv,
wa_fieldcatTYPEslis_fieldcat_alv.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
FIELD CATALOG MANUEL
wa_fieldcat-fieldname='PASSNAME'.
wa_fieldcat-seltext_m='PassengerName'.
APPENDwa_fieldcatTOit_fieldcat.
*Pass data and field catalog to ALV function module to display ALV list
CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat=it_fieldcat
TABLES
t_outtab=it_sbook
EXCEPTIONS
program_error=1
OTHERS=2.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
FIELD CATALOG SEMI AUTOMATIC
Pour gnrer un field catalogue semi-automatique:
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
FIELD CATALOG SEMI AUTOMATIC
TYPES:BEGINOFwa_sbook,
status(4).
INCLUDESTRUCTUREsbook.
TYPES:ENDOFwa_sbook.
DATA:it_sbooktypeTABLEOFwa_sbook.
DATA:it_fieldcatTYPEslis_t_fieldcat_alv,
wa_fieldcatTYPEslis_fieldcat_alv.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
FIELD CATALOG SEMI AUTOMATIC
*Merge Field Catalog
CALLFUNCTION'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name='SBOOK'
CHANGING
ct_fieldcat=it_fieldcat
EXCEPTIONS
inconsistent_interface=1
program_error=2
OTHERS=3.
*Pass data and field catalog to ALV function module to display ALV list
CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat=it_fieldcat
TABLES
t_outtab=it_sbook
EXCEPTIONS
program_error=1
OTHERS=2.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
FIELD CATALOG SEMI AUTOMATIC
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
Auto Width Adjust in ALV grid display
datawa_fieldlayouttypeslis_layout_alv.
wa_fieldlayout-colwidth_optimize='X'.
*Pass data and field catalog to ALV function module to display ALV
list
CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat=it_fieldcat
is_layout=wa_fieldlayout
TABLES
t_outtab=it_sbook
EXCEPTIONS
program_error=1
OTHERS=2.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
AFFICHER ICONE
TYPES:BEGINOFwa_sbook,
status(4).
INCLUDESTRUCTUREsbook.
TYPES:iconTYPEc," Add field to hold traffic light value
ENDOFwa_sbook.
DATA:it_sbookTYPETABLEOFwa_sbook.
DATA:wa_sbookTYPEwa_sbook.
DATA:it_fieldcatTYPEslis_t_fieldcat_alv,
wa_fieldcatTYPEslis_fieldcat_alv.
DATAwa_fieldlayoutTYPEslis_layout_alv.
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
AFFICHER ICONE
...
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
FIELD CATALOG ATTRIBUTS
Les diffrents attributs possibles sont:
Row_pos (position de ligne): Seulement pertinent si la liste doit tre multi-
ligne (deux ou trois lignes) par dfaut. Ainsi, cet attribut peut tre utilis pour
maintenir un certain niveau d'alignement dans la sortie.
Col_pos (position de la colonne): Ce paramtre est pertinent lorsque les
champs de la sortie doivent tre diffrents de la squence des champs de la
table interne utilise pour l'affichage. Le paramtre spcifie la position de
colonne relative du champ dans la sortie de liste. L'ordre des colonnes peut
tre modifi de manire interactive par l'utilisateur. Si ce paramtre est initial
pour toutes les entres de catalogue de champ, les colonnes apparaissent
dans la squence de champ de table interne.
Fieldname (nom de champ): C'est le nom du champ de table interne pour
lequel les paramtres sont passs dans le catalogue.
Tabname (table de sortie interne): Nom de la table de sortie interne qui
contient le champ FIELDCAT-FIELDNAME ci-dessus. de donnes
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
TRICK
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
AIDE
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable
AIDE
Ce document est la proprit dIliade Consulting. Il ne peut tre utilis, reproduit ou divulgu sans son autorisation crite pralable