Le scrutateur de processus

Généralités

Définition

Le scrutateur est le moteur de Processus, c'est lui qui permet l'exécution et l'enchaînement des tâches, et est donc le cœur du module des processus

Il s’exécute en arrière-plan et vient ramasser de façon cyclique les processus opérationnels qui doivent tourner.
C'est lui qui enchaîne les tâches sous condition, déclenche les tâches planifiées, traite les relances. C'est lui qui lit les règles de gestion des processus, modifie le statut des tâches et exécute les opérations qui ne demandent pas l'intervention comme l'envoi d'un mail, la création d'un événement etc…

C'est un programme (spppwebscru.dhop) qui doit tourner en permanence pour que les processus fonctionnent.

ATTENTION :

  • Eviter de lancer un scrutateur sur un client léger. Le lancer sur le serveur. De préférence avec un utilisateur avec le droit 'HIP'.

  • Vérifier que l'utilisateur as bien un dossier d'appartenance dans l'onglet Processus de l'utilisateur.

 

Scrutateur et calendrier (Droit à la déconnexion)

Le scrutateur s'appuie sur la notion de calendrier.
Pour rappel, un calendrier se définit dans administration/calendrier/paramétrage des calendriers/ calendrier. C'est dans le calendrier que l'on définit les jours ouvrables pour l'entreprise ainsi que les jours fériés et les horaires de travail.
Le scrutateur se sert d'un calendrier pour l'envoi des e-mails.
Ce point peut répondre à une politique d'entreprise de droit à la déconnexion, qui définirait par exemple, qu'aucun mail ne doit parvenir aux collaborateurs après 18h00. C'est par le menu Administration/paramètres/paramètres généraux, onglet Scrutateur, groupe processus, champ Calendrier pour envoi des mails que l'on va indiquer le code calendrier sur lequel doit s'appuyer le module processus pour l'envoi des mails. En dehors des heures d'envoi autorisées par le calendrier, les mails générés dans le module processus sont mis en attente dans un spool pour être envoyés dans le prochain créneau horaire autorisé.

Fréquence de traitement du scrutateur

La fréquence de traitement du scrutateur (définie en millisecondes), se paramètre dans Administration/paramètres/paramètres généraux, onglet Scrutateur, groupe Temps d'attente (millisecondes), champ Temps d'attente spécifique.

 

Lancement du scrutateur

On retrouve les traces des modes TRACE et DEBUG dans le fichier logprocessus.log du répertoire DivaltoLog. Un fichier de log LogProcessus_aaaammjjhhmmss.txt est alors créé au lancement du scrutateur. Il permet de suivre toutes les actions réalisées par le scrutateur.

Lancement par le menu

  • Par le menu Processus / Utilitaires / Scrutateur

  • Par le menu Processus / Utilitaires / Scrutateur avec trace (pour un suivi des tâches traitées) 

  • Par le menu Processus / Utilitaires / Scrutateur en mode DEBUG (pour un suivi  plus précis du démarrage du scrutateur et un retour du traitement des tâches)

Lancement à la question programme

A la question programme lancer le programme spppwebscru.dhop

Par un service DIVA

Voir :  Mise en production des processus Divalto ERP

Arrêter le scrutateur

Quand le scrutateur est lancé par le menu on peut l'arrêter en cliquant sur son icône dans la barre des tâches. Un menu PopUp est alors activé il faut choisir "Fin du programme" pour arrêter le scrutateur.

Sinon, on peut l'arrêter en créant un processus "zparret"

Relance du scrutateur

Fonction disponible uniquement à partir des packs suivants :

  • Version X.6 pack 216a

  • Version X.7 pack 217a

On peut forcer un arrêt / relance du scrutateur en créant un processus avec une tâche de type "Pas d'action" nommée ZPRELANCE. Ce processus peut être un processus automatique avec une fréquence d'exécution définie.

Le scrutateur s'arrête et se relance de façon automatique si une au moins des conditions suivantes est remplie :

  • Le scrutateur à réalisé au moins 100 itérations  (vous pouvez définir une autre limite par surcharge de la fonction "Definir_nbIterMax" du module "spttwebscru.dhop")

  • Le scrutateur à traité au moins 100 tâches (vous pouvez définir une autre limite par surcharge de la fonction "Definir_nbTacheMax" du module "spttwebscru.dhop")

  • Le scrutateur tourne depuis au moins 24 h (vous pouvez définir une autre limite par surcharge de la fonction "Definir_nbHeureMax" du module "spttwebscru.dhop")

A partir de la version X.8, on peut paramétré les limites (Itérations, Heures et tâches) directement dans les paramètres généraux

Actions du scrutateur

Le scrutateur exécute 5 actions dans l'ordre suivant :

  • Traitement des processus automatiques : Cette action recherche les processus automatiques à activer et créé les processus opérationnels associés. Il regarde la périodicité de lancement ainsi que la date du dernier processus généré. Il permet aussi de mettre à l'état périmé les processus automatique modèle avec date de fin échue.

  • Traitement des tâches terminées : cette action recherche les tâches terminées des processus en cours, et déclenche les tâches suivantes (les tâches sont mises à l'état "à activer", sauf les tâches manuelles qui sont mise dans l'état "à affecter" ou "à traiter"). Si le code de la tâche terminée commence par "ZPARRET", le scrutateur est arrêté.

  • Traitement des tâches à activer : permet d'initialiser les champs de la tâche, d'exécuter les actions avant tâches, et d'exécuter les tâches en état à activer

  • Traitement des relances : vérifie le temps d'attente des relances, les exécute le cas échéant.

  • Suppression des processus terminé : selon la durée de conservation définie pour le processus

