Un processus modèle est défini par :
- Un en-tête : définit le type et le statut du processus ainsi que la première tâche
- Des champs de donnée
- Des tâches : définissent les actions à réaliser par le processus
- Des suites de tâches
- Des relances de tâches : définissent les conditions de relance des tâches à traiter
- Des formulaires de tâche : définissent pour chaque tâche, le statut des champs de données (initialisé, visible, modifiable, obligatoire)
En-tête
Accès
- Menu Processus : Définition des processus / Processus
Renseigne sur l'état, le type du processus, permet de définir les conditions de déclenchement des processus automatiques, de générer les masques de saisie associés aux formulaires du processus.
Onglet - GÉNÉRALITÉS
- Libellé : A partir de la version 10.4, il est possible de rajouter des balises avec des mot clé, des références à un champ du processus ou un champ d'une tables liées au processus. Les balises sont évaluées : au niveau des zooms des processus en cours, des tâches à traiter et du widget des taches à traiter.
- Type de processus : un processus est automatique ou manuel. Contrairement au processus manuel un processus automatique est lancé par le scrutateur sans qu'aucune intervention ne soit nécessaire.
- Domaine : Permet de classer les processus par domaine d'activité. Les remplaçants peuvent être définis 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".
- Etat du processus : Actif, En cours de modification, Périmé. Seul les processus "Actifs" peuvent être lancés.
- Mode test : lors de l'exécution d'un processus en mode test : les envois de mail ne sont faits qu'à destination de l'administrateur du processus, les évènements créés ont pout utilisateur l'administrateur du processus, et les tâches manuelles sont à réaliser par l'administrateur.
- Administrateur : Code User de l'administrateur du processus
- Utilisateur par défaut : permet de définir le créateur du processus opérationnel (procuser) dans le cas des processus automatiques.
On peut saisir un code utilisateur, un code groupe, ou un mot.
Dans le cas d'un groupe, on prend le responsable du groupe.
Dans le cas d'un mot clé (Collaborateur, remplaçant, manager, correspondant1, ou correspondant2), l'utilisateur est recherché dans l'enreg User du SYSTEM.USER.
En l'absence d'utilisateur par défaut c'est System.User qui sera utilisé.
Dans le cas des tâches de type programme batch, les droits sont modifiés aux profits de ceux de l'utilisateur du processus (ProcUser). - Durée de conservation : définit la durée pendant laquelle un processus opérationnel terminé doit être conservé. Passé ce délai il sera supprimé par le scrutateur (A partir de la version 10.4).
Les processus annulés ou en erreur ne sont pas supprimés automatiquement. - Version : la version permet de tracer l'évolution du processus. Il n'y a pas d'historisation une nouvelle version écrase les versions précédentes. Il est vivement conseillé de changer de version chaque fois que l'on modifie les formulaires du processus.
- Masque modèle : détermine quel masque sert de modèle lors de la génération du masque de saisie des formulaires du processus.
La masque modèle speemodmask standard permet de générer un formulaire d'une hauteur de 35 lignes. Le nombre de lignes du formulaire final, correspond au nombre de lignes de la page 2 du masque modèle)
A partir de la version X.3 (pack 213b) : nous livrons en standard 2 masques modèle- Le masque speemodmask qui a une hauteur de 35 lignes
- Le masque speemodmask60 qui a une hauteur de 60 lignes
- Nom du masque : nom du masque généré. Il est composé du nom du processus et de sa version. C'est le générateur automatique de masque qui met ce champ à jour.
Gestion des boutons
Vous pouvez dorénavant ajouter au formulaire des tâches manuelles jusqu'à 3 boutons sélectionnés dans une liste.
Les boutons paramétrés seront présents dans la barre de boutons de tous les formulaires du processus.
Les boutons disponibles en standard sont :
- Ecriture Accès au programme de saisie des écritures en attente pour le n° d'écriture du processus
- Ventilation écriture Accès à l'onglet ventilation du programme de saisie des écritures en attente pour le n° d'écriture du processus
- Contrôle facture Accès contrôle facture le n° de facture contrôle et le tiers du processus
- Matériel Accès à la fiche matériel du N° de matériel du processus
- DataSet Accès au superviseur de facture fournisseur pour le n° de DataHub du processus
- Pièce Accès à la pièce associée au processus
- Tiers Accès au tiers associé au processus
- Article Accès à l'article associé au processus
Ils sont définis dans le masque "speebouton".
Surcharge de la barre de boutons :
Il est possible d'utiliser des boutons depuis d'autres masque.
Dans ce cas le sources du masque utilisé doit être dans les implicites et le traitement des boutons défini dans le module de surcharge du "spttsaisieform".
La fonction de traitement associée au bouton doit se nommer "NomMasque_NumArret".
Exemple pour le bouton associé au point d'arrêt 4005 du masque speebouton : fonction "speebouton_4005"
Formulaire WEB de validation des tâches
Voir § Traitement de tâche par formulaire WEB
Onglet PÉRIODICITÉ
Pour les processus automatiques il est obligatoire de renseigner les informations de périodicité et de fréquence.
Si besoin on peut aussi renseigner les informations de répétitions.
Exemple d'un processus automatique que l'on veut exécuter le 5 de chaque mois
Champs du processus
Données modèles
Permet de définir des modèles de champ de données.
Accès zoom " donnée"
- Menu Processus : Fichiers / Définition des données
- Zoom définition des champs de processus : F8/F9 sur champ "donnée"
Nature : Type de champ utilisé pour stocker les valeurs de la donnée
- Titre : Titre pour mise en forme des formulaires (long. : 80)
- Séparateur : Ligne de séparation pour mise en forme des formulaires
- Libellé : champ alpha (long. : 80)
- Libellé long : champ alpha (long. : 250)
- Date : champ date enregistré sous la forme AAAAMMJJ (long = 8)
- Heure : champ heure enregistré sous la forme hhmmss (long = 6)
- Date Heure : champ date + heure enregistré sous la forme AAAAMMJJ hhmmss (long = 14)
- Entier court : Champ numérique de type entier (long = 4)
- Entier long : Champ numérique de type entier (long = 10)
- Montant : Champ numérique de type décimal avec 2 chiffres après la virgule (long = 16)
- Code 8 : Champ alpha pour code court (long = 8)
- Code 20 : Champ alpha pour code long (long = 20)
- Multi-choix : Champ alpha pour code multi-choix (long = 30)
- Multi-lignes : Champ de type mémo
Conversion : permet de définir s'il y a lieu de convertir les données lors de la saisie dans les formulaires
N° de zoom : détermine quel zoom doit être associé au champ dans le masque de saisie des formulaires.
Maj en-tête : définit quel champ de l'en-tête de processus est associé à la donnée. La mise à jour des données est faite dans les cas suivants :
- Lors de la création d'un processus avec passage de paramètres. Exemple Lancement d'un processus lors de la modification d'une commande client avec param = .
Les données Type et n° de pièce de l'en-tête du processus seront renseignées avec les informations de la commande en cours.
- Lors de la création d'un processus automatique avec les données d'initialisations des champs correspondants associés à la première tâche.
- A l'activation des tâches non manuelles (si on a positionné l'option 'initialisation' à oui pour la tâche en cours).
- A la validation de la saisie d'un formulaire de processus
Attention il convient de respecter le typage suivant pour que la mise à jour puisse se faire
Champ de l'en-tête :
Code Libellé Nature de champ utilisable pour la mise à jour
USERPRINC Collaborateur Code 20 ou Multi-choix
USERGRP Groupe d'utilisateur Code 20 ou Multi-choix
TICOD Type de tiers Code 8 ou Multi-choix
TIERS Tiers Code 20 ou Multi-choix
PICOD Type de pièce Code 8 ou Entier court ou Multi-choix
PREFPINO Prefixe du N° de pièce Code20 ou Multi-choix
PINO N° de pièce Entierlong ou Multi-choix
REF Référence Article Libelle, LibelleLong ou Multi-choix
CONTACT Contact Code 8 ou Multi-choix
EVTNO N° d'évènement Entier long ou Multi-choix
PROJET Code projet Code 8 ou Multi-choix
AFFAIRE Code affaire Code 8 ou Multi-choix
AGILEOID Identifiant Agiléo Entier long ou Multi-choix
INDIVIDU Code Individu Code 20 ou Multi-choix
ENTIERCOURT Entier court Entier court ou Multi-choix
ENTIERLONG Entier long Entier long ou Multi-choix
MONTANT Montant Montant ou Multi-choix
Valeur multi-choix
Définit quel sont les valeurs qui seront proposées dans le multi-choix.
On peut saisir
une liste de valeur sous la forme" libellé , code" (ex : Devis,1;Commande,2;BL,3;Facture,4)
une procédure (ex : FONCTION.Chargement_Liste_TachesAgileo).
Fonction de chargement de multi-choix
Type Chargement de multi-choix
Module sptmctrl.dhop
Argument 1 Données saisies dans le champ paramètres
Retour Liste des éléments du multichoix sous la forme (lib1,val1;lib2,val2; …libn,valn)
Ou le nom d'une liste nommée d'éléments de type spEltChoix
Initialisation
Définit la valeur d'initialisation de la donnée.
On peut renseigner :
une valeur
un mot-clé (Collaborateur, CollaborateurTache, CollaborateurTache.Nom, Manageur, Correspondant1, Correspondant2, ou Remplacant)
une donnée du formulaire (FORMULAIRE.codeChamp)
le nom d'une procédure (ex : FONCTION.Initialiser_Collaborateur).
Procédure d'initialisation
Type initialisation
Module sptmctrl.dhop
Argument 1 Donnée à initialiser (passage par paramètre)
Argument 2Données saisies dans le champ paramètres
Lancement des fonctions d'initialisation
Avant la première tâche d'un processus manuel, et chaque fois que le scrutateur lance les tâches à activer :
On exécute les fonctions d'initialisations de données si l'option est cochée dans le formulaire de la tâche et si la donnée est non vide.
On exécute les fonctions de traitement avant tâche
Cas des tâches manuelles
Après la modification d'un champ avec option" réinitialisation des données en aval" : on re exécute les fonctions d'initialisations des données suivantes (et cela même s'il elles contiennent déjà une valeur)
Spécificités des processus automatiques :
Les fonctions d'initialisations sont lancées lors de la création du processus. Les données de l'en-tête sont également mise à jour. (Si la donnée USERPRINC est mise à jour on met aussi à jour le dossier et l'établissement de l'en-tête du processus avec ceux de l'onglet Processus de l'utilisateur principal)
Les fonctions de traitements avant de la 1ère tâche ne sont pas traitées.
Contrôle
Permet le contrôle de la valeur saisie. Exécutée après la saisie d'un champ dans un formulaire.
Fonction de contrôle
Type Contrôle
Module sptmctrl.dhop
Argument 1 Valeur de la donnée à contrôler
Argument 2 Données saisies dans le champ paramètres
Argument 3N° de l'erreur (passage par paramètre)
Argument 4 Nom du fichier qui contient l'erreur (passage par paramètre)
Retour 0 si OK. Sinon autre valeur + n° err renseignée
Recherche de libellé
Permet l'affichage du libellé d'un champ.
Appelée lors du chargement d'un masque de saisie d'un formulaire et lors de la saisie après le contrôle des données.
Fonction de recherche de libellé
Type Recherche de libellé
Module sptmctrl.dhop
Argument 1 Valeur de la donnée à contrôler
Argument 2Donnés saisie dans le champ paramètres
Retour Valeur du libellé
Traitement après modification
Utilisée uniquement dans les tâches manuelles.
Procédure lancée en sortie de champ, après les fonctions de contrôles et de recherche de libellé.
Procédure de traitement après modification
Type Traitement de sortie de champ
Module sptmctrl.dhop
Argument 1 : Valeur de la donnée que l'on vient de modifier
Argument 2 : Données saisies dans le champ paramètres
Liste des fonctions et procédures
Les fonctions et procédures doivent être référencées dans la table des fonctions (Accès Menu Processus : Fichiers / Fonction et procédure)
Champs de processus
Le zoom "champs de Processus" permet de définir les champs qui seront utilisés dans le processus.
Les champs pourront être mis à jour par passage de paramètres lors de la création du processus, par une fonction d'initialisation, ou par saisie dans un formulaire du processus.
Accès zoom "Définition des champs de processus" :
- Menu Processus : Définition des processus / Données
- Zoom en-tête de processus modèle bouton "Champ"
Lors de la création d'un champ de processus, le champ nature, ainsi que les données de chargement de multi-choix, d'initialisation, de contrôle, de recherche de libellé et de traitement après sont associés à la donnée modèle sont reprises par défaut.
Code : Code du champ. c'est la valeur qui sera utilisée pour récupérer la valeur du champ dans les diverses opérations du processus
Invite : C'est le libellé qui sera utilisé comme invite dans les formulaires de saisie.
- Si un champ n'a pas d'invite de saisie, il sera positionné sur la même ligne de saisie que le champ précédent du masque
- Pour un champ de type "Titre" si aucune donnée d'initialisation n'est saisie, on initialisera le champ avec la valeur de l'invite.
N° d'ordre : le n° d'ordre permet de définir l'ordre dans le lequel les champs sont présent dans les masques des formulaires
Réinitialisation des champs suivants : Si cette option est activée, Après la modification d'un champ dans un formulaire, tous les champs avec un n° d'ordre supérieur sont réinitialisés. Attention cette réinitialisation écrasera les anciennes valeurs des champs. Elle sera valable pour tous les champs suivants dans tous les formulaires. A partir de la version X.4, il est possible de paramétrer une réinitialisation plus précise au niveau des formulaires de tâches.
Attention : Le nombre de champ est limité à 100 par processus si on gère des formulaires.
Remarque : pour positionner 2 champs sur la même ligne dans un formulaire de saisie il ne faut pas mettre d'invite de saisie sur le 2ème champ
Tâches
Les tâches sont les opérations que doit exécutés le processus.
Accès
- Menu Processus : Définition des processus / Tâche
- Zoom en-tête de processus modèle bouton "Tâche"
Données communes
Informations à renseigner qu'elle que soit le type de tâche.
Libellé : Libellé de la tâche, sera affichée dans les formulaires et dans la liste des "tâches en-cours". A partir de la version X.4, il est possible de rajouter des balises avec des mot clé, des références à un champ du processus ou un champ d'une tables liées au processus. Les balises sont évaluées : au niveau du zoom des tâches à traiter et du widget des taches à traiter.
Etape critique : Positionner un flag étape critique : permet de dire que la fin de cette étape marque un non-retour. Lorsque cette étape sera terminée, le flag "tâche critique atteinte" sera remonté au niveau de l'en-tête du processus et celui si ne pourra plus être annulé par son "créateur".
Type de tâche : défini l'opération qui doit être exécutée.
Priorité : Définit la priorité de la tâche. Le scrutateur traite les tâches par ordre de priorité
Etape : Etape associée à la tâche. (une étape est considérée comme terminée lorsque toutes les tâches appartenant à cette étape sont terminée)
Durée d'attente : Définit l'attente minimale entre le lancement d'une tâche et la fin de l'étape précédente.
Durée théorique : Permet de calculer une date de fin théorique d'une tâche. Le calcul est fait au moment du passage à l'état "A traiter". Ne concerne que les tâches "manuelles"
Condition :Condition testée si la suite qui déclenche la tâche est de type "condition de tâche suivante réalisée" ou "condition de tâche suivante non réalisée"
Etape terminée : La tâche ne sera pas exécutée tant que cette étape n'est pas terminée.
Utilisation des fonctions
On peut utiliser des fonctions dans le paramétrage des tâches.
Les fonctions doivent être présentes dans le module « sptmctrl.dhop » (ou sa surcharge)
Appel d'une fonction sans paramètre : FONCTION.NomFonction
Appel d'une fonction avec paramètre : FONCTION.NomFonction.Param
Le paramètre de la fonction peut être :
Une valeur du formulaire : FORMULAIRE.Nomchamp ou FORM.NomChamp
Un mot clé : MotCLe.Mot
Une valeur de champ : NomRecord.NomChamp
Une chaîne
Chargement des enregistrements lors du traitement des tâches
Avant le traitement des tâches on charge des enregistrements publics en fonction des données présentes dans l'en-tête du processus.
- Module commun
- MUSER (Utilisateur) si collaborateur du processus présent
- MUSERGRP (Groupe d'utilisateurs) si Groupe d'utilisateurs présent
- Commerce et logistique
- PRO (Pospect) si type de tiers = prospect et Code tiers présent
- CLI (Client) si type de tiers = client et Code tiers présent
- FOU (Fournisseur) si type de tiers = fournisseur et Code tiers présent
- TIA (Tiers interne) si type de tiers = interne et Code tiers présent
- T2 (contact) si code tiers et code contact présents
- ENT (en-tête de pièce) si type de pièce, préfixe et et numéro de pièce présents
- ART (Article) si code article présent
- CTRLFAENT (Contrôle facture) si N° de contrôle facture présent
- DHBENT (DataHub) si Numéro de DataHub présent
- CRM
- EVTTIERS (Evénement CRM) si code évènement CRM présent
- Paie
- PINDIVIDU (Individu paie) si code individu présent
- PCONT (Contrat de paie) : dernier contrat de paie actif si code individu présent
- Compta
- CAT (Ecriture en attente) si n° d'écriture présent
- Gestion à l'affaire
- PRJAV (Opportunité) si le code opportunité est présent
- PRJAP (Affaire) si code affaire présent
- GPAELEM (Elément d'affaire) si indice et élément d'affaire présents
- GPAACTIVITE (Activité d'affaire) si indice, élément d'affaire et activité présents
- GPAEVT (Evènement d'affaire) si indice, élément d'affaire et évènement d'affaire présents
- Gestion des ressources matérielles
- GMMAT (Matériel) si N° de matériel présent
Ouverture pour chargements complémentaires
Faire une surcharge de la fonction SP_Lire_Tables_liees_entete_Ap du module sptm000.dhop.
Recherche du libellé des champs du processus
Le libellé des champs du processus est accessible par
Il correspond au libellé saisi dans la définition du champ
Recherche du libellé de la valeur des champs du processus
Le libellé de la valeur des champs du processus est accessible par
Il sera recherché à l'aide de la fonction de recherche de libellé saisie dans la définition du champ
Tâche "Générer un événement"
Données de l’événement créé :
Code : Le code de l'événement est celui paramétré au niveau de la tâche.
Statut : Les statuts rendez-vous ou tâche sont ceux du code événement sauf si on modifie un statut par l'intermédiaire de la chaîne de paramètres.
Utilisateur : Le code utilisateur de l'évènement créé est pris par le premier champ non vide trouvé :
- Utilisateur renseigné dans le champ 'A réaliser par' de la tâche.
- Utilisateur de la tâche
- Collaborateur du processus
Mode test : si on est en mode test l'utilisateur de l'évènement est l'administrateur du processus
On peut aussi forcer la valeur de l'utilisateur de l'évènement à l'aide d'un paramètre
Date : La date est positionnée avec la date et l'heure courante mais elle peut être modifiée par le paramétrage de la chaîne de paramètres.
Libellé : Le libellé est positionné avec la zone 'libellé evt' de la tâche qui est analysée et traduite : Elle peut contenir des noms de champs ou des mots clés ou des données de formulaire.
Note : La note est constituée par la note traduite de la tâche
Fichiers joints : Si la case 'Attacher les fichiers joints' est cochée, les fichiers joints de l'entête de processus opérationnel sont rattachés à l'événement.
Collaborateur : Il est possible de rattacher plusieurs collaborateurs à l'événement, en utilisant la zone 'Destinataire'. Syntaxe possible :
Les crochets sont optionnels
- Ce champ peut contenir une énumération d'items séparés par ";" ou ";;"
- Chaque item peut représenter un code collaborateur, un groupe, un manager de groupe, un mot clé correspondant à un collaborateur, une donnée de formulaire de type CODE20.
- Mode test : si on est en mode test les collaborateurs ne sont pas associés à l'évènement mais leur nom est ajouté en fin de la note de l'évènement.
Paramètre : Il est possible de forcer la valeur des données de l'évènement généré. La chaîne de paramètre permet de forcer des champs avec des valeurs. Les crochets sont optionnels.
- Syntaxe :
Tâche "Modifier un évènement"
L'évènement modifié est celui renseigné dans l'en-tête du processus.
Le code évènement s'il est renseigné remplacera le code existant.
Les données de l'évènement à modifier doivent être renseignées dans le champ paramètre.
La note de la tâche en cours est insérée dans la note de l'évènement
L'option "attacher les fichiers joints" permets de rattaché à l'évènement modifié les fichiers joints à l'en-tête du processus en cours.
Tâche "Envoi de mail"
Eléments du mail :
Destinataires : liste des destinataires du mail. Enumérations de codes utilisateur, et/ou de groupes d'utilisateur, et/ou d'adresses mail. Utilisation possible des mots clés et de données de formulaire. Si le processus est en mode test (Case à cocher sur la fiche du processus modèle), les mails sont envoyés à l'administrateur du processus et les destinataires sont rajoutés à la fin du texte du message.
Répondre à : Définit le compte émetteur pour positionner le destinataire en cas de réponse
Objet : Objet du mail.
Détail : Corps du message.
Dans le champ destinataires, on peut utiliser :
- Des adresses mail
- Des codes utilisateur : on recherchera l'adresse mail de l'utilisateur et de son remplaçant le cas échéant
- Des groupes : si une adresse mail est saisie au niveau du groupe, on ne prendra que celle-ci. Sinon on rajoutera l'adresse de tous les membres actifs du groupe ainsi que l'adresse du responsable du groupe, plus leur remplaçant le cas échéant.
- Des mots-clés : Administrateur, Collaborateur (Collaborateur du processus), CollaborateurTache (Collaborateur de la tâche), Manager (du collaborateur du processus), Correspondant1(du collaborateur du processus, Correspondant2(du collaborateur du processus), Remplacant (du collaborateur du processus), Tiers, et Contact
- Des champs du formulaire : contenant un code groupe ou un code utilisateur
- Des Manager de groupe
- Des fonctions : Fonction.NomFonction.Param
Si on met plusieurs destinataires, il faut les séparer par ";"
On peut rajouter l'information devant les adresses
Mode test : Si le processus est en mode test le mail ne sera adressé qu'à l'administrateur du processus. La liste des destinataires est ajoutée en fin de mail
Dans l'objet et dans le détail du mail, on peut utiliser des :
Ex : mail envoyé au collaborateur du processus et à son manager lors d'une demande d'achat
DAction : Renseigner ici les données à ajouter au fichier DACTION qui sera associé au mail.
Un fichier DACTION associé à un mail permet l'ouverture direct d'un programme Diva depuis OutLook
Droit à la déconnexion
Dans le cadre du droit à la déconnexion, vous pouvez dorénavant limiter les plages horaires d'envoi de mail à l'aide d'un calendrier.
Si ce calendrier est présent, les tâches envoi de mail ne sont effectuées que pendant les horaires de travail définies dans ce calendrier.
Le calendrier doit être positionné au niveau des paramètres généraux :
Menu : Administration / Paramètre / Paramètres généraux
Tâche "manuelle"
Une tâche manuelle est associée à une saisie de formulaire. Elle peut être réalisé par :
Un utilisateur
Un membre d'un groupe désigné par une affectation de la tâche
Tous les membres d'un groupe
Dans "A réaliser par" on peut utiliser des :
un code utilisateur,
Un code de groupe d'utilisateur
un mot clé : MOTCLE .motcle
une valeur de formulaire FORMULAIRE.CodeChamp
une fonction: Fonction.NomFonction ou Fonction.NomFonction.Param.
Ex : tâche validation RH. Doit être faite par un utilisateur du "groupe rh"
Mode test : Si le processus est en mode test la tâche sera à traiter par l'administrateur du processus
1ère tâche des processus manuels : si la première tâche est une tâche manuelle elle sera toujours effectuée par l'utilisateur courant et la saisie du formulaire attaché est lancée directement. On ne tient pas compte de l'information saisie dans le champ "A réaliser par". Inutile d'utiliser une suite "choix manuel", un bouton "valider" est créé automatiquement.
Dans le cas d'un processus déclenché par une ACTION le bouton abandonner est inactif
Si on veut que la première saisie soit effectuée par un autre utilisateur que l'utilisateur courant il faut rajouter une tâche "Sans action" avec suite inconditionnelle vers la tâche manuelle.
Tâche "Programme batch" ou "Programme batch wait"
Permet d'appeler un programme par « ProgramCall ».
Avant l'appel du programme, les droits utilisateurs sont changés aux profits des droits du créateur du processus (procUser)
ATTENTION : Pour que ce changement de droits puisse se faire il faut que l'utilisateur qui a lancé le scrutateur est le droit 'HIP'. Dans le cas contraire les droits utilisateurs restent ceux de l'utilisateur courant.
Passage de données et ouverture avant l'appel du programme par « ProgramCall » :
Ping("Status",1)
Ping("spxz" , SPxz)
Ping("zechange", MZ)
Ping("Param", Param)
Ping("SOPEENT",SOPEENT)
Ping("SOPETACHE",SOPETACHE)
SP_Xmt_Call('Appeler_Programme_Batch_AV')
Exemple :
Si on veut passer plusieurs paramètres il faut les séparer par ';;'
Les paramètres peuvent être :
des mots clés : MOTCLE .motcle
des valeurs de formulaire FORMULAIRE.CodeChamp
des fonctions: Fonction.NomFonction ou Fonction.NomFonction.Param.
des valeurs de champs : NomRecord.NomChamp
Des chaînes
On peut rajouter une fonction de formatage au paramètres (voir « Tâche fonction »)
Tâche "Fonction"
Une tâche de type "Fonction" permet d'appeler une fonction présente dans un module de l'ERP
Fonctions utilisables dans une tâche de type fonction
Appel de la fonction "nom_fonction".
Les fonctions doivent être référencées dans la table des fonctions de tâche (Accès Menu Processus : Fichiers / Fonction d'action de tâche).
il faut préciser le module d'appartenance de la fonction, et le nombre de paramètres attendus (max 9)
Paramétrage d'une tâche de type "fonction"
Au niveau de la tâche de type fonction, il faut préciser la fonction que l'on veut appeler et les paramètres à passer.
Les paramètres de la fonction doivent être séparés par ' ;;'
Les paramètres peuvent être :
des mots clés : MOTCLE .motcle
des valeurs de formulaire FORMULAIRE.CodeChamp
des fonctions: Fonction.NomFonction ou Fonction.NomFonction.Param.
des valeurs de champs : NomRecord.NomChamp
Des chaînes
On peut rajouter une fonction de formatage aux paramètres.
Le format doit être indiqué entre { } et compréhensible par la fonction 'String' du langage.
Exemple {LU}FORM.valideur : Pour faire un cadrage gauche et forcer en majuscule le champ »valideur » du processus
Le format doit être une combinaison des caractères suivantes :
- L Cadrage à gauche
- M Centrage
- R Cadrage à droite
- A Eliminer tous les blancs
- B N blancs : 1 blanc
- 0 Remplacer les espaces par 0
- * Remplacer les espaces par *
- U Tout majuscules
- L(L minus)Tout minuscules
- 1 Premier car. de la chaîne majuscule puis minuscule
- E Premier mot à espace
- C Ne conserve que le premier mot
- I Inversion ( AZE — EZA )
- F Filtrage des caractères non affichables
- D(d,f)Suppression des caractères situés entre la position d et la position f incluses
Tâche "Lancement processus"
Il faut renseigner le nom du processus et des paramètres si besoin.
Les paramètres peuvent être :
des mots clés : MOTCLE .motcle
des valeurs de formulaire FORMULAIRE.CodeChamp
des fonctions: Fonction.NomFonction ou Fonction.NomFonction.Param.
des valeurs de champs : NomRecord.NomChamp
Des chaînes
On peut rajouter une fonction de formatage au paramètres (voir « Tâche fonction »)
Collaborateur du nouveau processus
Le collaborateur du nouveau processus est celui défini dans le champ « à réaliser par ».
Si le champ « à réaliser par » est vide c'est l'administrateur du processus en cours qui sera pris en compte.
A partir de la version 10.4 :
- On peut utiliser : un code utilisateur, un mot clé, un champ de formulaire, ou une fonction dans le champ « à réaliser par ».
- Si le champ «à réaliser par » n'est pas renseigné, on prend le collaborateur du processus en cours
- Si le champ «à réaliser par » n'est pas renseigné et que le collaborateur du processus en cours n'est pas défini, on prend l'administrateur du processus en cours.
Tâche "Validation étape Agiléo"
Préciser dans "Paramétres" la réponse attendue par la tâche du workflow Agiléo
Le numéro de tâche du workflow Agiléo doit être renseigné dans la donnée "Identifiant Agiléo" de l'en-tête du processus.
Si Agiléo attend des paramètres issus d'un champ de formulaire, il faut que ceux si soient visibles dans la tâche en-cours. La nature des champs doit être de type libellé long.
Ils sont alors envoyé à agiléo sous la forme " Identifiant donnée = valeur donnée"
La chaîne envoyée à Agiléo sera : Accepter=True
Si en plus le processus a un champ nommé "Décideur" dans lequel on a saisi la valeur "Monsieur X"
La chaîne envoyée à Agiléo sera : refuser=True, Décideur=Monsieur X
Suite de tâche
Accès
- Zoom tâche de processus modèle bouton "Tâche"
Les suites de tâches indiquent ce qu'il faut faire une fois la tâche terminée.
Les conditions doivent être renseignées dans la table des conditions
Suite de tâche "inconditionnelle"
La tâche suivante est lancée directement
Suite de tâche "Condition de tâche suivante réalisée"
La tâche suivante sera lancée si la condition associée à cette tâche est réalisée
Suite de tâche "Condition de tâche suivante non réalisée"
La tâche suivante sera lancée si la condition associée à cette tâche n'est pas réalisée
Suite de tâche "Condition de suite réalisée"
La tâche suivante sera lancée si la condition associée à la suite est réalisée.
Ex : la tâche envoi de mail de confirmation de lancement de la commande ne doit être exécutée que si l'Evènement est à l'état réalisé
Zoom "Suite de Tâche" | Zoom "Condition" |
Suite de tâche "Condition de suite non réalisée"
La tâche suivante sera lancée si la condition associée à la suite n'est pas réalisée.
Suite de tâche "Choix manuel"
Les suites de type "choix manuel" font suite à des "tâches manuelles". Elle permet à l'utilisateur de choisir la suite à donner à la tâche. Il faut créer autant de suite de type choix manuel qu'il y a de choix possible. Les choix proposés correspondent au libellé des suites de tâche.
Etape à bloquer
Dans les suites de tâche on peut préciser une étape à bloquer. Toutes les étapes associées à cette étape seront forcées à l'état "bloquée", et n'apparaitrons plus dans les listes de tâches en cours. Elles ne seront plus traitées par le scrutateur.
Ex : suite de la tâche validation du manager du processus rhcp
Le choix proposé sera "Accord" ou "Refus". En cas de refus l'étape "validation" sera bloquée. Cela permet de ne plus demander au RH la validation d'une demande refusée par le manager.
Suite de tâche "Fin de processus"
Toutes les branches d'un processus doivent se terminée par une étape "Fin de processus".
Lors de l'exécution d'un processus quand on passe par une branche "Fin de processus", le processus est terminé, il passe à l'état fini.
Les tâches qui n'ont pas été exécutées restent à l'état "en attente de signal amont". En regardant les tâches d'un processus terminé on peut donc voir par quelles branches le processus est passé. (Cela correspond aux tâches qui ont l'état "fini")
Suite de tâche "Fin de relance"
A utiliser pour une tâche de relance qui ne doit pas impacter le reste du processus.
Tâche bouclée
On peut, dans une suite de tâche définir que la tâche suivante est la même que celle que l'on vient de terminer.
Si la tâche bouclée est une tâche manuelle, la données "à réaliser par" est ré-évaluée.
Exemple tâche à réaliser par "MOTCLE.Collaborateur", si lors du premier traitement de la tâche on met à jour le collaborateur du processus, la tâche, pour son deuxième traitement, sera affectée au nouveau collaborateur du processus.
Relance de tâche (Opérationnel à partir de la version 10.4)
Accès
- Zoom tâche de processus modèle bouton "Relance"
Les relances de tâche permettent de lancer un processus ou une tâche du processus en-cours si une tâche de type manuelle n'a pas été traitée dans le délai imparti.
Si la relance est faite par une tâche du processus (souvent une tâche envoi de mail) et que cette tâche ne doit pas modifier le processus, il faut définir la suite de cette tâche à 'fin de relance'.
Si la relance est faite par un autre processus, l'initialisation du nouveau processus se fait par une chaîne de paramètres, dans laquelle on peut trouver :
- Des mots-clés
- Des valeurs de formulaire
- Des champs
- Des fonctions
- Des chaines
On peut définir une fréquence des relances qui sera utilisée pour calculer la durée entre 2 relances.
Si on définit plusieurs relances pour une tâche, elles doivent avoir des niveaux différents.
Plus le niveau de la relance est élevé, plus le temps d'attente doit être long.
Une relance de niveau 2 doit avoir un temps d'attente plus long qu'une relance de niveau 1
Exemple
- Relance de niveau 1 avec un temps d'attente de 10 mn et une fréquence de 3 mn
- Relance de niveau 2 avec un temps d'attente de 30 mn et une fréquence de 15 mn
A partir de 10 mn après le début de la tâche les relances de niveau 1 sont faites toutes les 3 mn
A partir de 30 mn après le début de la tâche la relance de niveau 1 est « inactive » et les relances de niveau 2 sont faites toutes les 15 mn
La tâche a débuté à 15h23
- A 15h33 relance de niveau 1
- A 15h36 relance de niveau 1
- A 15h39 relance de niveau 1
- A 15h42 relance de niveau 1
- A 15h45 relance de niveau 1
- A 15h48 relance de niveau 1
- A 15h51 relance de niveau 1
- A 15h53 relance de niveau 2 Fin des relances de niveau 1
- A 16h08 relance de niveau 2
- A 16h23 relance de niveau 2
- A 16h30 la tâche est réaliséeFin des relances de niveau 2
Au niveau des processus opérationnel, l'administrateur peut voir la date de la prochaine relance, ainsi que la date de la dernière relance réalisée.
Formulaire de tâche
Accès
- Zoom tâche de processus modèle bouton "Formulaire".
Permet pour chaque tâche, de définir les conditions de présence des champs dans le formulaire de saisie:
Init. (Donnée à initialiser) : si oui, les données vides seront initialisées en début de tâche. La fonction d'initialisation utilisée est celle définie au niveau du champ associée.
Aff. (Champ visible) : Précise si les données sont affichées dans le formulaire de saisie
Modif. (Donnée modifiables) : Précise si les données sont modifiables dans le formulaire de saisie
Oblig. (Donnée obligatoire) : Précise si la saisie de la donnée est obligatoire dans le formulaire de saisie
Champ à réinitialiser : disponible à partir de version X.4, permet de définir un champ à réinitialiser lors de la modification d'un champ. Dans l'exemple ci-dessous la modification du champ « datedeb » entraine la réinitialisation des champs « datefin » et « datefin2 »
Pour les tâches qui ne sont pas de type manuel seule l'option "à initialiser" peut être saisie.
"datedeb" on va réinitialiser le champ "datefin"
Un champ modifiable est automatiquement affiché
Un champ obligatoire est automatiquement affiché ET modifiable
Un champ non affiché ne peut être ni modifiable ni obligatoire
Les options "modifiable" et "obligatoire" n'ont pas d'impact sur des champs de type "Titre" ou "Séparateur"
Traitement Avant / après tâche
On peut aussi associer une fonction de traitement avant et après tâche.
Les fonctions (Traitement avant, et traitement après) doivent appartenir au module sptmctrl.dhop ET être référencées dans la table des fonctions (Accès Menu Processus : Fichiers / Fonction et procédure).
Elles sont définies pour un champ et une tâche.
Traitement avant tâche
Fonction de type "Initialisation"
Type initialisation
Module sptmctrl.dhop
Argument 1 Donnée à initialiser (passage par paramètre)
Argument 2Données saisies dans le champ paramètres du sous-groupe "Traitement avant tâche"
Dans le cas des tâches non manuelles : la fonction de traitement avant tâche sera exécutée en début de tâche même si la donnée n'est pas vide, et le cas échéant, après la fonction d'initialisation.
Dans le cas des tâches manuelles :
1er Usage : initialisation de champ
La fonction sera exécutée lors du passage de la tâche à l'état "à traiter".
Elle sera ré-exécutée au début du programme de saisie des formulaires.
Exemple :
Utilisation de la fonction maj_collaborateur
Pour récupérer le code User de la personne qui a réellement traité la tâche (même si un administrateur traite une tâche qui ne lui était pas affectée).
Si le traitement du formulaire est abandonné, on ré-exécute les traitements avant tâche : cela permet de remettre la valeur du collaborateur auquel est affecté la tâche dans les champs initialisés avec le mot clé "collaborateurTache". (Au cas on le traitement de la tâche sera effectué par un programme de traitement en masse des tâches manuelles)
Second usage : Mise à jour de données pour passage de paramètres
Traitement après tâche
Procédure de type "autre"
Les procédures "traitement après" sont lancées juste avant que l'état de la tâche passe à "fini". S'il existe plusieurs fonctions de type traitement après pour une même tâche, elles sont exécutées dans l'ordre croissant des champs.
Type autre
Module sptmctrl.dhop
Argument 1 Donnée liée (passage par paramètre)
Argument 2Données saisies dans le champ paramètres
Masque de formulaire
Avant de pouvoir utiliser un processus modèle il faut passer l'étape de génération du masque.
Bouton "Générer masque" du zoom processus modèle.
Le générateur de masque utilise un masque modèle (speemodmask.dhsp) et se base sur la définition des formulaires du processus pour générer les masques de saisie associés au processus.
Le nom du masque créé est formé du code processus et de la version. (ex acda_v1.dhof)
Il faut donc générer un masque chaque fois que l'on change la version du processus.
Traitement de tâche par formulaire de regroupement (A partir de la X.3)
Il est possible de créer des formulaires de regroupement de tâche, afin de permettre une validation rapide, de plusieurs tâches identiques.
Définition d'un regroupement de tâches
Menu / Processus / fichiers / Regroupement de tâches / définition des regroupements.
On peut associer des boutons d'accès (3 max) au regroupement.
Tâches du regroupement.
Les tâches du regroupement, peuvent être des tâches manuelles de différents processus, mais elles doivent avoir les mêmes options (Suites).
Données du regroupement
Les données affichées sur les regroupements peuvent être :
- Des champs du processus,
- Mes mots clés
- Des champs d'un enregistrement public chargé
Validation des tâches regroupées
Depuis le menu / Processus / Gestion des processus / Traitement des tâches regroupé
Il est possible de créer une entrée spécifique par code de regroupement, pour cela il faut faire une entrée au menu (en se basant sur l'entrée de validation des tâches regroupées) et préciser le nom du regroupement les paramètres.
Les tâches à valider sont présentées sous la forme d'un tableau.
Ils faut sélectionner les tâches que l'on veut traiter puis choisir l'option de traitement à effectué. Les options de traitement sont les suites manuelles définies au niveau de la tâche.
Traitement de tâche par formulaire WEB
Il est possible de rajouter dans les mails un lien vers un formulaire web de traitement de tâche.
Le formulaire web utilisera un Service Web DIVA pour traiter la tâche.
Les boutons du formulaires WEB correspondent aux suites de tâches manuelle de la tâche auquel il est lié.
Mise en place de l'application « FormulaireDeValidationDeTache »
L'application « FormulaireDeValidationDeTache » est livrée en standard dans le répertoire Divalto/Exemple.
Il faut déplacer le répertoire dans Divalto / Internet
Une fois le répertoire FormulaireDeValidationDeTache présent au niveau de la configuration de IIS, il faut faire un clic droit « convertir en application »
Mettre à jour l'URL au niveau du fichier /Divalto / internet / FormulaireDeValidationDeTache / WebServiceDivalUrl.txt
Mettre
http://localhost:8080/WebServiceDiva/webservicediva.asmx
pour une installation en local sur le port 8080
Paramètres du processus
Renseigner l'adresse du formulaire web de validation de tâche.
Dans notre exemple : « http://localhost:8080/FormulaireDeValidationDeTaches/?p= »
Et l'action Web Service Diva à exécuter pour traiter les tâches via un formulaire WEB.
L'action standard est « SYNCHRO_INFINITY_AGILEO »
Paramètres de la tâche envoi de mail
Renseigner la tâche que l'on veut traiter par formulaire web.
On retrouvera dans le formulaire WEB, un bouton, pour chaque suite « manuelle » de la tâche à traiter.
Dans le corps du mail ajouter le motcle à l'emplacement ou vous voulez retrouvez le lien dans le mail
Ex de mail avec lien vers formulaire Web
Paramètres de la tâche de validation
La tâche de traitement doit être une tâche manuelle
Avec des suites de type « Choix manuel »
Si le formulaire doit être validé par une personne qui n'est pas un utilisateur de Divalto on peut renseigner le champ « à réaliser par » de la tâche avec l'utilisateur « WEB ». Afin qu'aucun utilisateur Divalto ne puise valider la tâche.
Formulaire Web
On accède au formulaire web en cliquant sur le lien du mail.
Exemple de formulaire :
Après traitement (Click sur un des choix possibles)
Si on le traitement à déjà été effectué on obtient le message d'erreur suivant
Processus opérationnel
Un processus opérationnel est une instance de processus modèle. Il est toujours associé à un dossier et peut être associé à un établissement.
A la création d'un processus tout le paramétrage du processus modèle est repris. La version et le nom du masque associé sont également enregistrés dans le processus opérationnel. Lors de la vie du processus opérationnel il ne sera plus fait référence au processus modèle.
Attention : Une modification des formulaires du processus et donc du masque sans changement de version ne permettra plus traiter correctement les tâches manuelles d'un processus.
Méthode de création de processus
Par le menu
Par le menu : Gestion des processus / Création
Une entrée au menu Processus (Gestion des processus / Création ) permet de choisir l'établissement et le processus à créer. Le processus sera créer avec le dossier courant, le créateur sera system.user.
Cette méthode de création est généralement utilisée pour des processus qui ne sont liés à une action de l'ERP et dont la première tâche est une tâche manuelle (Demande de congés, d'achats).
En précisant le nom du processus modèle dans les paramètres, vous pouvez créer au menu, une entrée qui lancera automatiquement la création d'un processus (sans avoir à choisir de processus modèle)
Ex : Lancement direct d'un processus de demande d'achat ('acda') pour l'établissement 1
Par une "ACTION" Inifinty
Les "Actions" sont paramétrées dans le module Administration (Paramètres/Actions/Actions)
Les données passées en paramètres permettent l'initialisation des champs du formulaire, et la mise à jour des données de l'en-tête liés lors de la création du processus.
Si plusieurs données sont initialisées, les paramètres doivent être séparés par un double point-virgule ";;"
Cette méthode de création des processus est généralement utilisée pour des processus qui ne sont liés à une action de l'ERP (validation de commande, envoi de facture, Vérification de RIB) et dont l'appel est défini dans un programme Divalto.
il faut utiliser la fonction A5_Action_Generer_Action du module A5Pm000 pour traiter une action dans Divalto.
Si on a associé un Processus à cette action, cela lancera le processus, avec les paramètres configurés dans le zoom action.
Dans vos surcharges il est préférable d'appeler la fonction A5_Action_Generer_Action plutôt que de faire un appel direct à la fonction de création des processus opérationnels (SP_Generer_Processus_Ope_SQL). Ceci permet de changer le processus appelé ou les paramètres d'entrées sans modifier le code. IL suffit de modifier l'ACTION utilisée.
Proto : Function Int A5_Action_Generer_Action (Applic, ActionCod, Etb, Depot, Entite, modeManuel)
- Applic : Code applic associé à l'action à exécuter
- ActionCod : Code de l'action à exécuter
- Etb : Etablissement de rattachement du processus (facultatif, par défaut : ' ')
- Depot : Utilisé par une gestion de flash mais pas pour un lancement de processus mettre ' '
- Entite : Utilisé par une gestion de flash mais pas pour un lancement de processus mettre 0
- modeManuel : Mode de lancement manuel : 1 (= OUI) par défaut
Exemple
Appel de l'ACTION VALIDE_CDE rattachée à l'application 'DAV'
A5_Action_Generer_Action ('DAV', 'VALIDE_CDE', MZ.ETB, ' ', 0)
Initialisation des champs (paramètres de l'action)
Si les champs du processus doivent être initialisés par des enregistrements spécifiques :
Il faut déclarer ces enregistrements dans une surcharge du module sptm000 dans laquelle on définira la fonction Remplacer_Champ_specifique
Fichier du processus
Pour attacher un fichier au processus il faut définir un paramètre FicJoint et y associer le nom complet du fichier à attacher au processus créé
Cas des processus avec 1ère tâche de type manuelle et modeManuel = oui
Si l'appel est fait avec "origine" = 1 (manuelle) et que la première tâche est une tâche manuelle alors on ouvre directement le formulaire à remplir.
Autres cas
Dans tous les autres cas, la première tâche du processus est mise en état "à activer" ou "à traiter" si c'est une tâche manuelle.
A l'aide de la fonction de création des processus
Cette méthode doit être dans la mesure du possible remplacer par l'utilisation d'une action et de la fonction A5_Action_Generer_Action . Ceci permet de changer le processus appelé ou les paramètres d'entrées sans modifier le code (il suffit de modifier l'ACTION utilisée) et aucune compilation n'est requise.
La fonction SP_Generer_Processus_Ope_SQL du module sppm000.dhop permet de créer un processus depuis un module Infinity.
Proto : Function int SP_Generer_Processus_Ope_SQL(Proccod, Origine, &ProcNo, Param, User, dos, etb, AnnulSt)
ProcCod : le code du processus à exécuter (obligatoire)
Origine : 1 Manuelle, 2 Automatique, 3 scrutateur, 4 Autre (obligatoire)
- Mettre 1 (manuelle) pour forcer la saisie directe du formulaire de la première tâche
ProcNo : N° du processus créé (obligatoire, Passage par adresse)
Param: Chaine de paramètre permettant l'initialisation de certains champs du processus (facultative)
User : Créateur du processus (facultatif, par défaut : Systèm.user)
Dos : Dossier de rattachement du processus (facultatif, par défaut : MZ.Dos)
Etb : Etablissement de rattachement du processus (facultatif, par défaut : ' ')
AnnulSt : Si vrai, l'utilisateur a la possibilité d'annuler le processus lors de la saisie du formulaire de la première tâche (facultatif, par défaut : false). Utiliser uniquement dans le cas où Origine = 1 (Manuelle)
Retour :
Renvoie 0 si le processus a été créé sans erreur
Renvoie 1 si on n'a pas pu créer le processus modèle non renseigné ou inexistant
Renvoie 2 si on n'a pas pu créer le processus modèle n'a pas le statut 'encours'
Renvoie 3 si on n'a pas pu créer le processus Le contrôle a renvoyé une erreur
Renvoie 4 si on n'a pas pu créer le processus pb en création de processus
Renvoie 5 si on n'a pas pu créer le processus pb en création de tâche
Renvoie 6 si on n'a pas pu créer le processus pb en Mise à jour de Numéro de tâches
Cas des processus avec 1ère tâche de type manuelle et origine de type "manuelle"
Si l'appel est fait avec "origine" = 1 (manuelle) et que la première tâche est une tâche manuelle alors on ouvre directement le formulaire à remplir. Si on laisse le flag AnnulSt à "faux", le processus ne pourra pas être annulé lors de cette 1ère saisie
Autres cas
Dans tous les autres cas, la première tâche du processus est mise en état "à activer" ou "à traiter" si c'est une tâche manuelle.
Par un processus
Dans un processus par une tâche de type "lancement processus"
Le scrutateur
Le scrutateur est le moteur de Processus, c'est lui qui permet l'exécution et l'enchaînement des tâches.
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'.
Lancement du scrutateur
Par le menu Processus / Utilitaires / Scrutateur
Par le menu Processus / Utilitaires / Scrutateur avec trace (pour une gestion des logs dans la fenêtre de trace et dans le fichier logprocessus.log) : à partir de la version X.3 pack 213b
A la question programme (lancer le programme spppwebscru.dhop)
Par un service DIVA
Attention : prendre un utilisateur avec les droits 'HIP' pour lancer le scrutateur. Sinon on ne pourra pas effectuer de changement de droits aux profits du créateur du processus (procuser) lors des tâches de type programme batch
Une réservation spécifique empêche le lancement simultané de plusieurs processus. La chaîne de réservation est " DSP_PROCESSUS_SCRUTATEUR".
Trace (avant la version X.3 pack 213b)
Les actions du scrutateur sont enregistrées :
- Dans la fenêtre de trace si le lancement a été fait par le menu
- Dans le fichier logprocessus.log du répertoire DivlatoLog
Trace (à partir de la version X.3 pack 213b)
Les actions du scrutateur sont enregistrées uniquement si le lancement du scrutateur est fait avec le paramètre 'TRACE' :
- Utilisation de l'entrée au menu « Scrutateur avec trace »
Lancement par un Service Diva
Exemple de chaîne à rajouter dans le fichier DhsServices.txt pour lancement du scrutateur par un Service Diva :
Attention : Le mot de passe de ce compte doit être le même sous Windows et pour Harmony.
Le fichier DhsServices.txt est accessible depuis Harmony (Paramétrages / Services Diva)
En version X, un scrutateur lancé en mode service DIVA ne consomme qu'une licence « IUOP »
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"
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 processus terminés : selon paramétrage de la durée conservation.
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 (5000) il sera forcé à 1 mn (60000)
Un fichier de log logprocessus.txt (dans le répertoire « divaltolog »), listes les actions exécutées par le scrutateur.
Lorsqu'un processus rencontre un problème grave il est mis à l'état "erreur" et un processus erreur est lancé.
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