> Tech > Envoyer des messages BREAK aux seuls utilisateurs actifs

Envoyer des messages BREAK aux seuls utilisateurs actifs

Tech - Par iTPro - Publié le 24 juin 2010
email

Pour faciliter la création et l’usage d’outils sur le i5/OS, IBM a prévu des outils tels que la sortie lisible par programme PDM et HLL à partir de nombreuses commandes. Ainsi, avec la plupart des commandes des familles DSP et WRK, vous pouvez diriger la sortie vers un fichier de

sortie ou vers un fichier d’imprimante. Les données provenant de ces fichiers peuvent ensuite servir d’entrée à des programmes et à d’autres commandes pour créer des outils qui optimisent et simplifient les processus quotidiens.

Pour les commandes dont la sortie peut être dirigée vers un fichier base de données (du genre DSOPBJD), les noms d’enregistrement de fichiers et les champs des fichiers varieront. La meilleure méthode pour déterminer les noms et les attributs de champs, consiste à utiliser la commande DSPFFD ou SQL. Pour accéder à la sortie à partir de commandes limitées à la sortie d’imprimante, il faut effectuer une étape supplémentaire à l’aide de la commande CPYSPLF pour convertir le fichier spoolé en un fichier base de données, lisible ensuite par un programme évolué. Comme le fichier ne comporte qu’un champ, la commande substring extrait l’information nécessaire.

Pour que le fichier puisse être lu en CL, il doit d’abord être déclaré à l’aide de la commande DCLF puis lu par RCVF. Par exemple, supposons que l’opérateur système veuille envoyer un message break à tous les utilisateurs du système, en leur demandant de se déconnecter le plus vite possible, pour laisser place à un processus de maintenance système. La commande SNDBRKMSG enverra des messages break à tous les postes de travail, que quelqu’un soit connecté ou non. Et donc, certains utilisateurs peuvent voir un message « Signoff immediately » subsister du jour précédent, lors de la première connexion. La commande SND MSG enverra des messages à tous les postes de travail actifs mais n’enverra pas de messages break, afin que les utilisateurs qui doivent vraiment recevoir un message ne risquent pas de le lire trop tard. Il faut donc une commande qui n’envoie le message break qu’aux utilisateurs actifs.

Pour créer notre nouvelle commande, il faut d’abord savoir quels postes de travail ont des utilisateurs actifs. La commande WRKC FGSTS affichera les utilisateurs actifs mais, malheureusement, sur les deux seules sorties disponibles : écran ou imprimante. Il faut donc une étape supplémentaire. Dans un programme CL, le fichier de sortie provenant de la commande CPYSPLF est déclaré puis lu à l’aide de la commande RCVF. En utilisant la commande MONMSG pour surveiller la fin de fichier ((MSGID CPF0864) et la commande GOTO, redoutable mais nécessaire, nous pouvons faire une boucle dans le fichier. Les figures 1A et 1B présentent la source complète de la commande SNDACTMSG et du processeur CL. (Ce code source est téléchargeable sur www.itpro.fr Club abonnés).

La figure 2 montre la sortie de WRKCFGSTS. On voit bien que seules les unités à statut actif dont le job est le même que la description de l’unité, ont des utilisateurs actifs éligibles pour recevoir les messages break. Par conséquent, la commande ne doit sélectionner que les enregistrements avec *DEV dans les colonnes 23 à 26, avec ACTIVE dans les colonnes 32 à 38 (à noter que nous glissons un espace à la fin de ACTIVE pour éliminer le statut ACTIVE/WRITER d’une imprimante), et donc le job en colonne 57 à 66 est le même que la description d’unité dans les colonnes 2 à 11. En programmation CL, nous accomplissons cela à l’aide du code de la figure 3 (UTACTKWRK est le nom du fichier créé précédemment comme sortie à partir de la commande CPYSPLF). Le programme CL utilise ensuite la commande SNDBRKMSG pour envoyer le message break aux postes de travail actifs.

Par Terry Silva

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro - Publié le 24 juin 2010