Vous êtes sur la page 1sur 29

hÇ|äxÜá|à°hÇ|äxÜá|à°hÇ|äxÜá|à°hÇ|äxÜá|à° TuwxÄÅtÄx~TuwxÄÅtÄx~TuwxÄÅtÄx~TuwxÄÅtÄx~ XáátúwXáátúwXáátúwXáátúw YtvâÄà°YtvâÄà°YtvâÄà°YtvâÄà° cÉÄçw|áv|ÑÄ|Çt|ÜxcÉÄçw|áv|ÑÄ|Çt|ÜxcÉÄçw|áv|ÑÄ|Çt|ÜxcÉÄçw|áv|ÑÄ|Çt|Üx g°àÉâtÇg°àÉâtÇg°àÉâtÇg°àÉâtÇ

g°àÉâtÇg°àÉâtÇg°àÉâtÇg°àÉâtÇ CompteCompteCompteCompte RenduRenduRenduRendu dededede
CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP
CompteCompteCompteCompte RenduRenduRenduRendu
dededede TPTPTPTP :::: ABAPABAPABAPABAP
WORKBENCHWORKBENCHWORKBENCHWORKBENCH

Réalisé par :

EL-OUCHI Younes

AnnéeAnnéeAnnéeAnnée universitaireuniversitaireuniversitaireuniversitaire 2009/20102009/20102009/20102009/2010
AnnéeAnnéeAnnéeAnnée universitaireuniversitaireuniversitaireuniversitaire 2009/20102009/20102009/20102009/2010

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Compte Rendu Cours Technique aux solutions SAP : ABAP

Compte Rendu

Cours Technique aux solutions SAP : ABAP WORKBENCH

TP1 && TP2

Compte Rendu Cours Technique aux solutions SAP : ABAP WORKBENCH TP1 && TP2 LP AAE Page
Compte Rendu Cours Technique aux solutions SAP : ABAP WORKBENCH TP1 && TP2 LP AAE Page

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 11.11 IntroIntroductionIntroIntroductionductionduction ABAP

11.11

IntroIntroductionIntroIntroductionductionduction

ABAP est un langage de programmation propriétaire, faisant partie de l'ensemble logiciel SAP. Il s'agit actuellement du langage utilisé dans la programmation des Web Application Server faisant partie de la plateforme Netweaver pour la réalisation de progiciels. Le but de ce TP est :

Se familiariser avec les fonctions du Dictionnaire ABAP et connaître leur mode d'incorporation dans ABAP Workbench. Mettre en œuvre l'aide à la recherche. Apprendre les concepts de base du langage de programmation ABAP. Utiliser efficacement les outils de l’ABAP Workbench. Rédiger des programmes applicatifs simples comprenant des dialogues utilisateur (écran de sélection, liste,dynpro).

programmes applicatifs simples comprenant des dialogues utilisateur (écran de sélection, liste,dynpro). LP AAE Page 3
programmes applicatifs simples comprenant des dialogues utilisateur (écran de sélection, liste,dynpro). LP AAE Page 3

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 22.22 ENVIRONNEMENTENVIRONNEMENTENVIRONNEMENTENVIRONNEMENT

22.22 ENVIRONNEMENTENVIRONNEMENTENVIRONNEMENTENVIRONNEMENT DEDEDEDE DÉVELOPPEMENTDÉVELOPPEMENTDÉVELOPPEMENTDÉVELOPPEMENT

a) Généralité :

ABAP est un langage de programmation propriétaire, faisant partie de l'ensemble logiciel SAP. Plus de 99 % du code de R/3 est programmé en ABAP et toute modification ou ajout dans R/3 implique l’utilisation de ce langage de programmation. Pour les firmes ayant implanté R/3 de même que pour les consultants SAP, le langage de programmation ABAP offre la possibilité de modifier certains aspects du progiciel R/3. Entre autres, il permet de développer des interfaces et des rapports répondant plus adéquatement aux besoins spécifiques des utilisateurs de R/3.

b) Environnement de développement :

L’environnement de développement se retrouve principalement dans l’ABAP Workbench. Ce dernier contient l’ensemble des outils requis pour développer et maintenir les applications développées en langage de programmation ABAP. Dans le cadre de cette section, nous aborderons successivement les outils suivants : l’ABAP Editor, l’ABAP Dictionary et le Dictionary Data Browser.

