Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
de
Finances
Développement
Normes et
standards de
développementNor
mes et standards
de développement
Sommaire
1. ENVIRONNEMENT SAP..............................................................................................4
2. CLASSE DE DÉVELOPPEMENT...............................................................................5
3. ORGANISATION DE LA DOCUMENTATION........................................................6
3.1 NUMÉROTATION DES DÉVELOPPEMENTS........................................................................7
3.1.1 Organisation...........................................................................................................7
3.1.2 Tranches de numéros..............................................................................................7
3.2 DOSSIER D'ANALYSE......................................................................................................8
3.3 DOSSIER DE TEST...........................................................................................................8
3.4 DOSSIER DE VALIDATION.............................................................................................10
4. CODIFICATION DES OBJETS SAP........................................................................11
4.1 OBJETS DU DICTIONNAIRE............................................................................................11
4.2 PROGRAMMES ABAP...................................................................................................13
4.3 AUTRES........................................................................................................................14
5. NORMES DE DÉVELOPPEMENT...........................................................................15
5.1 DOCUMENTATION DES PROGRAMMES..........................................................................15
5.1.1 Cartouche des programmes ABAP.......................................................................15
5.1.2 Documentation du programme :..........................................................................16
5.1.3 Commentaires sur les variables...........................................................................17
5.2 STRUCTURE DU PROGRAMME.......................................................................................18
5.2.1 Organisation du programme................................................................................18
5.2.2 Déclarations des données.....................................................................................19
5.2.3 Routines................................................................................................................21
5.2.3.1 Définition..................................................................................................................................................21
5.2.3.2 Règle de nommage....................................................................................................................................21
5.2.3.3 Exemple d’appel et de déclaration.............................................................................................................21
5.3 CODIFICATION DES VARIABLES....................................................................................22
5.3.1 Paramètres...........................................................................................................22
5.3.2 Options de sélection (SELECT-OPTIONS)..........................................................22
5.3.3 Tables internes......................................................................................................22
5.3.4 Structures..............................................................................................................23
5.3.5 Variables de travail..............................................................................................23
5.3.6 Constantes............................................................................................................23
5.4 INSTRUCTIONS..............................................................................................................24
5.5 ACCÈS À LA BASE DE DONNÉES...................................................................................25
5.6 PERFORMANCES...........................................................................................................26
5.7 PRÉSENTATION DES ÉTATS...........................................................................................27
5.7.1 Couleurs...............................................................................................................27
5.8 MESSAGES....................................................................................................................27
5.8.1 Classes de messages.............................................................................................27
5.8.2 Numéros de messages...........................................................................................28
1. Environnement SAP
Aucun objet ne doit être modifié directement dans les environnements de production ou de
recette (QAS).
Toutes les créations, modifications ou suppressions d’objets SAP doivent avoir lieu
sur l’environnement de développement.
Lors de ces actions, les objets impactés doivent être mis dans des ordres de transport (OT).
Le lien entre les différents environnements se fera par l’intermédiaire de ces OTs lors du
transport, via les transactions SE01 et STMS.
SAP
OT OT
Création, suppression,
ou modification
d’objets ABAPs
Dans un environnement SAP, plusieurs mandants peuvent coexister. Le mandant est une
séparation logique des bases de données à l’intérieur d’une installation du système SAP.
Ainsi, entre les mandants d’un même environnement, un certains nombre de données sont
partagées (on qualifie ces données d’ « inter-mandant »).
La plupart des objets techniques sont « inter-mandant » (programmes, écrans, …) à
l’exception des textes (y compris ceux des formulaires SAPSCRIPT).
La plupart des données des tables sont « mandant dépendant », c'est-à-dire que l’on ne
retrouvera pas les même données dans les tables, d’un mandant à l’autre (par ex : EKKO).
Ce système de mandant est surtout utilisé dans les environnements de développement ou
de recette (mandant « référence paramétrage », mandant « bac à sable », …)
Chez NOZ, les mandants ne sont pas ou très peu utilisés. Il y en a des différents seulement
en dèv, mais seul le mandant 300 est utilisé.
2. Classe de développement
Lors de sa création, un objet SAP (programme ou élément du DDIC) peut être rattaché
Soit à la classe dite d'objets locaux privés (appelés $TMP : objets temporaires),
Soit à une classe de développement.
Les objets locaux privés ne peuvent pas être transportés d'un environnement à un autre. Ils
sont donc présents uniquement dans l'environnement dans lequel ils ont été développés. Ce
sont, en général, des objets ABAPs qui sont employés pour effectuer les tests temporaires.
Les objets destinés à être livrés en recette puis en production sont à rattacher à une classe
de développement. En effet, la classe de développement possède un chemin de transport.
Donc l'affectation d'un objet à une classe de développement entraîne la création d'un ordre de
transport (voir par ailleurs) vers un environnement cible.
Sont rattachés à une même classe de développement des objets ayant tous une
caractéristique commune. Chez Futura Finances la classe de développement ZFUTURA
contient les objets spécifiques.
3. Organisation de la documentation
De la sorte, il est aisé de retrouver un document, quel qu'il soit (analyse détaillée, dossier de
test, abap, document de validation …), en fonction du numéro identifiant.
3.1.1 Organisation
Le numéro identifiant est codé sur 3 caractères, par tranche de 100. La tranche est désignée en
fonction du module auquel le développement s'applique :
Tranche Désignation
000 Achat Marcketing
001 Transport
100 Logistique
200 Administration des ventes
300 Comptabilité
400 contrôle de gestion
500 Ressousrces humaines
600 Expansion Traveux
700 Informatique
800 France invendu – HUB
900 Juridique - Qualité
Il y a un changement de version dès lors qu'une version a été transportée dans l'environnement
de production et qu'elle fait l'objet d'une modification. Toute modification doit apparaître
clairement dans l'étude détaillée, avec les renseignements suivants :
- Qui demande la modification (utilisateurs, intégrateurs, informatique…) ?
- A quelle date?
- Sur quoi porte la modification (règle de gestion, d'exploitation, bug …)?
Les dossiers de tests ont pour but de recenser les unitaires réalisés pour un développement.
Les dossiers de test doivent être effectués par chaque analyste/développeur pour tout
programme réalisé ou modifié.
Ils doivent s'assurer que le développement est conforme aux spécifications de l'étude détaillée,
et qu'il traite tous les cas anormaux.
Le dossier de test suit un modèle prédéfini (en annexe). La première page est une fiche
récapitulative des tests réalisés. Les pages suivantes contiennent un descriptif des tests réalisés
avec les éléments permettant de vérifier chaque test (extraits de fichiers, copies écrans, listes,
…). Les dossiers de test peuvent être rédigés de manière manuscrite (excepté la première
page).
La validation est prononcée par le chef de projet SAP, en accord avec l'utilisateur concerné ou
bien un représentant de l'équipe d'intégration. La validation doit être effectuée dans
l'environnement d'intégration avec des données de paramétrage identique à celles de
l'environnement de production.
La production d'un développement suit tous les points décrits dans l'étude détaillée.
7 'V'= Validation
8 Version de l'étude détaillée pour laquelle la validation s'applique
Le but de ce chapitre est de définir les conventions de notation pour les objets SAP tels les
programmes, les éléments du dictionnaire de données, les codes transaction, …
OBJET CODIFICATION
TABLES Les tables permettent de stocker des enregistrements répondant à une
certaine structure. Le premier champ d'une table créée manuellement est
toujours le mandant (élément de donnée MANDT)
STRUCTURE Les structures sont identiques aux tables mais aucun enregistrement ne
peut y être stocké. Elles servent principalement pour décrire des structures
complexes de fichiers. La codification des structures est identique à celles
des tables
1 Z
2… Description significative
TABLES DE Tables de correspondance : par exemple Z001
CONTROLES
1 'Z'
2-4 ‘XXX’
VUES Une vue est une combinaison des zones d'une ou plusieurs tables .La
codification des vues est identique à celles des tables. La création de vues
n'est pas envisagée.
1 Z
2… Description significative
ELEMENT DE Un élément de données permet de mettre en forme un domaine dans un
OBJET CODIFICATION
DONNEES contexte particulier (utilisation dans une table).
Il fait donc référence à un domaine .La désignation d'un champ d'une
table.
La codification d'un élément de données est la suivante :
1 'Z'
2-6 XXXXX=désignation sur cinq caractères
DOMAINE Le domaine définit les caractéristiques d'un champ d'une table.
Il est définit par un format (caractère, numérique, nombre de décimal), une
longueur et éventuellement une plage de valeurs possibles.
1 'Z'
2-3 XX=nom du module auquel le matchcode
se rattache (MM, PP, SD, FI, autre)
4 N= compteur incrémenté de 1 lors de la
création d'un matchcode rattaché à un
module.
La création d'objets spécifiques doit être contrôlée et évitée dans la mesure du possible. Si des
objets standards peuvent répondre à un besoin, il est préférable de les utiliser (valable
particulièrement pour les domaines et les éléments de données).
Les tables spécifiques sont crées dans le but :
- d'établir des règles de correspondance
- de stocker des données spécifiques non géré par SAP
- de décrire des structures de fichiers…
Toutes les transactions de SAP sont développées suivant les types de traitement .
On s'efforcera donc de faire apparaître cette notion dans le nom des Abaps. On fera également
apparaître le numéro de développement auquel l'Abap fait référence.
OBJET CODIFICATION
ABAP
1 'Z'
2 Type de traitement :
'R' = Reprise
'E' = interface Entrante
'S' = interface Sortante
'L' = Liste, Liste interactive
'M' = Mise à jour
'F' = gestion de Formulaire
'I' = Include
'Y' = Utilitaire
'Z' = Programme one-shot
3-8 NNNNNN = numéro de développement
auquel l'Abap se réfère
9 '_'
10 et + Descriptif
Suffixe _TOP pour un include de déclaration de
données
_F01, _F02, … pour un include de
déclaration de routine, module, macro,
classes, …
4.3 Autres
OBJET CODIFICATION
FORMULAIRE Les formulaires désignent tout modèle de correspondance
édité avec l'aide des outils Sapscript. Un grand nombre de
formulaires standards existent, qui sont là en tant que modèle
de référence.
1-2 'Z'
3-16 Libellé explicatif libre
Exemple : Un formulaire ayant pour but d'éditer les
règlements fournisseurs par chèque se nommera 'Z
REGLEMENT _C', car 'C' représente le mode de paiement
'Chèque'.
CODES TRANSACTIONS Les codes transactions, auxquels sont rattachés un
programme ou un dynpro, sont codifiés de la sorte
1 'Z'
2-3 XX= nom du module auquel le code transaction
s'applique
4 Compteur incrémenté de 1
DOSSIERS DU BTCI A définir
JOBS A définir (inclure mention de périodicité)
5. Normes de développement
Les commentaires doivent être systématiques et efficaces .Ils se matérialisent par une étoile '*'
au début d'une ligne de code (ou une double cote ″ en cours de ligne). Les commentaires sont
affichés en surbrillance dans un abap, ce qui les fait ressortir des lignes de code.
Le premier commentaire d'un programme est son en-tête. Elle doit faire apparaître les
informations suivantes :
- Le nom du projet
- L’objet du programme (brève description)
- La référence aux spécifications
- Le domaine SAP
- La version du programme
- L’auteur du programme
- La date de création
- La date de validation
- L’historique des modifications
Exemple :
Ou :
De manière générale, un programme doit être le plus structuré possible, ce qui facilite sa
maintenance. Les différents éléments d’un programme doivent donc être organisés de manière
logique. Voici une liste non exhaustive de ces éléments :
INITIALISATION (facultatif) :
Evènement permettant l’initialisation des données avant le début du
déroulement du programme
AT SELECTION-SCREEN… (facultatif) :
Evènement permettant les traitements de l’écran de sélection.
START-OF-SELECTION :
Les sélections dans les tables SAP sont à faire, dans la mesure du possible,
après cet évènement.
END-OF-SELECTION :
Le traitement à partir des données sélectionnées se trouve après cet évènement.
TOP-OF-PAGE (facultatif) :
Evènement délimitant un bloc de traitement n’intervenant qu’au moment de
l’écriture d’une liste ou d’un compte-rendu, à chaque début de page.
De manière pratique, permet, par exemple, de mettre un en-tête sur chaque
page.
END-OF-PAGE (facultatif) :
Même usage que le TOP_OF_PAGE, mais en fin de page.
Toutes les déclarations d’objets globaux doivent être faites dans un programme include (TOP)
et regroupées par types, comme suit :
Tables : Cette instruction permet de déclarer une table avec un work-area du même
type qu’une table de base de données. A utiliser le moins possible.
Types
Types de table : la déclaration de tables avec header-line est proscrite, car obsolète
(mot clé « OCCURS »).
Tables internes
Structures
Variables :
Il est toujours préférable d’utiliser le mot clé « TYPE » plutôt que « LIKE », si c’est
possible. De même, Il est préférable que le type soit un élément de donnée ou un
domaine du DDIC.
Field-symboles
Constantes
Ecran de sélection
5.2.3 Routines
5.2.3.1 Définition
Les routines sont des sous-objets de programmation d’un programme ABAP qui peuvent être
utilisées autant de fois que nécessaire. Elles n’ont pas d’existence propre, ce sont des éléments
d’un report, leur activation dépend donc de l’objet qui les contiennent (report, pool de
module, include).
Les routines répondent à une syntaxe de définition et d’appel. Elles peuvent recevoir des
arguments du programme principal pour les utiliser ou les modifier (variables, tables,
structures, …).
Attention : tous les éléments définis à l’intérieur d’une routine, n’existent que durant
l’exécution de cette routine et ne sont accessible qu’à l’intérieur de la routine.
La routine est définie entre les mots clés « FORM » et « ENDFORM » et est appelé via le mot
clé « PERFORM ».
Pur une meilleur maintenance des programmes ABAP, Un préfixe est apposé au nom de la
routine, suivant le niveau d’appel de cette routine.
Si la routine est appelée dans le corps du programme (routine de premier niveau) les
préfixes suivant sont utilisés (suivant l’ordre d’appel) : f100_, f200_, f300_ …
Si la routine est de deuxième niveau (appelée à l’intérieur d’une routine de premier
niveau) alors les préfixes suivant sont utilisés : f110_, f120_, f130_, … (ou f210_,
f220_, f230_, …)
Si la routine est de troisième niveau, les préfixes sont : f111_, f112_, f113_, … (ou
f341_, f342_, f343, …)
Enfin, si la routine est appelée dans plusieurs niveaux différents dans le programme,
alors son préfixe sera f000_.
5.3.1 Types
Les types sont utilisés pour définir d’autres données comme les structures ou les types de
tables ; elles se codifient comme suit :
POSITION CODES ET SIGNIFICATIONS
1-3 'TY_'
4--- descriptif de la table interne
Le rôle d'un select-option est le même que celui des paramètres .Les select-options permettent
de saisir des fourchettes de valeurs, d'exclure des valeurs… Ils sont matérialisés par une table
interne, dont la structure dépend de la zone citée en référence du select-option. Ils se codifient
comme suit :
Les tables internes sont utilisées pour stocker des enregistrements répondant à une structure
bien définie. Elles sont codifiées comme suit :
5.3.6 Ranges
5.3.7 Structures
Une structure est une zone de travail, un ensemble cohérent d’information, un regroupement
de plusieurs zones. Elle correspond à une ligne de table.
Les variables de travail sont utilisées pour stocker des valeurs susceptibles d'évoluer durant le
déroulement du programme. C'est le cas des compteurs, des variables de calcul…
5.3.9 Constantes
Les constantes sont utilisées pour définir une valeur fixe lors d'un traitement
5.4 Instructions
5.6 Performances
5.7.1 Couleurs
L'utilisation des couleurs dans les états est normalisée .SAP propose une palette de huit
couleurs, chacune déclinable en trois formats.
Voici une liste des couleurs disponibles, ainsi que l'utilisation que nous leur donnerons :
5.8 Messages
Il est possible d'éditer des messages lors d'un traitement. Ces messages ont pour but
d'informer l'utilisateur du déroulement d'un programme, d'une procédure. Ils peuvent
également être utilisés pour établir des comptes-rendus de traitement.
Une classe de messages a pour but de regrouper un certain nombre de messages qui possèdent
un point commun, ou bien qui s'applique à un même domaine.
Il existe une classe des messages spécifiques nommée 'ZMESSAGE' créée spécialement pour
nos besoins. Chaque intervenant sur le projet pourra ajouter des messages en fonction de ses
besoins.
Un message est identifié par un numéro sur 3 chiffres. L'attribution des numéros se fait dans
l'ordre croissant (000, 001, 002, …).
On utilisera la fonction 'Texte Descriptif' qui permet d'afficher, si l'utilisateur le désire, une
note explicative du message ainsi que les corrections à apporter dans les cas des messages
d'erreur.
Types Désignation
S Système
I Information : Les messages d'information s'affichent sous forme de petite fenêtre
E Erreur: les messages d'erreur entraînent l'arrêt d'un traitement, ou la suspension d'un
d'une transaction
W Warning : Les messages de types Warning entraînent l'arrêt momentané d'un
traitement ou d'une transaction (reprise en pressant la touche 'Entrée'
A Abend: Les messages de types 'Abend ' entraînent l'exclusion définitive d'un traitement
ou d'une transaction .La main est perdue.
5.8.4 Utilisation
L'appel à un message s'effectue de la façon suivante :
Dans un message, les caractères '&' sont passés en paramètre de l'instruction .Quatre variables
peuvent être renseignées.
Programmation de
l'affichage du message
d'erreur 063 (Saisir un
code magasin) de la
classe ZMESSAGE
Programmation de
l'affichage du message
système 024 (La quantité
répartie est > à &) de la
classe ZMESSAGE