L’instruction PARAMETERS est un mot-clé ABAP que vous utilisez exclusivement dans la partie déclarative de programmes exécutables (REPORT), groupes de fonctions ou module pools. Son but est de définir un seul champ de saisie sur l’écran de sélection standard (Dynpro 1000) du programme.
Via ce champ, l’utilisateur peut saisir exactement une valeur qui est ensuite disponible dans le programme dans une variable globale portant le même nom que le paramètre.
Distinction importante avec SELECT-OPTIONS :
PARAMETERS: Pour la saisie d’une seule valeur (par ex. un numéro de client, une date, un site). Crée une variable.SELECT-OPTIONS: Pour des sélections complexes (par ex. une plage de numéros de clients, plusieurs matériels individuels, exclusion de certaines valeurs). Crée en interne une table (table Ranges).
Syntaxe
PARAMETERS <param_name> { {TYPE <datentyp> [LENGTH <länge>] [DECIMALS <nachkommastellen>]} | {LIKE <datenobjekt>} } [DEFAULT <standardwert>] [OBLIGATORY] [LOWER CASE] [AS CHECKBOX [USER-COMMAND <funktcode>]] [RADIOBUTTON GROUP <gruppenname> [USER-COMMAND <funktcode>]] [MEMORY ID <pid>] [NO-DISPLAY] [VISIBLE LENGTH <sichtbare_länge>] [MODIF ID <modifikationsgruppe>] [VALUE-REQUEST] " Pour aide F4 personnalisée [HELP-REQUEST]. " Pour aide F1 personnalisée " Ajouts plus anciens / rares comme MATCHCODE OBJECT, AS SEARCHPATTERN etc.Composants
<param_name>: Le nom du paramètre. Sous ce nom, une variable globale est créée dans le programme, et (si pasNO-DISPLAY) un champ de saisie est généré sur l’écran de sélection.TYPE <datentyp> ...ouLIKE <datenobjekt>: (Obligatoire) Définit le type de données du paramètre et de la variable associée.TYPE: Préféré ! Peut être un type ABAP intégré (I,D,STRING,C,P…), un élément de données du dictionnaire ABAP (kunnr,matnr,werks_d…) ou un type local. Avec référence aux types du dictionnaire, des contrôles de saisie, aides F1 et F4 sont souvent fournis automatiquement.LIKE: Syntaxe plus ancienne, se réfère à un objet de données déjà déclaré. Devrait être remplacé parTYPE.
DEFAULT <standardwert>: (Optionnel) Spécifie une valeur avec laquelle le champ de saisie est prérempli sur l’écran de sélection.OBLIGATORY: (Optionnel) Rend le champ obligatoire. L’utilisateur doit saisir une valeur avant de pouvoir exécuter le programme.LOWER CASE: (Optionnel) Permet la saisie de minuscules et empêche la conversion automatique en majuscules (comportement standard pour de nombreux types de données).AS CHECKBOX: (Optionnel) Affiche le paramètre comme une case à cocher (Checkbox). La variable<param_name>devrait alors êtreTYPE c LENGTH 1('X'= coché,' '= non coché).RADIOBUTTON GROUP <gruppenname>: (Optionnel) Affiche le paramètre comme un bouton radio. Tous les paramètres avec le même<gruppenname>forment un groupe dont seule une option peut être sélectionnée. Nécessite au moins deux boutons radio par groupe.<param_name>souventTYPE c LENGTH 1.MEMORY ID <pid>: (Optionnel) Associe le paramètre à un ID mémoire SAP. Le champ est prérempli avec la valeur de la mémoire SAP (GET PARAMETER), si disponible.NO-DISPLAY: (Optionnel) La variable<param_name>est déclarée, mais aucun champ de saisie n’est affiché sur l’écran de sélection. Utile pour les paramètres “cachés” qui sont par ex. transmis via des variantes ouSUBMIT ... WITH ....VISIBLE LENGTH <sichtbare_länge>: (Optionnel) Contrôle la largeur visible du champ de saisie à l’écran (peut être plus courte que la longueur réelle du champ).MODIF ID <modifikationsgruppe>: (Optionnel) Assigne au paramètre un groupe de modification. Cela permet la manipulation dynamique du champ (par ex. masquer, désactiver) dans l’événementAT SELECTION-SCREEN OUTPUT.
Fonctionnement
- Le programme lit les déclarations au démarrage.
- Pour chaque commande
PARAMETERS, une variable globale est créée. - Le système génère automatiquement l’écran de sélection standard (Dynpro 1000) avec les champs de saisie correspondants (sauf avec
NO-DISPLAY). - L’utilisateur saisit des valeurs dans les champs et exécute le programme (F8).
- Après le traitement de l’écran de sélection, les valeurs saisies (ou par défaut) sont disponibles dans les variables globales (
<param_name>) et peuvent être utilisées dans la suite du programme (par ex. à partir deSTART-OF-SELECTION).
Exemples
REPORT z_parameter_demo.
" --- Partie déclarative ---TABLES: spfli. " Pour référence au dictionnaire
" Paramètre simple avec typage via dictionnairePARAMETERS p_carrid TYPE spfli-carrid.
" Paramètre date obligatoire avec valeur par défaut (aujourd'hui)PARAMETERS p_date TYPE d OBLIGATORY DEFAULT sy-datum.
" Checkbox pour mode testPARAMETERS p_test AS CHECKBOX.
" Boutons radio pour mode de sortiePARAMETERS: p_list RADIOBUTTON GROUP mode DEFAULT 'X' USER-COMMAND radio, p_grid RADIOBUTTON GROUP mode.
" Paramètre non affichéPARAMETERS p_intern TYPE i NO-DISPLAY.
" Paramètre autorisant les minusculesPARAMETERS p_text TYPE c LENGTH 40 LOWER CASE.
" --- Logique de traitement ---START-OF-SELECTION.
WRITE: / 'Compagnie aérienne:', p_carrid. WRITE: / 'Date:', p_date.
IF p_test = 'X'. WRITE: / 'Mode test actif.'. ELSE. WRITE: / 'Mode production.'. ENDIF.
IF p_list = 'X'. WRITE: / 'Sortie en liste sélectionnée.'. ELSE. WRITE: / 'Sortie en grille sélectionnée.'. ENDIF.
WRITE: / 'Texte saisi:', p_text.
" p_intern pourrait être utilisé ici s'il était par ex. rempli via SUBMIT.Remarques importantes / Bonnes pratiques
PARAMETERSappartient toujours à la partie déclarative d’un programme.- Utilisez l’ajout
TYPEavec référence aux éléments de données ou champs de table du dictionnaire ABAP (SE11). Vous obtenez ainsi automatiquement le type de données correct, la longueur, l’aide F1, l’aide de recherche F4 et éventuellement des contrôles de saisie. - Utilisez
PARAMETERSpour des saisies simples où l’utilisateur doit spécifier une seule valeur. Pour des sélections plus complexes (plages, valeurs multiples, exclusions),SELECT-OPTIONSest prévu. - Rendez les champs obligatoires avec
OBLIGATORYlorsqu’une saisie est indispensable pour la logique du programme. - Utilisez
AS CHECKBOXetRADIOBUTTON GROUPpour des décisions simples Oui/Non ou des choix exclusifs.