5548 Readings
ABAP
SAP for 10 years
Posted by Yann MORINEAU
5 years ago
Modified 5 years ago


Ce tutoriel n'est pas sous license.

Les normes de développement

1 Introduction

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 :

  • une homogénéité des développements,
  • un code simplifié et donc plus clair,
  • un logiciel plus facile à maintenir.

Il n'est pas obligatoire d'appliquer exactement ces normes. Par défault, vous devrez toujours suivre celles de votre client.

 

2 Codifications

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

Caractéristiques de codification
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 :

  • SAPMxxxx
  • SAPM : constante imposée par SAP et xxxx : nom de la transaction associée au programme

Un Module-pool est composé d'includes qui correspondent à des fonctions déterminées :

  • MxxxxTOP : Include des déclarations,
  • MxxxxOnn : Include des procédures du module PBO (Process Before Inpout),
  • MxxxxInn : Include des procédures du module PAI (Process After Input),
  • MxxxxFnn : Include du texte source du module fonction.
  • TOP, O, I et F : constantes imposées oar SAP,
  • xxxx : nom de la transaction,
  • nn : numéro séquentiel.

 

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 :

  • P_SERNR : Numéro de série de référence,
  • S_SERNR : Autres numéros de série.

 

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 Programmation

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

les valeurs possibles de P
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

  1. Aérez le programme avec des ligens blanches,
  2. Indentez les programme pour une meilleur lecture,
  3. Utlisez les variables systèle (table SYST) plutôt que de redéfinir des variables propres. (ex : sy-tabix, sy-index, sy-tfill...),
  4. Utilisez des tables internes pour améliorer la performance de votre programme notamment grâce à une bonne utilisation de la mémoire  et en limitant les accès à la base. 

 

4 Les tables

4.1 Tables de paramètrage

Le tables de paramètrage sont codifiées ainsi :

T9Fnn

  • T9 : constante imposée par SAP,
  • : fonction liée à l"entreprise,
  • nn : numéro séquentiel.

 

4.2 Tables de données

Les tables de données sont codifiées ainsi :

ZMFnn

  • Z : constante imposée par SAP,
  • M : module SAP,
  • F : fonction liée à l'entreprise,
  • nn : numéro séquentiel.

 

4.3 Structures

Les tables de type structure sont codifiées ainsi :

ZMFnnS

  • Z : constante imposée par SAP,
  • M : module SAP,
  • F : fonction liée à l'entreprise,
  • nn : numéro séquentiel,
  • S : Constante d'identification de la strucutre.

 

5 Les zones

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

  • Z: constante,
  • xxxxx : libellé de la zone.

 

6 Les éléments de données

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.

  • l'intitulé doit avoir un maximum de 2 caractères de plus que la zone,
  • le libellé court doit avoir  au plus 10 caractères. 

 

7 Les domaines

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).

 

8 Les objets de Matchcode

Les objets de Matchcode sont codifiés sur 4 caractères :

Zxxx

  • Z: constante,
  • xxx : caractères du Matchcode.

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.

 

9 Les fichiers externes

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 :

  • Chemin ou répertoire,
  • Nom de fichier.

Il n'est pas possible de proposer de codification normalisées pour les noms de fichier. Cepensdant on peut retenir quelques principes :

  • le nom doit être significatif du système où il est créé,
  • le nmo doit informer sur le contenu du fichier,
  • il doit être possible de distinguer les fichiers en lecture (suffixe O) de ceux en écriture (suffixe I).

Il est important d'implanter la description d'un fichier en un seul endroit :

  • soit dans le dictionnaire de données sous forme de structure,
  • soit dans un programme de type include de données.

 

10 Les classes de développement

Tout nouvel objet (programme, table...) doit être associée à une classe de développement, codifiée ainsi :

ZMMn

  • Z: constante,
  • M : module,
  • : numéro séquentiel.

 

11 Les transactions

Les transactions codifiés sur 4 caractères :

ZMMn

  • Z : constante,
  • M : module,
  • : numéro séquentiel.

 

12 Les menus

Les menus codifiés sur 4 caractères :

ZMMn

  • Z : constante,
  • M : module,
  • : numéro séquentiel.

 

 

Les groupes de fonctions servent à regrouper les modules de fonctions, ils sont codifiés sur 4 caractères :

ZMMn

  • Z : constante,
  • M : module,
  • : numéro séquentiel.

 

14 Les modules de fonctions

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...

  • Z : constante,
  • X : libellé de la fonction.

 

15 Les formulaires

Les formulaires sont des objets utilisés par SAPSCRIPT, ils sont codifiés sur 16 caractères :

Z_MF_XXX...

  • Z : constante,
  • M : module,
  • F : fonction,
  • : libellé du formulaire.

 

16 Les jobs

Les jobs codifiés sur 32 caractères :

Z_MMP_XXX...

  • Z : constante,
  • M : module,
  • P : périodicités (par exemple J pour journalier),
  • : libellé du job.

Pub

Sign in or Sign up to ask questions.

Latest tutorials from the same author

imgBPC

Déboguer un package

Astuce pour déboguer un package ...

Posted 4 years ago
Modified 4 years ago
4680
imgBPC

BPC BI and Source system

BPC Overview ...

Posted 4 years ago
Modified 4 years ago
5144
imgBPC

Vider le cache BPC

Vider le cache BPC avec UJA_REFRESH_DIM_CACHE ...

Posted 4 years ago
Modified 4 years ago
3980
imgBPC

BPC, BI et Système source

Vue d'ensemble de BPC ...

Posted 4 years ago
Modified 4 years ago
4234