Il est à noter que le chemin d’accès à l’environnement de développement de SAP R/3 est le suivant :

de développement de SAP R/3 est le suivant : Tools > ABAP Workbench. ABAP Editor L’ABAP

Tools > ABAP Workbench.

ABAP Editorde SAP R/3 est le suivant : Tools > ABAP Workbench. L’ABAP Editor est le principal

L’ABAP Editor est le principal outil permettant de créer, modifier et supprimer un programme ABAP. Il gère la création et le maintien des programmes ABAP, des modules de fonctions, de la suite logique des écrans et de la logique de la base de données. C’est à l’aide de cet outil qu’il vous sera possible de programmer en ABAP.

Pour y accéder, cliquez sur le module Tools > ABAP Workbench Editor.

ABAP Dictionarycliquez sur le module Tools > ABAP Workbench Editor. > Development > ABAP Au même titre

> Development

> ABAP

Au même titre que l’ABAP Editor, l’ABAP Dictionary se retrouve aussi sous l’onglet Development du ABAP Workbench. L’ABAP Dictionary permet d’accéder aux structures de données des différentes tables contenues dans SAP R/3. Pour visualiser la structure d’une

de données des différentes tables contenues dans SAP R/3. Pour visualiser la structure d’une LP AAE
de données des différentes tables contenues dans SAP R/3. Pour visualiser la structure d’une LP AAE

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH table, il suffit de se rendre dans l’ABAP Dictionary (

table, il suffit de se rendre dans l’ABAP Dictionary (SE11) et saisir le nom de cette table sous le champ Database Table.

saisir le nom de cette table sous le champ Database Table . Dictionary Data Browser Le

Dictionary Data Browser

Le Data Browser permet de visualiser les enregistrements des tables de données de R/3. Pour se rendre au Dictionary Data Browser:

Tools > ABAP Workbench > Overview > Data Browser (/nSE16). Il suffit alors d’inscrire le nom de la table dans le champ approprié. ). Il suffit alors d’inscrire le nom de la table dans le champ approprié.

33.33 TravauxTravauxTravauxTravaux PratiquesPratiquesPratiquesPratiques

AA.AA

TP1TP1TP1TP1 ::::

Exercice 1 :PratiquesPratiquesPratiquesPratiques AA.AA TP1TP1TP1TP1 :::: 1) l’exécution du programme en mettant v1 comme constante

1) l’exécution du programme en mettant v1 comme constante dans la section data :

REPORT ZPRG.

Data: v1 type i value 11. if v1 eq 5 . write 'le nombre égale à cing .' . endif. if v1 eq 10. write ' le nombre est égale à dix.' . endif. if v1 <> 5 and v1 <> 10 . write 'le nombre n''est égale ni cinq ni dix.' . endif

5 and v1 <> 10 . write 'le nombre n''est égale ni cinq ni dix.' .
5 and v1 <> 10 . write 'le nombre n''est égale ni cinq ni dix.' .

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH L’affichage du résultat : . L’exécution du programme

L’affichage du résultat :

.
.

L’exécution du programme en mettant v1 comme paramètre dans la section parameters :

REPORT ZPRG. PARAMETERS: v1 type i.

if v1 eq 5. write ' le nombre est égale à cinq .'. endif. if v1 eq 10. write ' le nombre est égale à dix .'. endif. if v1 <> 5 and v1 <> 10. write ' le nomre n''est égale ni à cinq ni 10 .'. endif.

L’affichage du résultat :

Premièrement on saisie la valeur de v1 puis en click sur valider.

endif. L’affichage du résultat : Premièrement on saisie la valeur de v1 puis en click sur
endif. L’affichage du résultat : Premièrement on saisie la valeur de v1 puis en click sur

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH En suit l’interface suivante s’affiche. 2)
:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH En suit l’interface suivante s’affiche. 2)

En suit l’interface suivante s’affiche.

En suit l’interface suivante s’affiche. 2) l’exécution du programme en utilisant l’instruction

2) l’exécution du programme en utilisant l’instruction « case ».

REPORT ZPRG. parameters: v1 type i. case v1 . when 5. write ' le nombre est égale à cinq .'. when 10. write ' le nombre est égale à dix .'. when others. write ' le nomre n''est égale ni à cinq ni 10 .'. endcase.

