Thierry Seunevel Thierry 
Seunevel 
 Code en stock       
  Accueil   Réalisations Code en stock Téléchargement Curriculum Contact
Accueil > Code en stock > RunMnyCmd

Exécution d'une commande sur une série d'objets (4)

. Exemple
. Fichier liste
. Gérer liste
. RunMnyCmd
. Code de l'outil
La commande RunMnyCmd
Cette commande, raison d'être de l'outil, permet d'exécuter une même commande sur tous les objets d'une liste, ou sur un sous-ensemble d'objets du même type, ou du même type et de même attribut.

Les paramètres de la commande sont les suivants :
Paramètre Type Texte Commentaire
CMD *CMDSTR 500 Commande à exécuter Texte de la commande, en utilisant des valeurs conventionnelles prédéfinies pour les paramètres.
L'invite (F4) peut être utilisée dans la saisie de la commande pour bénéficier du choix des paramètres spécifiques à la commande.
La façon de spécifier les paramètres de la commande à exécuter est détaillée plus loin.
FILE *CHAR 10 Nom liste Nom du fichier liste d'objets à utiliser
BIBLIO *NAME Nom bibliothèque Bibliothèque contenant le fichier liste d'objets.
Les valeurs spéciales *LIBL (valeur par défaut) et *CURLIB sont autorisées pour ce paramètre.
MBR *NAME 10 Membre Permet de préciser le membre à utiliser si le fichier liste d'objets comporte plusieurs membres, et que l'on ne veut pas utiliser le premier membre défini (valeur *FIRST utilisée par défaut pour ce paramètre).
TYPX *CHAR 8 Type d'objets Permet de ne sélectionner dans la liste que les objets du type indiqué.
Certaines commandes ne sont applicables qu'à des objets d'un type particulier.
L'abrégé du type figure dans le nom de la commande, et le paramètre TYPE n'est pas demandé.
Pour exécuter une telle commande sur un fichier d'objets, l'utilisation du paramètre TYPX permet de n'exécuter la commande que sur les objets correspondants.
ATTRX *CHAR 10 Attribut Paramètre à utiliser en complément du paramètre précédent (TYPX).
Permet de ne sélectionner dans la liste que les objets correspondant à l'attribut sélectionné.
Définition de la commande à exécuter
La commande spécifiée dans ce paramètre va être exécutée en boucle sur chacun des objets de la liste indiquée, ou sur chacun des objets du type (ou du type et de l'attribut) demandé.

Les noms d'objet, bibliothéque et le type sont donc variables d'un objet de la liste à l'autre.
Les paramètres à fournir vont être substitués pour l'exécution sur chaque objet sélectionné dans la liste.

les valeurs à placer dans la commande sont donc conventionnelles. Pour être substituées, les valeurs doivent impérativement être indiquées comme suit :
OBJET pour le nom de l'objet
BIBLIO pour le nom de bibliothèque (si on veut substituer le nom de la bibliothèque associée à chaque objet)
*PGM pour le type, et ce quelque soit le type effectif utilisé (le paramètre TYPE des commandes IBM est toujours contrôlé, et doit correspondre à un type valide).
Toute valeur autre est placé en l'état dans chacune des commandes exécutées.
Exemples d'utilisation
La commande suivante change le propriétaire de tous les objets contenus dans le premier membre de la liste d'objets MESOBJ contenu dans la bibliothèque MNYCMDLIB.
RUNMNYCMD CMD(CHGOBJOWN OBJ(BIBLIO/OBJET) OBJTYPE(*PGM) NEWOWN(QPGMR))
  FILE(MESOBJ)
  BIBLIO(MNYCMDLIB)
  MBR(*FIRST)
Les paramètres mis en évidence vont, à l'exécution, être remplacés par les valeurs correspondantes pour chaque objet de la liste.
Ainsi, tous les objets de la liste, qu'ils soient ou non de type *PGM seront traités.

Dans l'exemple suivant, on veut que tous les objets de type *FILE, attribut PRTF, contenus dans la liste aient leur paramètre 'retenir l'impression' mis à la valeur *YES.
RUNMNYCMD CMD(CHGPRTF FILE(BIBLIO/OBJET) HOLD(*YES))
  FILE(MESOBJ)
  BIBLIO(MNYCMDLIB)
  MBR(*FIRST)
  TYPX(*FILE)
  ATTRX(PRTF)
Ici la commande CHGPRTF s'applique uniquement à des objets de type fichier, attribut PRTF. Ces paramètres ne sont donc pas prévus dans la commande.
Par contre, si la liste contient des objets d'autres types, il est inutile d'exécuter la commande sur ces objets.
Cela se traduirait par un echec dont on trouverait la trace dans la log d'exécution.
En spécifiant des valeurs pour les paramètres TYPX et ATTRX dans la commande, on évite que la commande à exécuter soit appelée pour les objets qui ne sont pas concernés.

    Haut de page  Haut de page  Précédent  Gérer liste | Code de l'outil  Suivant


©  Thierry Seunevel (2004) www.seusoft.com