SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC 1 / 15
Titre : Normes de développement pour le spécifique SAP
Résumé : Ce document fournit des recommandations concernant les normes de
développement du spécifique SAP.
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 2 / 15
SOMMAIRE
1. NORMES DE DEVELOPPEMENT POUR LE SPECIFIQUE SAPERROR! BOOKMARK NOT DEFIN
1.1. Convention D’APPELLATION 3
1.1.1. Règles générales 3
1.1.2. Classe de développement 3
1.1.3. Transaction 3
1.1.4. Programme spécifique 3
1.1.5. Table / Structure 3
1.1.6. Elément de données 3
1.1.7. Domaine 4
1.1.8. Vue 4
1.1.9. Objet Matchcode 4
1.1.10. Groupe Fonction 4
1.1.11. Module Fonction 4
2. RECOMMANDATIONS POUR LES PROGRAMMES ABAP 6
2.1. Protection 6
2.2. Qualité 6
2.3. Performances 6
2.4. Maintenance 8
2.5. Notes 9
3. TRANSPORTS 10
3.1. Fonctionnement 10
3.2. Réinitialisation des buffers 10
3.3. Redémarrage du système, sauvegardes 'offline' 10
3.4. Développement 10
4. MODIFICATION DU STANDARD SAP 12
4.1. modification directe de l'objet standard SAP 12
4.2. usage d'un "user-exit", s'il existe, dans le programme 12
4.3. usage d'un "user-exit", s'il existe, dans les extensions ailleurs 14
4.4. copie de l'objet standard, et puis modification de la copie 15
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 3 / 15
1.1. CONVENTION D’APPELLATION
1.1.1. Règles générales
L'ensemble des objets de développement doit impérativement respecter la contrainte SAP qui
impose d'utiliser comme première lettre du nom la lettre Y ou Z.
Avant la mise en application de ce standard, SAP a créé un certain nombre d'objets qui ne
respectent pas cette règle. Les noms de ces objets sont référencés dans la table TDKZ; ces noms ne
doivent pas être réutilisés.
1.1.2. Classe de développement
4 car. Z d
Y d
1.1.3. Transaction
4 car. Z d
Y d
1.1.4. Programme spécifique
8 car. Z
Y
1.1.5. Table / Structure
10 car. Z d
Y d
1.1.6. Elément de données
10 car. Z d
Y d
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 4 / 15
1.1.7. Domaine
10 car. Z d
Y d
Rappel: Un élément de données est rattaché à un domaine. Ce domaine fait référence à:
- une table de valeurs
- et/ou des constantes dont les valeurs sont répertoriées dans une table, DD07L
Cette table DD07L permet d'afficher, pour un domaine donné, la liste des valeurs constantes définies pour
le domaine. Ces valeurs sont donc définies pour un tuple Domaine/Table DD07L. La table DD07T
permet d'afficher les libellés associés à ces valeurs.
1.1.8. Vue
10 car. Z d
Y d
1.1.9. Objet Matchcode
4 car. Z d
Y d
Lors de la création par un utilisateur d'un objet matchcode, son identifiant (ID) se
compose d'un seul caractère, qui doit impérativement être un chiffre entre '0' et '9'.
Les matchcodes fournis en standard par SAP utilisent aussi les lettres entre 'a' et 'z' et
peuvent être codés sur deux caractères..
On peut aussi définir un index pour le matchcode, censé améliorer les performances de
recherche, (cf. BC430 'ABAPDictionary', page 6-21)
1.1.10. Groupe Fonction
4 car. Z d
Y d
1.1.11. Module Fonction
27 car. Z _ d ......
Y d ......
A noter que pour les module fonctions, la contrainte d’appellation imposée par SAP
est que le nom commence par 'Z_' ou 'Y'
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 5 / 15
d - Domaine applicatif - défini pour le projet en cours (?)
Exemple: V - Ventes
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 6 / 15
2. RECOMMANDATIONS POUR LES PROGRAMMES ABAP
2.1. PROTECTION
 Affecter un groupe d'autorisations à un programme ABAPpour le protéger.
2.2. QUALITE
 Mettre <END OF REPORT> à la fin de l'édition d'une liste dans un programme ABAP.
 Décrire dans la sortie d'un programme les traitements faits. ex:
895 enregistrements lus du fichier /tmp/devr3/italia/vendor.dat
738 enregistrements insérés dans la table SAP ZCVG1
 Traiter tous les codes retour. On peut utiliser l'instruction CASE pour le faire:
