> Tech > Extraire l’état d’un Job

Extraire l’état d’un Job

Tech - Par Victor Pisman - Publié le 24 juin 2010
email

"The AS/400 Programmer's Handbook" (Volume 2), chapitre 4, Application Programming Interfaces, montre un exemple d’un programme RPG ILE qui emploie l’API Retrieving Job Status.
J’utilise cette technique pour connaître l’état d’un job simultané chargé de traiter des commandes.

Notre procédure prévoit d’arrêter ce job deux fois par jour. Pendant ce temps, les commandes ne peuvent pas être traitées, au grand dam des utilisateurs qui ne savent pas si le système est en panne ou si la commande est en suspens.

Extraire l’état d’un Job

Pour pallier cet inconvénient,
j’ai ajouté une touche de
commande sur l’écran d’interrogation
des ventes, permettant aux utilisateurs
de connaître l’état d’un job simultané.

Pour appeler le programme API
QWCRJBST, il faut transmettre trois
paramètres : job name (nom du job),
user name (nom de l’utilisateur), et
job number (numéro du job). Notre
job simultané (job name =’SO100′)
est maintenu par un opérateur (user
name =’DANM’), donc nous connaissons
les deux premiers paramètres
d’entrée. Pour obtenir le troisième,
job number, j’ai écrit le programme CL
CHKCONC1 (figure 1), que le programme
de l’écran d’interrogation appelle.
Ce simple programme CL extrait
le numéro de job courant, appelle le
programme RPG ILE CHKCONC2
dans la figure 2 (qui est une version modifiée de API003R provenant de
The AS/400 Programmer’s Handbook),
puis transmet cette valeur dans
&JOBN. Le quatrième paramètre,
&PARM, est nécessaire en tant que flag.
Quand l’état du job sera *ACTIVE, le
programme mettra RtnFlg à  ‘Y’ (pour
Oui) et renverra cette valeur pour
&PARM dans le programme CL CHKCONC1
et pour un paramètre dans le
programme de l’écran d’interrogation.
Un message correspondant apparaîtra
d’après cette valeur. Une valeur ‘Y’ renvoyée
affiche le message « Order processing
job is active » (Le job de traitement
des commandes est actif) ; sinon,
le message présenté est « Order processing
job is currently inactive » (Le job de
traitement des commandes est actuellement
inactif).

Ensuite, le programme CHKCONC2
appelle l’API QWCRJBST dans
la boucle et passe un numéro de job
différent pour chaque boucle parce
que nous ne connaissons pas la valeur
du job ou de l’état qui est extrait. QWCRJBST
quitte la boucle soit quand le
champ JobStatus est égal à  *ACTIVE,
soit quand il atteint la valeur maximale
de l’index de boucle. La valeur initiale
de JobNum# est égale à  la valeur passée
par le programme CL CHKCONC1
plus quelques constantes (dans ce cas,
2.500) puisque nous ne savons pas
quel job – écran d’interrogation ou simultané
– a démarré le premier. Le
prochain appel adressé au programme
API passe le numéro de job réduit de
un.

Téléchargez gratuitement cette ressource

TOP 5 Modernisation & Sécurité des Postes Clients

TOP 5 Modernisation & Sécurité des Postes Clients

Pour aider les entreprises à allier les restrictions liées à la crise et la nécessaire modernisation de leurs outils pour gagner en réactivité, souplesse et sécurité, DIB-France lance une nouvelle offre « Cloud-In-One » combinant simplement IaaS et DaaS dans le Cloud, de façon augmentée.

Tech - Par Victor Pisman - Publié le 24 juin 2010