C O M M A N D E S ----------------- D E F I N I T I O N ------------------- * Une commande est un ordre que l'on envoie au système pour réaliser une fonction, soit en interactif, soit au cours d'un traitement par lot |
D E S C R I P T I O N D E S C O M M A N D E S ----------------------------------------------------- * Chaque commande comprend : - Son nom. (10 caractères) - Des mots-clés. (maximum 75) - Des valeurs (paramètres) en réponse à chaque mot-clé. * La définition d'une commande comprend principalement 2 parties : - La définition elle-même qui spécifie son nom, les paramètres nécessaires et les contrôles à réaliser sur ces paramètres - Le programme de traitement associé à la commande qui réalise la fonction. . Ce programme peut être en COBOL, RPG, CLP, etc... . Ce programme est appelé C.P.P. (Command Processing Program) |
C O M M E N T C R E E R U N E C O M M A N D E ? --------------------------------------------------------------- * Utiliser les « ordres » de définition de commande pour : - Définir les mots-clés et la valeur des paramètres qui seront acceptées. - Définir le guide opérateur. |
L ' O R D R E C M D ----------------------- CMD PROMPT ( *NONE ) Identifieur de message 'Constante' * Cet ordre est obligatoire. * Seuls les 30 premiers caractères de la constante ou du texte associé à l'identifiant du message seront utilisés. |
L ' O R D R E P A R M ------------------------- * Un ordre PARM définit un paramètre. * Il y a autant de PARM que de paramètres dans la commande. * L'ordre d'écriture des PARM détermine l'ordre du passage des paramètres au C.P.P. |
L ' O R D R E P A R M ( S Y N T A X E ) ----------------------------------------------- PARM mot-clé-1(______) mot-clé-2(______) etc.... KWD ( nom du mot-clé ) TYPE ( *DEC ) Numérique *LGL valeur booléenne *CHAR alphanumérique *NAME alphanumérique avec contrôle équivalent à CHECK(VN ) *GENERIC nom générique *CMD le contenu du paramètre doit être une cde valide *DATE date reçue sous la forme SAAMMJJ *TIME heure sous la forme hhmmss ou 'hh:mm:ss' *HEX valeur hexadécimale *ZEROELEM ** *INT2 binaire (2 octets) *INT4 " (4 " ) *NULL ** *VARNAME ** *X ** ** pour les commandes IBM Etiquette nom d'un paragraphe (label) |
LEN ( taille du paramètre ) |
CONSTANT ( 'constante' ) La constante est transmise au C.P.P et la demande du paramètre n'apparaît pas sur l'invite. RSTD ( *NO ) *YES --> Les seules valeurs possibles sont celles indiquées dans VALUES SPCVAL ou SNGVAL. DFT ( valeur-par-défaut ) Cette valeur sera déjà inscrite pour ce paramètre dans le guide opérateur. Implique MIN(0) VALUES ( liste-de-valeurs ) Maximum 300. OU REL ( contrôle ) Relation par rapport à une constante ou à la valeur d'un autre paramètre. contrôle = *EQ 'constante' *NE ou *GT, .... keyword (nom d'un autre paramètre) OU RANGE ( limite-inférieure limite-supérieure ) |
SPCVAL ( valeur-spéciale valeur-transmise ) Maximum 300. SNGVAL ( valeur-spéciale valeur-transmise ) |
FULL ( *NO ) *YES --> Équivaut à la fonction CHECK(MF) FILE ( *NO ) --> Indique que la valeur pour KWD n'est pas un nom de fichier |
EXPR ( *NO ) *YES --> La valeur pourra être une expression (*CAT et %SST) VARY ( *NO ) *YES --> La valeur transmise sera précédée de sa longueur en binaire PASSATR ( *NO ) *YES --> Permet de connaître le type de données saisies.(IBM) PASSVAL ( *DFT ) --> Un pointeur d'adresse est transmis au C.P.P. DSPINPUT( *YES ) --> Affichage normal *NO --> Zone de saisie sans affichage (type DSPATR(ND)) (saisie de mots de passe) CHOICE ('texte' ) --> définit l'extrait des valeurs admises affiché à droite de la zone de saisie. *VALUES --> le système construit un texte à partir des valeurs admises et du type. |
PMTCTL *NONE Ce paramètre est affiché systématiquement. *PMTRQS ce paramètre n'est affiché que sur demande (F10). label ce paramètre n'est affiché que suivant le contrôle défini par un ordre PMTCTL précédé de 'label:' PMTCTLPGM un paramètre n'est affiché que suivant la valeur renvoyée par le pgm indiqué (voir le cours CMDPGM) KEYPARM permet de définir les paramètres clés (à afficher en premier) et les paramètres non-clé (à afficher dans un second temps pré-renseignés) quand un POP (Prompt Override Program) est associé à cette commande. (voir le cours CMDPOP) PROMPT ( *NONE N° d'ordre d'affichage ) 'constante' ----! identifeur de message ----! !--> Texte associé au paramètre sur le guide opérateur. |
Q U A L I F I C A T I O N S ----------------------------- * Permet d'associer deux valeurs à un seul paramètre (bibliothèque/objet) PARM KWD(FICHIER) TYPE(Q1) MIN(1) + PROMPT('Nom de fichier') Q1: QUAL TYPE(*NAME) MIN(1) + QUAL TYPE(*NAME) DFT(*LIBL) SPCVAL((*LIBL)) MIN(0) PROMPT('Bibliothèque') L'ordre QUAL est PEU différent de l'ordre PARM (il ne contient pas KEYWORD) Il ne faut pas indiquer de PROMPT sur le premier QUAL (défini par le PARM) Le CPP reçoit UN paramètre de 20 de long, contenant: de 1 à 10 le nom de l'objet 11 à 20 le nom de la bibliothèque ou *LIBL. |
L I S T E S D E P A R A M E T R E S ---------------------------------------- * 2 Types : - Liste simple. (mot-clé MAX dans l'ordre PARM.) - Liste mixte. C'est une liste composée d'éléments de définitions hétérogènes. Utilisation de l'ordre ELEM. * Une liste est considérée comme un seul paramètre précédé par 2 octets donnant sous une forme binaire le nombre d'éléments saisis dans la liste. (penser à %BIN en CL) * Les listes mixtes : L'ordre ELEM - Permet de définir chacun des éléments hétérogènes d'un paramètre. - Un élément de la liste est une valeur dans un groupe de valeurs. - Un ordre ELEM sera utilisé pour chaque élément de la liste. Les mots-clés de l'ordre ELEM sont proches de ceux de l'ordre PARM |
L E S L I S T E S S I M P L E S --------------------------------------- Exemple : PARM KWD(LISTE) TYPE(*NAME) MAX(3) PROMPT('MAXIMUM 3') Sur le guide opérateur : MAXIMUM 3 . . . LISTE __________ + si autres valeurs __________ * Informations reçues par le C.P.P. : - Une chaîne de caractères dans une seule zone. - Les 2 premiers octets (binaire) indiqueront le nombre d'éléments. * Selon l'exemple : !______!_______________!_______________!_______________! ^ ^ ^ 2 octets binaires ** !********************** **********************! * 3 x 10 = 30 octets 32 Octets peuvent donc être transmis au C.P.P |
L E S L I S T E S M I X T E S ------------------------------------- EXEMPLE: PARM KWD(LISTE) TYPE(E1) PROMT('LISTE D''ELEM') E1: ELEM TYPE(*NAME) PROMPT('ELEMENT 1') ELEM TYPE(*CHAR) LEN(2) PROMPT('ELEMENT 2') ELEM TYPE(*CHAR) LEN(8) DFT(*NONE) PROMPT('ELEMENT 3') Sur le guide opérateur : LISTE D'ELEM ELEMENT 1 . . . . . . . . . . __________ ELEMENT 2 . . . . . . . . . . __ ELEMENT 3 . . . . . . . . . . *NONE___ * Informations reçues par le C.P.P. : - Une chaîne de caractères dans une seule zone. - Les 2 premiers octets (binaire) indiqueront le nombre d'éléments. * Selon l'exemple : !______!_______________!__!*NONE________! ^ ^ 10 2 8 ^ 2 octets binaires ** !*******************************! 22 Octets peuvent donc être transmis au C.P.P |
L E S L I S T E S C O M P L E X E S -------------------------------------------- EXEMPLE: PARM KWD(LISTE) TYPE(E1) MAX(3) PROMPT('MAXIMUM 3') E1: ELEM TYPE(*NAME) PROMPT('ELEMENT 1') ELEM TYPE(*CHAR) LEN(2) PROMPT('ELEMENT 2') ELEM TYPE(*CHAR) LEN(8) DFT(*NONE) PROMPT('ELEMENT 3') Sur le guide opérateur : MAXIMUM 3 ELEMENT 1 . . . . . . . . . . __________ ELEMENT 2 . . . . . . . . . . __ ELEMENT 3 . . . . . . . . . . *NONE___ + si autres valeurs --> _ * Informations reçues par le C.P.P. : - Une chaîne de caractères dans une seule zone. - Les 2 premiers octets (binaire) indiqueront le nombre de listes ils sont suivis de (liste) fois 2 octets binaires indiquant le déplacement pour atteindre une liste .(ici 3 fois) |
* Selon l'exemple : !______!_dep liste1__!_dep liste2_!_dep liste 3_! ^ ^ ^ 2 octets binaires ** !**************************************! (nombre de listes) * 3 x 2 = 6 octets SUIVIS de liste 3 : = 22 octets (comme sur une liste simple) de liste 2 : = 22 octets de liste 1 : = 22 octets ---- 66 + 6 + 2 74 Octets peuvent donc être transmis au C.P.P Il faut absolument utiliser les informations en binaire (%BIN en CL) le contenu des listes n'étant pas fiables et leur longueur variable. |