READ DATASET VENDOR1 INTO RECORD
CASE SY-SUBRC
WHEN 00.
ADD 1 TO REC-COUNTER.
WHEN 04.
EXIT.
WHEN 08.
MESSAGE ID 'ZV' TYPE 'E' NUMBER '005' WITH VENDOR1.
ENDCASE
 Pour traiter le cas où les codes retour SAP changent dans une release supérieure, ne pas
oublier de traiter les codes 'others':
WHEN 00.
...
WHEN 04.
...
WHEN OTHERS.
...
2.3. PERFORMANCES
 Utiliser l'instruction FREE pour relâcher la mémoire réservée pour une table interne qui
n'est plus utilisée. (Pas la peine à la fin d'un programme)
 Dans les instructions IF et CASE, traiter les cas les plus probables d'abord. I.E. Dans le
cas où on traite SY-SUBRC, traiter '00' (aucune erreur) d'abord - il est plus probable que
l'instruction réussisse.
 Utiliser une KEY ou un INDEX pour accélérer la lecture des tables internes.
 S'il n'est pas nécessaire de trier une table interne, ou si elle est triée plus tard, utiliser plutôt
APPEND qu'INSERT pour ajouter les enregistrements.
 Au lieu d'utiliser l'instruction MOVE-CORRESPONDING, utiliser plusieurs instructions
MOVE, surtout si les tables internes ont des structures très différentes.
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 7 / 15
 Version 3.0c. La transaction SE30 détermine les performances des différentes intructions
ABAP. (chemin: Outils => ABAPWorkbench => Test => Analyse durée d’exécution.)
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 8 / 15
2.4. MAINTENANCE
 Utiliser les éléments de texte (Titres, intitulés, etc.) pour séparer les textes du programme,
et pour permettre la traduction.
 Ecrire les commentaires en minuscules pour améliorer la lisibilité, et ainsi, éviter ceci:
* OUVRIR LE FICHIER VENDOR
OPEN DATASET VENDOR.
 Mettre beaucoup de commentaires, surtout à la définition des champs pour expliquer
comment ils sont utilisés, et pour décrire la logique du code avec des conditions. Les
commentaires sont aussi importants pour la maintenance du code par le client.
 Eviter de mettre beaucoup de code à l'intérieur d'une boucle ou d'une instruction IF.
Utiliser plutôt un sous-programme, et rendre le code plus lisible:
DO.
READ DATASET VENDOR1 INTO RECORD.
...
PERFORM TRAITER-RECORD.
ENDDO.
 Décaler le code d'un programme ABAPpour le rendre plus lisible:
IF SY-SUBRC = 0.
WRITE :/ 'OK'.
ELSE
IF SY-SUBRC = 4.
WRITE :/ 'ERREUR'.
ENDIF.
ENDIF.
Au lieu de
IF SY-SUBRC = 0.
WRITE :/ 'OK'.
ELSE
IF SY-SUBRC = 4.
WRITE :/ 'ERREUR'.
ENDIF.
ENDIF.
Si nécessaire, ceci peut se faire automatiquement, a l'aide du 'Pretty Printer' (Programme >
Pretty Printer)
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 9 / 15
2.5. NOTES
 Dans un programme ABAP, mettre les INCLUDE au début, après le titre:
Ceci est important dans le cas d' <ICON> et de <SYMBOL> - s'ils ne sont pas au début du
programme, les instructions telles que:
WRITE :/ ICON_CHECKED AS ICON.
ne marchent pas!
 Dans le Menu Painter, lors de la création d'un menu, n'oubliez pas de:
1. Affecter des noms à des touches fonction, tels que:
BACK END CANC
  X
2. Activer les fonctions (Fonction Activation  Fonctions actives)
3. Générer le menu.
report SAPMZ04A.
include:
MZ04ATOP,
<ICON>,
<SYMBOL>.
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 10 / 15
3. TRANSPORTS
3.1. FONCTIONNEMENT
Quand on utilise le programme 'tp' (ordre UNIX) pour faire le transport de nouveaux objets
d'un système d'intégration vers un système de production, deux choses se passent en
arrière-plan:
 chaque entrée dans le buffer de programmes est invalidée, c'est-à-dire que
chaque entrée n'est pas supprimée, mais marquée comme non utilisable.
 tous les autres buffers sont vidés.