à dix .'. when others. write ' le nomre n''est égale ni à cinq ni 10
à dix .'. when others. write ' le nomre n''est égale ni à cinq ni 10

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH L’affichage du résultat : Premièrement on saisie la

L’affichage du résultat :

Premièrement on saisie la valeur de v1 puis on click sur valider.

on saisie la valeur de v1 puis on click sur valider. En suit l’interface suivante s’affiche.

En suit l’interface suivante s’affiche.

sur valider. En suit l’interface suivante s’affiche. Exercice 2 : Le programme qui affiche le résultat
sur valider. En suit l’interface suivante s’affiche. Exercice 2 : Le programme qui affiche le résultat

Exercice 2 :

Le programme qui affiche le résultat demande :

REPORT ZPRG.

write: '

/ 'First',40'December', /15 'January',

/30 'First'.

+

1

+

2

+

3

+

4',

/ 'First',40'December', /15 'January', /30 'First'. + 1 + 2 + 3 + 4', LP AAE
/ 'First',40'December', /15 'January', /30 'First'. + 1 + 2 + 3 + 4', LP AAE

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH I ) Exercice 3 : 1) un programme qui exécute des calcules

I )

ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH I ) Exercice 3 : 1) un programme qui exécute des calcules

Exercice 3 :

1) un programme qui exécute des calcules arithmétique (+ ;/ ;- ;*) :

REPORT ZPRG. data: nb_1 type i value 2, nb_2 type i value 3, add type i, sous type i, div type i, mult type i. add = nb_1 + nb_2. sous = nb_1 - nb_2. div = nb_1 / nb_2. mult = nb_1 * nb_2.

write:'les opérations arithmétique sont:',

/ 'La Somme :',20 add,

/ 'La soustraction: ',20 sous ,

/ 'La division :',20 div,

/ 'La multiplication :',20 mult.

L’affichage du résultat :

multiplication :',20 mult. L’affichage du résultat : 2) REPORT ZPRG. data: begin of s1, c1 type

2)

REPORT ZPRG. data: begin of s1, c1 type i value 10, c2 type i value 20, c3 type i value 30,

: 2) REPORT ZPRG. data: begin of s1, c1 type i value 10, c2 type i
: 2) REPORT ZPRG. data: begin of s1, c1 type i value 10, c2 type i

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH end of s1. data: begin of s2, x1 type i value 1, x2

end of s1. data: begin of s2, x1 type i value 1,

x2 type i value 3, x3 type i value 4, end of s2. data: add type i, sous type i, div type i, mult type i.

add = ( s1-c1 + s1-c2 + s1-c3 ) + ( s2-x1 + s2-x2 + s2-x3 ).

sous = ( s1-c1 + s1-c2 + s1-c3 ) - ( s2-x1 + s2-x2 + s2-x3 ).

div = ( s1-c1 + s1-c2 + s1-c3 ) / ( s2-x1 + s2-x2 + s2-x3 ).

mult = ( s1-c1 + s1-c2 + s1-c3 ) * ( s2-x1 + s2-x2 + s2-x3 ). write:'les opérations arithmétique sont:',

/ 'La Somme :',20 add,

/ 'La soustraction: ',20 sous ,

/ 'La division :',20 div,

/ 'La multiplication :',20 mult.

L’affichage du résultat :

multiplication :',20 mult . L’affichage du résultat : II ) 1) data: nb_1 type i value

II )

1)

data: nb_1 type i value 2, nb_2 type i value 3, add type i, sous type i, div type i, mult type i. add nb_1 to nb_2. write : nb_2. subtract nb_1 from nb_2. write :/ nb_2. multiply nb_2 by nb_1.

type i. add nb_1 to nb_2. write : nb_2. subtract nb_1 from nb_2. write :/ nb_2.
type i. add nb_1 to nb_2. write : nb_2. subtract nb_1 from nb_2. write :/ nb_2.

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH write: / nb_2. divide nb_2 by nb_1. write :/ nb_2. Dans ce

write: / nb_2. divide nb_2 by nb_1. write :/ nb_2.

Dans ce cas le programme s’exécute mais il n’affiche rien.

2)

REPORT ZPRG. data :begin of s1, c1 type i value 10, c2 type i value 20, c3 type i value 30, end of s1. data :begin of s2, x1 type i value 2, x2 type i value 3, x3 type i value 4, end of s2. add-corresponding s1 to s2.