Le temps d'attente entre 2 scrutations est paramétrable depuis le menu Administration (Paramètres / Paramètres généraux)
Attention : Si ce temps d'attente n'est pas paramétré ou inférieur à 5 s (5 000) il sera forcé à 1 mn (60 000)


Scrutation d'un répertoire

A partir de la version X.3 il est possible de traiter des tâches des processus en cours par l'intermédiaire d'un fichier .xml.
C'est le scrutateur qui va vérifier la présence de fichiers à traiter, et s'occuper du traitement des tâches paramétrés dans les fichiers.
Il faut créer un fichier par tâche à traiter.
La structure du fichier est la suivante :

Avec

  • USER : l'utilisateur qui sera renseigné comme ayant traité la tâche.

  • procno : N° de processus dont la tâche est à traiter

  • tachecod : Code de la tâche à traiter.

  • Suitecod : Code de la suite à utiliser pour le traitement de la tâche.


Le chemin des répertoires à scruter est défini par un code chemin au niveau des paramétra généraux :

Si aucun chemin n'est spécifié au niveau du paramétrage, c'est le code chemin SP_REP_SCRU qui sera utilisé.
A partir de ce répertoire, le scrutateur va « scruter » tous les sous- répertoires nommés 'Import.
Il créé également trois sous-répertoires de travail :

  • En cours : c'est dans ce répertoire que l'on retrouve les fichiers en cours de traitement

  • Rejetés : c'est dans ce répertoire que l'on retrouve les fichiers qui ont générées des erreurs lors de leur traitement.

  • Traités : c'est dans ce répertoire que l'on retrouve les fichiers qui ont été traités sans erreur.



Les causes d'erreurs peuvent être :

  • Le processus opérationnel « procno » n'existe pas ou n'est pas à l'état attendu (« en cours »)

  • La tâche « tacheCod » n'existe pas ou n'est pas à létat attendu (« à traiter »)

  • La suite de tâche « suitecod » n'existe pas ou n'est pas du type attendu (« suite manuelle »)



Etat des processus opérationnels

1 - En Cours : Processus en cours d'exécution
2 - Suspendu : Non utilisé
3 - Fini : Processus terminé
4 - En erreur : Processus dont le traitement a été interrompu par une erreur.
5 - Non validé : état initial des processus avec 1ère tâche de type manuelle. La validation du formulaire fera passer le processus à l'état "en cours"
6 - Annulé : Processus annulé par son créateur. Ne peut être fait que si aucune étape critique n'a été atteinte.

Remplaçant temporaire

Zoom remplaçant

Le zoom remplaçant permet de gérer des remplaçants par domaine.
Lors de la recherche d'un remplaçant on recherche en premier lieu un remplaçant défini pour le domaine du processus puis le cas échéant un remplaçant défini sans "domaine".
Le remplaçant est recherché lorsque la tâche manuelle passe à l'état "à traiter".
Dans le cas des tâches à traiter par à des membres d'un groupe, la recherche du remplaçant est faite après l'affectation de la tâche.

Tâche envoi de mail

Dans le cas d'une tâche envoi de mail, le remplaçant est ajouté aux destinataires du mail, mais le destinataire initial est conservé.
Tâches de processus opérationnels

Etat des tâches opérationnelles

1 - En attente de signal amont : La tâche attend la fin de la tâche en amont.
2 - à activer : Etat d'une tâche non manuelle qui vient d'être déclenchée par le scrutateur. Sera traiter par le scrutateur.
3 - à affecter : Etat d'une tâche manuelle qui doit être effectué par un membre d'un groupe. On la retrouve dans les tâches en cours des utilisateurs du groupe.
4 - à traiter : Etat d'une tâche manuelle qui vient d'être déclenchée par le scrutateur. Où qui vient d'être affectée à un membre du groupe. On la retrouve dans les tâches en cours de l'utilisateur concernée.
5 - En cours : tâche en cours de traitement
6 - Terminée : tâche dont le traitement est terminé. C'est le scrutateur qui déclenchera les tâches suivantes et passera l'état à "finie"
7 - Finie : Tâches "terminées" traitées par le scrutateur ou tâches bloquées suite à l'option "Etape à bloquer" d'une suite de tâche manuelle
8 - Erreur : Tâche dont le traitement a déclenché une erreur bloquante. Le processus sera également mis à l'état "en erreur"
9 - Annulée : Tâche d'un processus annulé par son créateur.
10 - Bloquée : Tâche bloquée lors de l'exécution du processus.

Traitement des tâches en cours

Chaque utilisateur peut voir ses tâches encours (Tâches "à affecter" et tâches "à traiter") soit dans le widget dédié soit le zoom des tâches en cours, accessible par le menu Processus/Gestion des processus/Tâches encours.
Zoom des tâches encours.

Pour traiter une tâche : utiliser le bouton "traiter" ou double-clic sur la tâche.
Exemple d'affectation d'une tâche

Après affectation d'une tâche à soi-même on passe directement au traitement de la tâche.
Exemple de traitement d'une tâche validation de congés : le choix est Accord ou Refus