> Tech > Utiliser QCMDCHK pour solliciter une commande mais la soumettre au BATCH

Utiliser QCMDCHK pour solliciter une commande mais la soumettre au BATCH

Tech - Par Dan Riehl - Publié le 24 juin 2010
email

L’API QCMDCHK est un programme qui vérifie la syntaxe et les paramètres d’une commande CL. L’API s’assure que tous les paramètres voulus sont fournis et que tous ont des valeurs autorisées. Quand la commande est soumise à l’API QCMDCHK, elle est simplement vérifiée, pas exécutée. Si QCMDCHK rencontre une erreur, elle envoie un message à […]

L’API QCMDCHK est un programme qui vérifie la syntaxe et les paramètres d’une commande CL. L’API s’assure que tous les paramètres voulus sont fournis et que tous ont des valeurs autorisées. Quand la commande est soumise à l’API QCMDCHK, elle est simplement vérifiée, pas exécutée. Si QCMDCHK rencontre une erreur, elle envoie un message à la file d’attente de messages du programme appelant. Si QCMDCHK ne produit pas de message d’erreur, c’est que la syntaxe de commande est bonne.

Cette API particulière est rarement utilisée dans de banales applications de gestion. On la trouve plutôt dans des utilitaires relevant du système et du programmeur. Mais l’API QCMDCHK donne toute sa mesure quand votre programme CL sollicite l’utilisateur avec une commande. QCMDCHK accepte les changements de paramètres de commande sur l’affichage de l’invite, puis stocke la commande complétée dans une variable chaîne de caractères pour exécution.

Dans votre programme CL, vous devez appeler QCMDCHK en respectant le format suivant (taper sur une seule ligne) :

CALL QCMDCHK PARM (CL-Command Command-Length)

CL-Command est soit une variable caractère contenant la commande CL à exécuter, soit une littérale chaîne de caractères. Command-Length est une variable décimale contenant la longueur de la commande à vérifier ou une littérale numérique indiquant la longueur de cette commande. Si vous utilisez une variable pour Command-Length, vous devez lui octroyer une longueur de 15 chiffres, dont cinq à droite du point décimal. Le fait de placer un point d’interrogation (?) devant une commande sur une ligne de commande est comme si vous aviez entré la commande et actionné F4=Prompt. Le point d’interrogation est le caractère d’invite grâce auquel vous demandez au programme CL de solliciter l’utilisateur.

Le programme CL de la figure 1 montre comment utiliser le caractère ? et QCMDCHK pour inviter un utilisateur à fournir les paramètres SAVLIB. Pour obtenir cette invite, placez un ? comme premier caractère de la commande. Une fois que l’utilisateur a répondu à l’invite en entrant le nom de l’unité, les bibliothèques à sauvegarder et autres détails, le programme reprend la main. À ce stade, la variable &command contient la chaîne de commandes SAVLIB complétée, telle que l’utilisateur l’a entrée.

Le programme envoie ensuite la chaîne de commandes complétée à une file d’attente de jobs batch en utilisant la commande SMBJOB. En prime, le programme renverra ensuite le message Job Submitted à l’utilisateur de la station d’affichage.

En plus de superviser le message CPF6801 (F3 ou F12 actionnée à l’invite affichée), vous devez aussi vérifier le message CPF0006 et CPF0005. QCMDCHK renvoie le message CPF 006 si la commande entrée contient une erreur. Le message CPF005 est généré si la chaîne de commandes complétée (dans ce cas, la commande SAVLIB complétée) est trop longue pour tenir dans la variable &command. Si l’une de ces deux erreurs est générée, le moniteur de messages placé au début du programme (MONMSG CPF000) interceptera l’erreur et passera la main à la routine ERROR.

Téléchargez cette ressource

*** SMART DSI *** VERSION NUMÉRIQUE

*** SMART DSI *** VERSION NUMÉRIQUE

Découvrez SMART DSI, la nouvelle revue du Décideur IT en version numérique. Analyses et dossiers experts pour les acteurs de la transformation numérique de l'entreprise, Gagnez en compétences et expertise IT Professionnelle avec le contenu éditorial premium de SMART DSI.

Tech - Par Dan Riehl - Publié le 24 juin 2010