Le buffer de programmes contient déjà des entrées. Chaque nouveau programme doit se loger
dans une zone déjà existante et suffisamment grande du buffer. qui est d'au moins la taille
du programme. Ainsi, le buffer est rapidement fragmenté, et comprend des petits espaces,
qui ne peuvent être utilisés, comme le décrit l'image:
Donc, il est important de faire aussi peu de transports que possible.
3.2. REINITIALISATION DES BUFFERS
La réinitialisation des buffers nécessite un bon nombre d'accès à la base de données, et peut
facilement encombrer le système. Il faut donc seulement réinitialiser les buffers si les
données du système changent.
La réinitialisation des buffers de table se fait à l'aide de l'instruction $TAB, et on peut
réinitialiser tous les buffers du système à l'aide de l'instruction $SYNC. A noter que ces
deux instructions peuvent prendre jusqu'à une heure.
3.3. REDEMARRAGE DU SYSTEME, SAUVEGARDES 'OFFLINE'
Ces deux actions nécessitent l'arrêt et redémarrage complet du système. Tous les buffers sont
réinitialisés. Ceci prend également beaucoup de temps.
3.4. DEVELOPPEMENT
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 11 / 15
Pendant la phase de développement, les programmes sont changés et re-générés plusieurs fois,
et ainsi, les buffers de programme deviennent très fragmentés, comme décrit ci-dessus. Le
développement ne doit pas être fait dans le système de production. Dans le système de
développement, il faut des buffers de programme très grands.
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 12 / 15
4. MODIFICATION DU STANDARD SAP
Il est parfois nécessaire de modifier les programmes standards qui ne répondent pas complètement
aux besoins spécifiés par le client et il faut choisir la méthode pour le faire:
4.1. MODIFICATION DIRECTE DE L'OBJET STANDARD SAP
Déconseillé. Afin de minimiser les modifications du standard faites par les clients, et aussi
pour pouvoir prévenir les clients quand leurs modifications seront affectées par les montées de version,
SAP a introduit un système de 'clés de modification' : chaque fois qu'on veut changer un objet standard
SAP, le système demande une clé de réparation, qu'on obtient à partir de SAP. (OSS)
4.2. USAGE D'UN "USER-EXIT", S'IL EXISTE, DANS LE PROGRAMME
Conseillé par SAP. Les "user-exits" sont des appels à des programmes spécifiques, à des
endroits prédefinis dans un programme. Ainsi, les programmes SAP ne sont pas changés - et à priori,
une montée de version ne va pas changer les fonctionnalités du spécifique. On peut voir un
programme SAP qui prévoit des user-exit : transaction SE38 (Outils > ABAPWorkbench > Editeur
ABAP), puis afficher le programme standard SAPMV45A. Malheureusement, il n'y a pas des user-
exits partout où on les voudrait.
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 13 / 15
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 14 / 15
4.3. USAGE D'UN "USER-EXIT", S'IL EXISTE, DANS LES EXTENSIONS AILLEURS
Conseillé par SAP. La encore, il n'y a pas les "user-exits" partout. Pour avoir une liste
exhaustive des extensions SAP, il suffit de lancer la transaction SMOD (Outils > ABAPWorkbench >
Environnement > Extensions > Définition), puis choisir Utilitaires > Rechercher.
SAP NORMES DE DEVELOPPEMENT Version 1
_____________________________________________________________________________________
NORMES_1.DOC © 15 / 15
4.4. COPIE DE L'OBJET STANDARD, ET PUIS MODIFICATION DE LA COPIE
Ainsi, modifications des objets standards SAP est évitée, mais lors d'une montée de
versions, il faut tester les programmes modifiés par rapport aux nouveaux programmes SAP pour voir si
les modifications sont encore nécessaires : il se peut que la nouvelle version de SAP propose soit les
fonctionnalités voulues, soit des user-exit.

Contenu connexe

Similaire à Guide sap normes de developpement abap

Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
CERTyou Formation
 
atam guide de developpement v1.3
atam guide de developpement v1.3atam guide de developpement v1.3
atam guide de developpement v1.3
Abdessamad Hamouch
 
Es20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureEs20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structure
CERTyou Formation
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
infcom
 
Cd 2 _manuals_francais_step 7 - list pour s7-300 et s7-400
Cd 2 _manuals_francais_step 7 - list pour s7-300 et s7-400Cd 2 _manuals_francais_step 7 - list pour s7-300 et s7-400
Cd 2 _manuals_francais_step 7 - list pour s7-300 et s7-400
Said Ahmed
 

Similaire à Guide sap normes de developpement abap (20)

JasperReport
JasperReportJasperReport
JasperReport
 