subtract-corresponding s1 from s2.

divide-corresponding

multiply-corresponding

s1 by s2. s1 by s2.

Dans ce cas on remarque que le programme s'execute correctement mais il n'affiche aucune resultat.

III)

1) Mettre les deux variable dans la section parameters :

REPORT ZPRG. parameters: nb_1 type i, nb_2 type i. data: add type i, sous type i, div type i, mult type i. add = nb_1 + nb_2. sous = nb_1 - nb_2. div = nb_1 / nb_2. mult = nb_1 * nb_2.

div type i, mult type i. add = nb_1 + nb_2. sous = nb_1 - nb_2.
div type i, mult type i. add = nb_1 + nb_2. sous = nb_1 - nb_2.

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH write:'les opérations arithmétique sont:', /

write:'les opérations arithmétique sont:',

/ 'La Somme :',20 add ,

/ 'La soustraction: ',20 sous ,

/ 'La division :',20 div,

/ 'La multiplication :',20 mult.

L’affichage du résultat :

Premièrement on saisie les deux valeurs NB_1 et NB_2 puis on click sur valider.

les deux valeurs NB_1 et NB_2 puis on click sur valider. Ensuite le résultat s’affiche comme

Ensuite le résultat s’affiche comme suit :

sur valider. Ensuite le résultat s’affiche comme suit : 2) mettre l’opérateur qui permet de choisir

2) mettre l’opérateur qui permet de choisir quel calcule a faire :

REPORT ZPRG. parameters:

nb_1 type i, nb_2 type i, operande(1) type c obligatory. data: add type i, sous type i, div type i, mult type i.

i, nb_2 type i, operande(1) type c obligatory. data: add type i, sous type i, div
i, nb_2 type i, operande(1) type c obligatory. data: add type i, sous type i, div

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH case operandes(1). when '+'. add = nb_1 + nb_2.

case operandes(1). when '+'. add = nb_1 + nb_2. write:'La Somme :',20 add . when '-'. sous = nb_1 - nb_2. write:'La soustraction: ',20 sous . when '/'. div = nb_1 / nb_2. write:'La division :',20 div. when '*'. mult = nb_1 * nb_2. write:'La multiplication :',20 mult. when others. write: 'vous ne pouvez entre que les caracteres suivant:+,-,/ et *'. endcase.

L’affichage du résultat :

Premièrement on saisie les deux valeurs NB_1 et NB_2 puis on choisie l’opération a faire et on click sur valider.

on choisie l’opération a faire et on click sur valider. En suit l’interface suivante s’affiche. LP

En suit l’interface suivante s’affiche.

on choisie l’opération a faire et on click sur valider. En suit l’interface suivante s’affiche. LP
on choisie l’opération a faire et on click sur valider. En suit l’interface suivante s’affiche. LP
on choisie l’opération a faire et on click sur valider. En suit l’interface suivante s’affiche. LP

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Exercice 4 : 1) un programme qui utilise les différantes
:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Exercice 4 : 1) un programme qui utilise les différantes

Exercice 4 :

1) un programme qui utilise les différantes fonction de mise en forme avec leur explication :

REPORT ZPRG. write : 'uline : Cette fonction permet de Trace une ligne horizontale'. uline. write: /. write : sy-vline. write : 'sy-vline : Ligne verticale utilisée pour la création d''un tableau'. write: /. write : /20 'write /20 : Cette fonction permet d''ecrire à partire de la colone 20'. skip 10.write : 'skip 3 : Saute 10 lignes'. skip to line 9.write : 'skip to line 9 : Saute à la ligne 9'.

2) un programme qui permet d’afficher un tableau :

REPORT ZPRG. write: 40'Ecriture d''un tableau'. uline. write: / ''. uline. write : 'nom'. write : 20 sy-vline. write : 'prénom'. write : 40 sy-vline. write : 'proramme'. write : 60 sy-vline. write : 'spécialisation'. write : 80 sy-vline. write : 'no boucle (sy-index)'. uline. do 3 times. write : 20 sy-vline. write : 40 sy-vline. write : 60 sy-vline. write : 80 sy-vline. write : sy-index. uline. enddo.

