Le progiciel SAP met à disposition un ensemble d'outils de développement qui permet de répondre aux principales attentes des utilisateurs. Pour chacun de ces outils, il existe des règles de nommages et d'utilisations primordiales à respecter.
En appliquant ces quelques règles vous garantirez :
Il n'est pas obligatoire d'appliquer exactement ces normes. Par défault, vous devrez toujours suivre celles de votre client.
2.1 Programmes
2.1.1 Exécutables
2.1.1.1 Spécifiques
La codification des programmes exécutables se fait sur 8 caractères :
ZMMTTnn
Lettre | Définition | Valeur | Commentaire |
Z | Spécifique | Y | pour les programmes copiés du standard SAP |
Z | pour tous les autres programmes (imposé par SAP) | ||
M | Module | AM | Immobilisations |
CO | Contôle de gestion | ||
FI | Comptabilité générale | ||
MM | Achats | ||
PP | Production | ||
SD | Ventes | ||
WM | Warehouse Management | ||
XX | Commun à plusieurs modules | ||
T | Type | BI | Batch-input |
RE | Editions classiques (reporting) | ||
SS | Programmes utilisant SAPscript | ||
TR | Editions intéractives (transactionnel) | ||
ID | IDOCs | ||
nnn | Séquentiel | Numéro séquentiel incrémenté de 10 en 10. Les includes d'un programme sont nommés comme ce dernier, la plage de numéros étant incrémentée de1 en 1. |
Les différentes caractéristiques de la codification sont celles décrites ci-dessus. Il est possible d'en définir d'autres en début de projet.
2.1.1.2 Copie de programmes standards
Les programmes copiés de programmes standards sont codifiés comme suit :
YXXXXXXX
Y : Constante et 7 lettres suivant la première
Exemple : BALVBT01 sera copié YALVBT01.
2.1.1.3 Tests
Pour les programmes d'aide au développement (programmes non transportés), on utlise la codification :
ZZXXYYYY
ZZ : est fixe, XX : initiales du développeur et YYYY : utilisation libre
Exemple : BALVBT01 sera copié YALVBT01.
2.1.2 Module-pool
La codification des programmes Module-pool (type M) se fait sur 8 caractères :
Un Module-pool est composé d'includes qui correspondent à des fonctions déterminées :
2.2 Eléments du texte
L'ensemble des éléments de texte doit être géré dans toutes les langues qui seront utilisées.
2.2.1 Titres et intitulés
Le titre du programme est celui qu'on retrouve dans la barre de titre lors de l'exécution et qui est aussi renseigné dans les attributs. Il doit est précis.
Le titre de la liste apparait en entête de page de l'édition si on utilise l'entête standard.
Les intitulés de colonne apparaissent après le titre de liste, en surbrillance si l'on utilise l'netête standard.
2.2.2 Textes de sélection
Il est impératif de mettre un texte significatif pour les paramètres, utiliser un texte au singulier pour les paramètres et au pluriel pour les options de sélection :
2.2.3 Symboles de texte
Les symboles de texte sont les codes de textes utilisés dans le programme. S'ils sont nombreux, ils doivent être codifiés par des numéros séquentiels, sinon ils peuvent être codifiés sur 3 caractères.
Aucun texte ne doit être géré en dur.
3.1 Variables
Les variables ont un nom constitué d'un préfixe d'un caractère, suivi d'un underscore "_" et d'un suffixe de 5 caractères :
P_SSSSS
P | Paramètres (instuctions PARAMETERS) |
S | Options de sélection (instruction SELECT-OPTIONS) |
W | Variables de travail simples |
C | Variables de cumul |
R | Intervalles (instruction RANGES) |
L | Variables locales |
G | Grope de données (structures) |
T | Tables internes |
Le suffixe des zones faisant référence à des zones standard SAP doivent porter un suffixe identique au nom de la zone SAP. Elles doivent être décrite avec l'instruction LIKE pour les variables de travail ou FOR pour les options de sélection. (ex : w_sernr LIKE equi-sernr)
Les groupes de champs (instructions FIELD-GROUPS) doivent être codés sur 6 caractères. (ex : HEADER, DETAIL...)
3.2 Structure d'un programme
Un programme a la structure suivante :
Séq. | Instruction | Commentaire |
1 | REPORT | suivi du nom de report de la classe de messages |
2 | TABLES | indiquer les noms de tables dans l'ordre (base de données SAP, tables SAP, tables spécifiques) |
3 | DATA | déclaration des données globales (DAT, RANGES) |
4 | PARAMETERS SELECT-OPTION | paramètres et options de sélection |
5 | FIELD-GROUP | Groupes de champs suivis de la définition de ces groupes (instruction INSERT) |
6 | INITIALIZATION | Evênement avant l'affichage des paramètres |
7 | AT SLECTION-SCREEN | Evênement après saisie des paramètres |
8 | START-OF-SELECTION | Début d'extraction |
9 | GET | Lecture d'un segment d'une base de données logique |
10 | GET LATE | Relecture d'un segment d'une base de données logique après lecture de tous ses arguments dépendants |
11 | END-OF-SELECTION | Fin d'extraction |
12 | TOP-OF-PAGE | Evênement survenant avant l'écriture de la première ligne d'une page |
13 | END-OF-PAGE | Evênement survenant après avoir écrit la dernière ligne d'une page |
14 | FORM | Sous-procédures |
Les includes doivent être déclarés au début du programme, après l'instruction REPORT:
INCLUDE
3.3 Commentaires
Tout programme doit avoir des commentaires en entête de programme et dans son corps.
Ces commentaires permettent aux développeurs de savoir à quoi sert le programme et de quelle façon celui-ci a été pensé.
3.3 Quelques conseils
4.1 Tables de paramètrage
Le tables de paramètrage sont codifiées ainsi :
T9Fnn
4.2 Tables de données
Les tables de données sont codifiées ainsi :
ZMFnn
4.3 Structures
Les tables de type structure sont codifiées ainsi :
ZMFnnS
Les zones sont des éléments des tables. Si une zone fait référence à une zone déjà décrite dans le dictionnaire de données, il faut lui donner le même nom, sinon il faut la codifier ainsi :
Zxxxxx
Les éléments de données sont la description de zones. Il faut, dans la mesure du possible, utiliser les éléments de données déjà existant dans le dictionnaire SAP. Si l'on doit en créer de nouveaux, elle doivent avoir la même codification que les zones que les zones donr elles sont référence (Zxxxxx).
La longueur du libellé (courts, moyen et long) et de l"intitulé dépend de la longueur de la longuer de la zone et doivent être précis.
Les domaines sont la définition technique d'un élément de données. Ils donnent le type et la longueur d'une zone, ainsi que la tble de contrôle des valeurs ou les valeurs constantes autorisées. il faut utliser les domaines déjà existant. Toutefois si vous devez en créer de nouveaux, il faut qu'ils aient la même codification que les éléments de données qu'ils décrivent (Zxxxxx).
Les objets de Matchcode sont codifiés sur 4 caractères :
Zxxx
Les identifiants de Matchcode sont codifiés sur 1 caractère numérique (de 0 à 9) car les valeurs alphabétiques sont réservées au standard SAP.
Les fichiers externes sont les supports de données non décrits comme table dasn le dictionnaires SAP (fichier UNIX, DOS...). Il s'agit de fichiers souvent utilisés par plusieurs programmes ou à intervalles réguliers, on utilise des noms de fichiers logiques (transaction FILE).
Sinon, il ets préférable de les spécifier par 2 paramètres distincts :
Il n'est pas possible de proposer de codification normalisées pour les noms de fichier. Cepensdant on peut retenir quelques principes :
Il est important d'implanter la description d'un fichier en un seul endroit :
Tout nouvel objet (programme, table...) doit être associée à une classe de développement, codifiée ainsi :
ZMMn
Les transactions codifiés sur 4 caractères :
ZMMn
Les menus codifiés sur 4 caractères :
ZMMn
Les groupes de fonctions servent à regrouper les modules de fonctions, ils sont codifiés sur 4 caractères :
ZMMn
Les modules fonctions permettent d'effectuer des fonctions qui peuvent être utilisées par plusieurs programmes, ils sont codifiés sur 30 caractères :
Z_XXX...
Les formulaires sont des objets utilisés par SAPSCRIPT, ils sont codifiés sur 16 caractères :
Z_MF_XXX...
Les jobs codifiés sur 32 caractères :
Z_MMP_XXX...
Astuce pour déboguer un package ...
Vider le cache BPC avec UJA_REFRESH_DIM_CACHE ...