Serveur node red
Serveur node redServeur node red
Serveur node red
 
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
 
Dossier de conception_v1.00
Dossier de conception_v1.00Dossier de conception_v1.00
Dossier de conception_v1.00
 
atam guide de developpement v1.3
atam guide de developpement v1.3atam guide de developpement v1.3
atam guide de developpement v1.3
 
Exemple introductif ou tutoriel de RSTAB - logiciel de calcul de structure
Exemple introductif ou tutoriel de RSTAB - logiciel de calcul de structure Exemple introductif ou tutoriel de RSTAB - logiciel de calcul de structure
Exemple introductif ou tutoriel de RSTAB - logiciel de calcul de structure
 
NetApp PartnersTour 2011 à Lille, mon point de vue
NetApp PartnersTour 2011 à Lille, mon point de vueNetApp PartnersTour 2011 à Lille, mon point de vue
NetApp PartnersTour 2011 à Lille, mon point de vue
 
PLSQL-Complements-4p.pdf
PLSQL-Complements-4p.pdfPLSQL-Complements-4p.pdf
PLSQL-Complements-4p.pdf
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...
 
Nouveautés dans RFEM 5.08.01 et RSTAB 8.08.01
Nouveautés dans RFEM 5.08.01 et RSTAB 8.08.01Nouveautés dans RFEM 5.08.01 et RSTAB 8.08.01
Nouveautés dans RFEM 5.08.01 et RSTAB 8.08.01
 
Chp2 - Solutions ERP
Chp2 - Solutions ERPChp2 - Solutions ERP
Chp2 - Solutions ERP
 
Es20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureEs20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structure
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Mysql
MysqlMysql
Mysql
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Cd 2 _manuals_francais_step 7 - list pour s7-300 et s7-400
Cd 2 _manuals_francais_step 7 - list pour s7-300 et s7-400Cd 2 _manuals_francais_step 7 - list pour s7-300 et s7-400
Cd 2 _manuals_francais_step 7 - list pour s7-300 et s7-400
 
Php seance1
Php seance1Php seance1
Php seance1
 
ch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdfch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdf
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
 
cours_uP_beguenane_2_chapitre_2partie1.ppt
cours_uP_beguenane_2_chapitre_2partie1.pptcours_uP_beguenane_2_chapitre_2partie1.ppt
cours_uP_beguenane_2_chapitre_2partie1.ppt
 

Plus de MICKAEL QUESNOT

Plus de MICKAEL QUESNOT (20)

GU_SAP S4 HANA_Define GL Account for Statistical Cost Element.docx
GU_SAP S4 HANA_Define GL Account for Statistical Cost Element.docxGU_SAP S4 HANA_Define GL Account for Statistical Cost Element.docx
GU_SAP S4 HANA_Define GL Account for Statistical Cost Element.docx
 
GU_SAP S4 HANA_Budget Monitoring Using Statistical Orders or WBS Elements.docx
GU_SAP S4 HANA_Budget Monitoring Using Statistical Orders or WBS Elements.docxGU_SAP S4 HANA_Budget Monitoring Using Statistical Orders or WBS Elements.docx
GU_SAP S4 HANA_Budget Monitoring Using Statistical Orders or WBS Elements.docx
 
GU_SAP S4 HANA_How to perform Dunning_Create Dunning Notices (F150).docx
GU_SAP S4 HANA_How to perform Dunning_Create Dunning Notices (F150).docxGU_SAP S4 HANA_How to perform Dunning_Create Dunning Notices (F150).docx
GU_SAP S4 HANA_How to perform Dunning_Create Dunning Notices (F150).docx
 
GU_SAP S4 HANA_Assign GL Accounts.docx
GU_SAP S4 HANA_Assign GL Accounts.docxGU_SAP S4 HANA_Assign GL Accounts.docx
GU_SAP S4 HANA_Assign GL Accounts.docx
 
GU_SAP S4 HANA_Specify Offsetting Account for Legacy Data Transfer.docx
GU_SAP S4 HANA_Specify Offsetting Account for Legacy Data Transfer.docxGU_SAP S4 HANA_Specify Offsetting Account for Legacy Data Transfer.docx
GU_SAP S4 HANA_Specify Offsetting Account for Legacy Data Transfer.docx
 
FPM-SAP S4 HANA-QM11-Clé de commande QM.docx
FPM-SAP S4 HANA-QM11-Clé de commande QM.docxFPM-SAP S4 HANA-QM11-Clé de commande QM.docx
FPM-SAP S4 HANA-QM11-Clé de commande QM.docx
 