sy-vline. write : 40 sy-vline. write : 60 sy-vline. write : 80 sy-vline. write : sy-index.
sy-vline. write : 40 sy-vline. write : 60 sy-vline. write : 80 sy-vline. write : sy-index.

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH L’affichage du résultat : BB.BB TP2TP2TP2TP2 Exercice 1 :

L’affichage du résultat :

L’affichage du résultat : BB.BB TP2TP2TP2TP2 Exercice 1 : Premier choix : Dans ce
L’affichage du résultat : BB.BB TP2TP2TP2TP2 Exercice 1 : Premier choix : Dans ce

BB.BB

TP2TP2TP2TP2

Exercice 1 :

Premier choix :

Dans ce choix, en accédant à dictionary data browser ou à ABAP dictionary dans SAP R3 on vois l’interface suivante :

ABAP dictionary dans SAP R3 on vois l’interface suivante : Ensuite en click sur ABAP dictionary.

Ensuite en click sur ABAP dictionary.

Apres la saisie du nom da la base de données, on click sur display.

en click sur ABAP dictionary. Apres la saisie du nom da la base de données, on
en click sur ABAP dictionary. Apres la saisie du nom da la base de données, on

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Ensuite on choisie l’icône utilitaire table contente
:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Ensuite on choisie l’icône utilitaire table contente

Ensuite on choisie l’icône utilitaire table contente Display

Ensuite on choisie l’icône utilitaire table contente Display On choisie valider pour saisie. LP AAE Page

On choisie valider pour saisie.

Ensuite on choisie l’icône utilitaire table contente Display On choisie valider pour saisie. LP AAE Page
Ensuite on choisie l’icône utilitaire table contente Display On choisie valider pour saisie. LP AAE Page

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Apres la saisie des données on valide. Pour modifier un
:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Apres la saisie des données on valide. Pour modifier un

Apres la saisie des données on valide.

Apres la saisie des données on valide. Pour modifier un champ il suffit de faire un

Pour modifier un champ il suffit de faire un click droit est l’option s’affichent comme suit :

Pour modifier un champ il suffit de faire un click droit est l’option s’affichent comme suit
Pour modifier un champ il suffit de faire un click droit est l’option s’affichent comme suit

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Deuxième choix : 1) insertion d’une ligne : REPORT ZPRG.
:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Deuxième choix : 1) insertion d’une ligne : REPORT ZPRG.

Deuxième choix :

1) insertion d’une ligne :

REPORT ZPRG. TABLES:SCURX. SCURX-CURRKEY = 'EUR'. SCURX-CURRDEC = 1. INSERT INTO SCURX VALUES SCURX.

2) insertion de plusieurs lignes:

REPORT ZPRG. DATA ITAB LIKE SCURX OCCURS 0 WITH HEADER LINE.

MOVE :

'USDK' TO ITAB-CURRKEY , 1 TO ITAB-CURRDEC.

APPEND ITAB. CLEAR ITAB.

MOVE : 'DHK' TO ITAB-CURRKEY ,

20 TO ITAB-CURRDEC.

APPEND ITAB.

APPEND ITAB. CLEAR ITAB. MOVE : 'DHK' TO ITAB-CURRKEY , 20 TO ITAB-CURRDEC. APPEND ITAB. LP
APPEND ITAB. CLEAR ITAB. MOVE : 'DHK' TO ITAB-CURRKEY , 20 TO ITAB-CURRDEC. APPEND ITAB. LP

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH CLEAR ITAB. INSERT SCURX FROM TABLE ITAB ACCEPTING DUPLICATE

CLEAR ITAB.

INSERT SCURX FROM TABLE ITAB ACCEPTING DUPLICATE KEYS.

3) Update:

REPORT ZPRG. tables : scurx. update scurx set currkey = 'mal' where currdec = 1.

4) Delete:

REPORT ZPRG . tables scurx. delete from scurx where currdec = 1 and currkey = 'mal'.

from scurx where currdec = 1 and currkey = 'mal'. Exercice 2 : 1) faire l’insertion

Exercice 2 :

1) faire l’insertion des enregistrements dans la table SCARR :

On suivant ces étapes qui apparais dans les interfaces suivante :

enregistrements dans la table SCARR : On suivant ces étapes qui apparais dans les interfaces suivante
enregistrements dans la table SCARR : On suivant ces étapes qui apparais dans les interfaces suivante
enregistrements dans la table SCARR : On suivant ces étapes qui apparais dans les interfaces suivante

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH LP AAE Page 20
RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH LP AAE Page 20
RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH LP AAE Page 20
RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH LP AAE Page 20
RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH LP AAE Page 20

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH En fin on vérifier si les données sont bien saisies. Apres
:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH En fin on vérifier si les données sont bien saisies. Apres

