Vous êtes sur la page 1sur 21

ABAP

Advanced Business Application Programming


Module - Introduction

ABAP
Buts de la formation
A l'issue de la formation les participants sont en mesure :
De comprendre le principe de modularisation dans SAP
De lister les moyens de dcouper un programme SAP
De dfinir ce qu'est un 'Include'

Overview

Introduction

4-7

Local Modularization

8 - 10

Global Modularization

11 - 13

Include

14 - 18

Conclusion

19 - 21

Overview

Introduction
Local Modularization
Global Modularization
Include
Conclusion

Definition
Modularization Techniques
Data Encapsulation

Introduction
Definition
Modularisation
Crer des parties de programme rutilisables dans d'autres programmes/systmes
Principe d'encapsulation des donnes et des mthodes/fonctions

Avantages
Rutilisabilit
Meilleure lisibilit du code
Gestion facilit

Program

Updates, Corrections,

Sparation des tches

Module
Code

Module
Code

Code

Introduction
Modularization Techniques
Il existes 2 types de modularisation dans SAP

Modularisation locale

Modularisation globale

Disponible uniquement pour le programme


appelant

Disponible pour tous les programmes du systme


Peut tre utilise simultanment
(limitation du nombre de programme simultan)
Stocker dans le Repository
Les modules sont chargs leur appel dans la
shared memory

Introduction
Data Encapsulation
Encapsulation des donnes => Sparation des donnes
Les modules n'utilisent pas directement les donnes du programme
appelant
Le contraire est galement vrai !!
Les donnes des modules ne doivent pas tre modifies directement par le programme
appelant

Program

Module
Code

Data

Modification directe

Code

Data

Data

Data
7

Overview

Introduction
Local Modularization
Global Modularization
Include
Conclusion

SAP Techniques
Properties

Local Modularization
SAP Techniques
La modularisation locale comprend
Subroutine => Sous-routines / sous programmes
Local Class => POO

Program 1
* Declaration of global variable

Program 2
* Declaration of global variable

Appel sous-routine ou classe

Subroutine
* Declaration of local variable

Class Local
* Declaration of local variable

Subroutine
* Declaration of local variable

Class Local
* Declaration of local variable

Local Modularization
Properties
Les sous-routines et les classes locales sont implmentes
directement dans le programme "appelant"
Elles sont disponibles pour tout le programme
Pour l'interprteur ABAP, elles font partie du programme "appelant"

SAP Shared Memory


Elles sont charges en mmoire en mme temps que le programme
Vu qu'elles en font parties intgralement

Remarque
Elles peuvent avoir le mme nom dans plusieurs programmes !!
Les units locales permettent de modifier directement la valeur des donnes du
programme appelant
Techniquement il est possible d'utiliser des units locales dans plusieurs programmes [via des
'Includes'], mais cette technique va l'encontre du principe d'encapsulation des donnes !!

10

Overview

Introduction
Local Modularization
Global Modularization
Include
Conclusion

SAP Techniques
Properties

11

Global Modularization
SAP Techniques
La modularisation locale comprend
Module Function
Global Class

Program 1

Module Function

* Declaration of global variable

Appel fonction ou classe

Program 2
* Declaration of global variable

Global Class

Appel classe

12

Global Modularization
Properties
Les modules de fonction et les classes globales sont implments
sparment du programme "appelant"
Ils sont stockes dans le Repository

SAP Shared Memory


Ils sont chargs en mmoire lors de leur appel par un programme
Peuvent tre appel par n'importe quel autre programme

Pour changer les donnes


Il faut utiliser les interfaces ou signatures de l'unit de modularisation
Paramtres d'import, d'export,

Remarque
Leur nom doit tre unique dans tout le systme SAP !!
Peuvent contenir des sous-routines, classes locales,
13

Overview

Introduction
Local Modularization
Global Modularization
Include
Conclusion

Definition
Properties
Creation

14

Include
Definition
L'Include est une unit de modularisation particulire propre SAP
Il s'agit d'un programme qui :
Est conu pour tre utilis par d'autres programmes
Via l'instruction INCLUDE <name> .

N'est pas complet en lui-mme


N'a pas d'interface de paramtre

=> Morceau de programme - Bloc de code partiel


Qui ne peut fonctionner seul (sans donne d'entre, )

Avantage
Permet de dcouper son programme en plusieurs petites parties

15

Include
Properties
Ils ont les fonctions suivantes :
Library
Permet d'utiliser le mme code source dans diffrents programmes
Par exemple, cela peut tre utile si vous avez de longues dclarations de donnes que vous
souhaitez utiliser dans diffrents programmes

Order
Permet de grer des programmes complexes d'une manire ordonne
Les groupes de fonctions et les module 'pool' (type de programme M) utilisent des programmes
'Include' pour stocker des parts de programme qui vont ensemble

Include spcial
Include TOP
Pour crire les dclarations globales des donnes d'un programme
Constantes, Compteur, .

16

Include
Creation
Transaction : SE80
Clic droit sur un 'Package'

Transaction : SE38
Type [ i ]

17

Include

Programme ABAP
* Inclure un programme Include dans un autre programme ABAP
INCLUDE ZI_INCLUDE_NAME .

* Include
***INCLUDE ZI_INCLUDE_NAME .
DATA CONSTANTS c_login TYPE string VALUE 'mod' .
WRITE :
/ 'Program started by', SY-UNAME,
/ 'on host', SY-HOST, 'date:', SY-DATUM, 'time:', SY-UZEIT .
ULINE .

18

Overview

Introduction
Local Modularization
Global Modularization

Best Practice

Include

Questions

Conclusion

Discussion

Contact

19

Conclusion
Best Practice
La modularisation en SAP est essentielle !!
Comment choisir entre des units de modules globales ou locales ?
Utiliser des units globales lors de dveloppement :
Avec des connecteurs SAP pour tre distribus vers d'autres systmes SAP ou non
Sur SAP Workflow
Avec une approche SOA et mtier

Utiliser des units locales :


Pour excuter des morceaux de code techniques non mtier
Pour initialiser des variables et des structures rapidement

Astuce
Lors de la cration de sous-routine ou classe locale, il est trs intressant de crer
celle-ci dans un 'Include' !!
Meilleure visibilit
Attention ne pas les rutiliser dans d'autres programmes [ Encapsulation des donnes ]

20

Questions & Discussion

21