FCD_SAP S4 HANA_SD-Flux commande d'achat - Commande client Intersite intercom...
FCD_SAP S4 HANA_SD-Flux commande d'achat - Commande client Intersite intercom...FCD_SAP S4 HANA_SD-Flux commande d'achat - Commande client Intersite intercom...
FCD_SAP S4 HANA_SD-Flux commande d'achat - Commande client Intersite intercom...
 
GU_SAP S4 HANA_Activate Account Assignment Objects.docx
GU_SAP S4 HANA_Activate Account Assignment Objects.docxGU_SAP S4 HANA_Activate Account Assignment Objects.docx
GU_SAP S4 HANA_Activate Account Assignment Objects.docx
 
GU_SAP S4 HANA_Specify Account Assignment Types for Account Assignment Object...
GU_SAP S4 HANA_Specify Account Assignment Types for Account Assignment Object...GU_SAP S4 HANA_Specify Account Assignment Types for Account Assignment Object...
GU_SAP S4 HANA_Specify Account Assignment Types for Account Assignment Object...
 
GU_SAP S4 HANA CLOUD_How to create BOM for Subcontracting.docx
GU_SAP S4 HANA CLOUD_How to create BOM for Subcontracting.docxGU_SAP S4 HANA CLOUD_How to create BOM for Subcontracting.docx
GU_SAP S4 HANA CLOUD_How to create BOM for Subcontracting.docx
 