En fin on vérifier si les données sont bien saisies.

En fin on vérifier si les données sont bien saisies. Apres avoir click sur valider on

Apres avoir click sur valider on remarque les données saisies.

si les données sont bien saisies. Apres avoir click sur valider on remarque les données saisies.
si les données sont bien saisies. Apres avoir click sur valider on remarque les données saisies.

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 2) définition de la table SCARR : REPORT ZPRG. data : begin
:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 2) définition de la table SCARR : REPORT ZPRG. data : begin

2) définition de la table SCARR :

REPORT ZPRG.

data : begin of iscarr occurs 0. include structure scarr. data : end of iscarr. select * from scarr into corresponding fields of table iscarr. loop at iscarr.

write :

iscarr-carrid,

iscarr-carrname,

iscarr-currcode,

iscarr-url.

endloop.

iscarr. loop at iscarr. write : iscarr-carrid, iscarr-carrname, iscarr-currcode, iscarr-url. endloop. LP AAE Page 22
iscarr. loop at iscarr. write : iscarr-carrid, iscarr-carrname, iscarr-currcode, iscarr-url. endloop. LP AAE Page 22

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 3.1) Effectuer une requête dans la table SCARR : Dans le

3.1) Effectuer une requête dans la table SCARR :

Dans le cas de CARRD= AD, il n'affiche rien puisque on a pas cette valeur dans la table.

REPORT ZPRG . tables scarr. select * from scarr where carrid like 'AA'. write : / scarr-carrid, scarr-carrname. endselect.

3.2) Définir un paramètre AIR_ID :

REPORT ZPRG . tables scarr. parameters : air_id like scarr-carrid. select * from scarr where carrid = air_id. write : / scarr-carrid, scarr-carrname. endselect.

L’affichage du résultat :

where carrid = air_id. write : / scarr-carrid, scarr-carrname. endselect. L’affichage du résultat : LP AAE
where carrid = air_id. write : / scarr-carrid, scarr-carrname. endselect. L’affichage du résultat : LP AAE
where carrid = air_id. write : / scarr-carrid, scarr-carrname. endselect. L’affichage du résultat : LP AAE

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 4) Faire une requête qui sélectionne le contenu de la

4) Faire une requête qui sélectionne le contenu de la table SCARR :

REPORT ZPRG. tables scarr. select * from scarr where carrname like 'A%' order by carrid. write : / scarr-carrid, scarr-carrname. endselect.

L’affichage du résultat :

scarr-carrname. endselect. L’affichage du résultat : 5) Faire une requête de concaténation qui affiche les

5) Faire une requête de concaténation qui affiche les champs :

REPORT ZPRG. tables : scurx, scarr.

write : /5 'carrid',

15

'carrname',

30

'currkey',

40

'currdec',

50

'url'.

select * from scurx.

select * from scarr where currcode = scurx-currkey. write : /5 scarr-carrid,

15

scarr-carrname,

30

scurx-currkey,

40

scurx-currdec,

50

scarr-url.

endselect.

endselect.

30 scurx-currkey, 40 scurx-currdec, 50 scarr-url. endselect. endselect. LP AAE Page 24
30 scurx-currkey, 40 scurx-currdec, 50 scarr-url. endselect. endselect. LP AAE Page 24

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH L’affichage du résultat : Exercice 3: 1) Execution du

L’affichage du résultat :

L’affichage du résultat : Exercice 3: 1) Execution du programme: REPORT ZPRG. do 3
L’affichage du résultat : Exercice 3: 1) Execution du programme: REPORT ZPRG. do 3

Exercice 3:

1) Execution du programme:

REPORT ZPRG. do 3 times. write : / 'line', sy-index. write /. enddo. at line-selection. if sy-lsind < 2. write : / 'Niveau de la liste :', / sy-lsind."Niveau de la liste write : / 'Ligne :', / sy-curow."Ligne sélectionnée write : / 'Contenu de la ligne :', / sy-lisel."Contenu de la ligne sélectionnée endif.

La commande "at line-selection." vous permet de faire un choix de line, puis elle vous affiche

