24 juin 2013

Automatiser les traitements HR avec RBB

Depuis HRv5 l’utilisateur peut demander l’« Activation » de demandes Opération. Toutefois l'ensemble des fonctionnalités n'est vraiment présent qu'avec HRv7. Les détails ci dessous ...

Seul manque encore l'automatisation des lancement chaque minute. Peut être que le serveur de Query - qui prend déjà en charge l'envoi des mails - se verra-t-il dans le futur attribuer cette tâche ?

L'interface Web

Au niveau de la demande Opération, l’utilisateur peut préciser une fréquence et une date de première exécution du traitement batch.



L’activation (par soumission de la demande) provoque:
  • Le déclenchement du script OPER, 
  • Le programme BOB va « archiver » le script habillé de la chaîne à exécuter dans l’information ZO2S du dossier de demande
  • Et « verrouiller » la demande opération qui n'est alors plus modifiable.


L’utilisateur peut consulter la liste des traitements « activés » voire en déprogrammer

 
 
L’exécution du traitement est déléguée à l’exploitant qui doit exécuter la chaîne RBB à fréquence régulière.

La chaîne RBB

La chaîne (script subbb) soumet TOUS les traitements dont la date d’activation dépasse la date système,

Pour lister les traitements en attente, passez par l'interface ou exécutez la requête suivante :
SELECT NUDOSS, TEDMAC, TIDMAC FROM ZO00         
WHERE  TEDMAC <> 'N' AND    TESOUD =  '1' 
ORDER BY TIDMAC,TEDMAC


Les étapes de la soumission sont les suivantes :
  • subbb lance RBB (chaîne générée avec un processus Opération),
  • Le programme BOD en boucle :
  1. Ecrit pour la première demande trouvée la chaîne stockée en ZO2S dans $TMP/T120JS."$nupro"
  2. Lance OPE2 (via XSNDJOB et job)
  3. OPE2 exécute la chaîne définitive en arrière plan,
  4. BOD reprend la main. En cas d’activation « périodique » il recalcule et met à jour automatiquement la date de la prochaine exécution dans la demande ZO
  5. puis passe à la demande suivante.

Pour que tout fonctionne de manière transparente il est nécessaire d'automatiser l'exécution régulière de la chaîne RBB (par exemple par crontab). Au vu du fonctionnement standard, la fréquence d'exécution doit être la minute.

Si vous souhaitez les espacer plus (10 ou 30 minutes par exemple), je pense préférable de modifier OPE2 pour que les traitements se déclenchent en avant plan (ce qui évite la concurrence de traitements incompatibles ou dépendants) :

nohup ksh $TMP/JS."$NUMJOB" > $TMP/"$JOBLOG" 2>&1 &
CODE_RETOUR=$?
PID=$!


devient alors

ksh $TMP/JS."$NUMJOB" > $TMP/"$JOBLOG" 2>&1
CODE_RETOUR=$?
PID=$$


A noter : La chaîne RBB est compatible avec les enchaînements NRC.