GU_SAP FIORI_Multilevel Subcontracting Process (Subcontracting Process with 2...
GU_SAP FIORI_Multilevel Subcontracting Process (Subcontracting Process with 2...GU_SAP FIORI_Multilevel Subcontracting Process (Subcontracting Process with 2...
GU_SAP FIORI_Multilevel Subcontracting Process (Subcontracting Process with 2...
 
GU_SAP S4 HANA CLOUD_Subcontracting Cockpit.docx
GU_SAP S4 HANA CLOUD_Subcontracting Cockpit.docxGU_SAP S4 HANA CLOUD_Subcontracting Cockpit.docx
GU_SAP S4 HANA CLOUD_Subcontracting Cockpit.docx
 
GU_SAP S4 HANA CLOUD_Creating Subcontracting Purchasing Info Record (BMY).docx
GU_SAP S4 HANA CLOUD_Creating Subcontracting Purchasing Info Record (BMY).docxGU_SAP S4 HANA CLOUD_Creating Subcontracting Purchasing Info Record (BMY).docx
GU_SAP S4 HANA CLOUD_Creating Subcontracting Purchasing Info Record (BMY).docx
 
GU_SAP FIORI_Subcontracting Cockpit.docx
GU_SAP FIORI_Subcontracting Cockpit.docxGU_SAP FIORI_Subcontracting Cockpit.docx
GU_SAP FIORI_Subcontracting Cockpit.docx
 
GU_SAP S4 HANA CLOUD_Expand and enhance your knowledge on Sales Bill of Mater...
GU_SAP S4 HANA CLOUD_Expand and enhance your knowledge on Sales Bill of Mater...GU_SAP S4 HANA CLOUD_Expand and enhance your knowledge on Sales Bill of Mater...
GU_SAP S4 HANA CLOUD_Expand and enhance your knowledge on Sales Bill of Mater...
 
GU_SAP S4 HANA_Bills of Materials in Sales Documents.docx
GU_SAP S4 HANA_Bills of Materials in Sales Documents.docxGU_SAP S4 HANA_Bills of Materials in Sales Documents.docx
GU_SAP S4 HANA_Bills of Materials in Sales Documents.docx
 
GU_SAP S4 HANA CLOUD_How to Set Up the Email Notification for Flexible Workfl...
GU_SAP S4 HANA CLOUD_How to Set Up the Email Notification for Flexible Workfl...GU_SAP S4 HANA CLOUD_How to Set Up the Email Notification for Flexible Workfl...
GU_SAP S4 HANA CLOUD_How to Set Up the Email Notification for Flexible Workfl...
 
GU_SAP S4 HANA CLOUD_How to Create promotion and Sales deal.docx
GU_SAP S4 HANA CLOUD_How to Create promotion and Sales deal.docxGU_SAP S4 HANA CLOUD_How to Create promotion and Sales deal.docx
GU_SAP S4 HANA CLOUD_How to Create promotion and Sales deal.docx
 
GU_SAP S4 HANA CLOUD_Create Delivery on Sales Bill of Materials (Sales Kits)....
GU_SAP S4 HANA CLOUD_Create Delivery on Sales Bill of Materials (Sales Kits)....GU_SAP S4 HANA CLOUD_Create Delivery on Sales Bill of Materials (Sales Kits)....
GU_SAP S4 HANA CLOUD_Create Delivery on Sales Bill of Materials (Sales Kits)....
 
GU_SAP S4 HANA_CONFIGURE THE FIORI LAUNCHPAD TILES USING CATALOGS & GROUPS.docx
GU_SAP S4 HANA_CONFIGURE THE FIORI LAUNCHPAD TILES USING CATALOGS & GROUPS.docxGU_SAP S4 HANA_CONFIGURE THE FIORI LAUNCHPAD TILES USING CATALOGS & GROUPS.docx
GU_SAP S4 HANA_CONFIGURE THE FIORI LAUNCHPAD TILES USING CATALOGS & GROUPS.docx
 

Dernier

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Dernier (20)

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 

Guide sap normes de developpement abap

  • 1. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC 1 / 15 Titre : Normes de développement pour le spécifique SAP Résumé : Ce document fournit des recommandations concernant les normes de développement du spécifique SAP.
  • 2. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 2 / 15 SOMMAIRE 1. NORMES DE DEVELOPPEMENT POUR LE SPECIFIQUE SAPERROR! BOOKMARK NOT DEFIN 1.1. Convention D’APPELLATION 3 1.1.1. Règles générales 3 1.1.2. Classe de développement 3 1.1.3. Transaction 3 1.1.4. Programme spécifique 3 1.1.5. Table / Structure 3 1.1.6. Elément de données 3 1.1.7. Domaine 4 1.1.8. Vue 4 1.1.9. Objet Matchcode 4 1.1.10. Groupe Fonction 4 1.1.11. Module Fonction 4 2. RECOMMANDATIONS POUR LES PROGRAMMES ABAP 6 2.1. Protection 6 2.2. Qualité 6 2.3. Performances 6 2.4. Maintenance 8 2.5. Notes 9 3. TRANSPORTS 10 3.1. Fonctionnement 10 3.2. Réinitialisation des buffers 10 3.3. Redémarrage du système, sauvegardes 'offline' 10 3.4. Développement 10 4. MODIFICATION DU STANDARD SAP 12 4.1. modification directe de l'objet standard SAP 12 4.2. usage d'un "user-exit", s'il existe, dans le programme 12 4.3. usage d'un "user-exit", s'il existe, dans les extensions ailleurs 14 4.4. copie de l'objet standard, et puis modification de la copie 15
  • 3. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 3 / 15 1.1. CONVENTION D’APPELLATION 1.1.1. Règles générales L'ensemble des objets de développement doit impérativement respecter la contrainte SAP qui impose d'utiliser comme première lettre du nom la lettre Y ou Z. Avant la mise en application de ce standard, SAP a créé un certain nombre d'objets qui ne respectent pas cette règle. Les noms de ces objets sont référencés dans la table TDKZ; ces noms ne doivent pas être réutilisés. 1.1.2. Classe de développement 4 car. Z d Y d 1.1.3. Transaction 4 car. Z d Y d 1.1.4. Programme spécifique 8 car. Z Y 1.1.5. Table / Structure 10 car. Z d Y d 1.1.6. Elément de données 10 car. Z d Y d
  • 4. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 4 / 15 1.1.7. Domaine 10 car. Z d Y d Rappel: Un élément de données est rattaché à un domaine. Ce domaine fait référence à: - une table de valeurs - et/ou des constantes dont les valeurs sont répertoriées dans une table, DD07L Cette table DD07L permet d'afficher, pour un domaine donné, la liste des valeurs constantes définies pour le domaine. Ces valeurs sont donc définies pour un tuple Domaine/Table DD07L. La table DD07T permet d'afficher les libellés associés à ces valeurs. 1.1.8. Vue 10 car. Z d Y d 1.1.9. Objet Matchcode 4 car. Z d Y d Lors de la création par un utilisateur d'un objet matchcode, son identifiant (ID) se compose d'un seul caractère, qui doit impérativement être un chiffre entre '0' et '9'. Les matchcodes fournis en standard par SAP utilisent aussi les lettres entre 'a' et 'z' et peuvent être codés sur deux caractères.. On peut aussi définir un index pour le matchcode, censé améliorer les performances de recherche, (cf. BC430 'ABAPDictionary', page 6-21) 1.1.10. Groupe Fonction 4 car. Z d Y d 1.1.11. Module Fonction 27 car. Z _ d ...... Y d ...... A noter que pour les module fonctions, la contrainte d’appellation imposée par SAP est que le nom commence par 'Z_' ou 'Y'
  • 5. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 5 / 15 d - Domaine applicatif - défini pour le projet en cours (?) Exemple: V - Ventes
  • 6. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 6 / 15 2. RECOMMANDATIONS POUR LES PROGRAMMES ABAP 2.1. PROTECTION  Affecter un groupe d'autorisations à un programme ABAPpour le protéger. 2.2. QUALITE  Mettre <END OF REPORT> à la fin de l'édition d'une liste dans un programme ABAP.  Décrire dans la sortie d'un programme les traitements faits. ex: 895 enregistrements lus du fichier /tmp/devr3/italia/vendor.dat 738 enregistrements insérés dans la table SAP ZCVG1  Traiter tous les codes retour. On peut utiliser l'instruction CASE pour le faire: READ DATASET VENDOR1 INTO RECORD CASE SY-SUBRC WHEN 00. ADD 1 TO REC-COUNTER. WHEN 04. EXIT. WHEN 08. MESSAGE ID 'ZV' TYPE 'E' NUMBER '005' WITH VENDOR1. ENDCASE  Pour traiter le cas où les codes retour SAP changent dans une release supérieure, ne pas oublier de traiter les codes 'others': WHEN 00. ... WHEN 04. ... WHEN OTHERS. ... 2.3. PERFORMANCES  Utiliser l'instruction FREE pour relâcher la mémoire réservée pour une table interne qui n'est plus utilisée. (Pas la peine à la fin d'un programme)  Dans les instructions IF et CASE, traiter les cas les plus probables d'abord. I.E. Dans le cas où on traite SY-SUBRC, traiter '00' (aucune erreur) d'abord - il est plus probable que l'instruction réussisse.  Utiliser une KEY ou un INDEX pour accélérer la lecture des tables internes.  S'il n'est pas nécessaire de trier une table interne, ou si elle est triée plus tard, utiliser plutôt APPEND qu'INSERT pour ajouter les enregistrements.  Au lieu d'utiliser l'instruction MOVE-CORRESPONDING, utiliser plusieurs instructions MOVE, surtout si les tables internes ont des structures très différentes.
  • 7. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 7 / 15  Version 3.0c. La transaction SE30 détermine les performances des différentes intructions ABAP. (chemin: Outils => ABAPWorkbench => Test => Analyse durée d’exécution.)
  • 8. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 8 / 15 2.4. MAINTENANCE  Utiliser les éléments de texte (Titres, intitulés, etc.) pour séparer les textes du programme, et pour permettre la traduction.  Ecrire les commentaires en minuscules pour améliorer la lisibilité, et ainsi, éviter ceci: * OUVRIR LE FICHIER VENDOR OPEN DATASET VENDOR.  Mettre beaucoup de commentaires, surtout à la définition des champs pour expliquer comment ils sont utilisés, et pour décrire la logique du code avec des conditions. Les commentaires sont aussi importants pour la maintenance du code par le client.  Eviter de mettre beaucoup de code à l'intérieur d'une boucle ou d'une instruction IF. Utiliser plutôt un sous-programme, et rendre le code plus lisible: DO. READ DATASET VENDOR1 INTO RECORD. ... PERFORM TRAITER-RECORD. ENDDO.  Décaler le code d'un programme ABAPpour le rendre plus lisible: IF SY-SUBRC = 0. WRITE :/ 'OK'. ELSE IF SY-SUBRC = 4. WRITE :/ 'ERREUR'. ENDIF. ENDIF. Au lieu de IF SY-SUBRC = 0. WRITE :/ 'OK'. ELSE IF SY-SUBRC = 4. WRITE :/ 'ERREUR'. ENDIF. ENDIF. Si nécessaire, ceci peut se faire automatiquement, a l'aide du 'Pretty Printer' (Programme > Pretty Printer)
  • 9. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 9 / 15 2.5. NOTES  Dans un programme ABAP, mettre les INCLUDE au début, après le titre: Ceci est important dans le cas d' <ICON> et de <SYMBOL> - s'ils ne sont pas au début du programme, les instructions telles que: WRITE :/ ICON_CHECKED AS ICON. ne marchent pas!  Dans le Menu Painter, lors de la création d'un menu, n'oubliez pas de: 1. Affecter des noms à des touches fonction, tels que: BACK END CANC   X 2. Activer les fonctions (Fonction Activation  Fonctions actives) 3. Générer le menu. report SAPMZ04A. include: MZ04ATOP, <ICON>, <SYMBOL>.
  • 10. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 10 / 15 3. TRANSPORTS 3.1. FONCTIONNEMENT Quand on utilise le programme 'tp' (ordre UNIX) pour faire le transport de nouveaux objets d'un système d'intégration vers un système de production, deux choses se passent en arrière-plan:  chaque entrée dans le buffer de programmes est invalidée, c'est-à-dire que chaque entrée n'est pas supprimée, mais marquée comme non utilisable.  tous les autres buffers sont vidés. Le buffer de programmes contient déjà des entrées. Chaque nouveau programme doit se loger dans une zone déjà existante et suffisamment grande du buffer. qui est d'au moins la taille du programme. Ainsi, le buffer est rapidement fragmenté, et comprend des petits espaces, qui ne peuvent être utilisés, comme le décrit l'image: Donc, il est important de faire aussi peu de transports que possible. 3.2. REINITIALISATION DES BUFFERS La réinitialisation des buffers nécessite un bon nombre d'accès à la base de données, et peut facilement encombrer le système. Il faut donc seulement réinitialiser les buffers si les données du système changent. La réinitialisation des buffers de table se fait à l'aide de l'instruction $TAB, et on peut réinitialiser tous les buffers du système à l'aide de l'instruction $SYNC. A noter que ces deux instructions peuvent prendre jusqu'à une heure. 3.3. REDEMARRAGE DU SYSTEME, SAUVEGARDES 'OFFLINE' Ces deux actions nécessitent l'arrêt et redémarrage complet du système. Tous les buffers sont réinitialisés. Ceci prend également beaucoup de temps. 3.4. DEVELOPPEMENT
  • 11. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 11 / 15 Pendant la phase de développement, les programmes sont changés et re-générés plusieurs fois, et ainsi, les buffers de programme deviennent très fragmentés, comme décrit ci-dessus. Le développement ne doit pas être fait dans le système de production. Dans le système de développement, il faut des buffers de programme très grands.
  • 12. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 12 / 15 4. MODIFICATION DU STANDARD SAP Il est parfois nécessaire de modifier les programmes standards qui ne répondent pas complètement aux besoins spécifiés par le client et il faut choisir la méthode pour le faire: 4.1. MODIFICATION DIRECTE DE L'OBJET STANDARD SAP Déconseillé. Afin de minimiser les modifications du standard faites par les clients, et aussi pour pouvoir prévenir les clients quand leurs modifications seront affectées par les montées de version, SAP a introduit un système de 'clés de modification' : chaque fois qu'on veut changer un objet standard SAP, le système demande une clé de réparation, qu'on obtient à partir de SAP. (OSS) 4.2. USAGE D'UN "USER-EXIT", S'IL EXISTE, DANS LE PROGRAMME Conseillé par SAP. Les "user-exits" sont des appels à des programmes spécifiques, à des endroits prédefinis dans un programme. Ainsi, les programmes SAP ne sont pas changés - et à priori, une montée de version ne va pas changer les fonctionnalités du spécifique. On peut voir un programme SAP qui prévoit des user-exit : transaction SE38 (Outils > ABAPWorkbench > Editeur ABAP), puis afficher le programme standard SAPMV45A. Malheureusement, il n'y a pas des user- exits partout où on les voudrait.
  • 13. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 13 / 15
  • 14. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 14 / 15 4.3. USAGE D'UN "USER-EXIT", S'IL EXISTE, DANS LES EXTENSIONS AILLEURS Conseillé par SAP. La encore, il n'y a pas les "user-exits" partout. Pour avoir une liste exhaustive des extensions SAP, il suffit de lancer la transaction SMOD (Outils > ABAPWorkbench > Environnement > Extensions > Définition), puis choisir Utilitaires > Rechercher.
  • 15. SAP NORMES DE DEVELOPPEMENT Version 1 _____________________________________________________________________________________ NORMES_1.DOC © 15 / 15 4.4. COPIE DE L'OBJET STANDARD, ET PUIS MODIFICATION DE LA COPIE Ainsi, modifications des objets standards SAP est évitée, mais lors d'une montée de versions, il faut tester les programmes modifiés par rapport aux nouveaux programmes SAP pour voir si les modifications sont encore nécessaires : il se peut que la nouvelle version de SAP propose soit les fonctionnalités voulues, soit des user-exit.