* le niveau de la liste

* la ligne

* le contenu de la ligne

un choix de line, puis elle vous affiche * le niveau de la liste * la
un choix de line, puis elle vous affiche * le niveau de la liste * la

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 2) Exécution des programme et commenter l’utilité de «

2) Exécution des programme et commenter l’utilité de « hide » :

REPORT ZPRG. ***********Tables****************** *tables utilisées tables : scarr. ***********Data******************** *declaration de la table interne data : begin of iplane occurs 0. include structure scarr. data : end of iplane. ***********Start of Selection****** ***********Selection*************** *titre write : /1 'Nom de la compagnie d''aviation'. uline. skip 1. select * from scarr into corresponding fields of table iplane. loop at iplane. write : / iplane-carrname. *conserver en mémoire les numéros identifiant chacune des cie d'aviation hide iplane-carrid. endloop. *commande pour permettre le forage at line-selection. read table iplane with key carrid = iplane-carrid. if sy-lsind = 1. write : /1 iplane-url. endif.

La commande "hide iplane-carrid." permet d'efface la case memoire pour affiche le nouveau url du CARRNAME selectionne.

permet d'efface la case memoire pour affiche le nouveau url du CARRNAME selectionne. LP AAE Page
permet d'efface la case memoire pour affiche le nouveau url du CARRNAME selectionne. LP AAE Page

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 3) un programme qui permet le forage sur plusieurs niveaux :

3) un programme qui permet le forage sur plusieurs niveaux :

REPORT ZPRG. tables : scarr. data : begin of iplane occurs 0. include structure scarr. data : end of iplane. write : /1 'Numéro de la compagnie',

30 'Nom de la compagnie d''aviation'.

uline. skip 1. select * from scarr into corresponding fields of table iplane. loop at iplane.

write : /1 iplane-carrid,

30 iplane-carrname.

hide iplane-carrid. endloop. at line-selection. read table iplane with key carrid = iplane-carrid.

if sy-lsind = 1. write : /1 iplane-currcode. endif. if sy-lsind = 2. write : /1 iplane-url. endif. L’affichage du résultat :

iplane-currcode. endif. if sy-lsind = 2. write : /1 iplane-url. endif. L’affichage du résultat : LP
iplane-currcode. endif. if sy-lsind = 2. write : /1 iplane-url. endif. L’affichage du résultat : LP
iplane-currcode. endif. if sy-lsind = 2. write : /1 iplane-url. endif. L’affichage du résultat : LP

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Exercice 4: Créer un graphique en deux dimensions : REPORT
:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH Exercice 4: Créer un graphique en deux dimensions : REPORT

Exercice 4:

Créer un graphique en deux dimensions :

REPORT ZPRG . Data: begin of Gproduit, Nom_produit type c, Quantite type i, End of Gproduit, Iproduit like Gproduit occurs 0 with header line. Move: ' clavier' to iproduit-nom_produit, '50' to iproduit-quantite. Append: iproduit. Clear: iproduit. Call function 'GRAPH_2D' Exporting Titl = ' gestion du produit' Valt = 'quantité'

Tables

Data = iproduit.

Exporting Titl = ' gestion du produit' Valt = 'quantité' Tables Data = iproduit. LP AAE
Exporting Titl = ' gestion du produit' Valt = 'quantité' Tables Data = iproduit. LP AAE

CompteCompteCompteCompte RenduRenduRenduRendu dededede TPTPTPTP :::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH

:::: ABAPABAPABAPABAP WORKBENCHWORKBENCHWORKBENCHWORKBENCH 44.44 ConclusionConclusionConclusionConclusion Nous avons

44.44 ConclusionConclusionConclusionConclusion

Nous avons donc vu dans « le cours technique aux solutions SAP » les principales fonctionnalités SAP à travers les modules ainsi qu'un bref historique de version afin d'être un peu au courant de l'avancement. Enfin, nous avons rapidement découvert l'interface SAP, comment se connecter et ou saisir nos transactions. Ce TP nous a permis de mieux comprendre les concepts de base du langage de programmation ABAP, Utiliser les outils de l’ABAP Workbench.

les concepts de base du langage de programmation ABAP, Utiliser les outils de l’ABAP Workbench. LP
les concepts de base du langage de programmation ABAP, Utiliser les outils de l’ABAP Workbench. LP