Approbation : activité du workflow de groupe

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 9 minutes de lecture
  • L’activité Approbation - Groupe crée des enregistrements d’approbation pour chaque membre d’un groupe spécifié.

    Remarque :
    Cette activité est uniquement disponible lorsque le workflow s’exécute sur une table qui étend la tâche.

    L’approbation de groupe est approuvée ou rejetée en fonction des approbations de l’utilisateur, selon la logique spécifiée dans le champ Attendre .

    Résultats

    Le concepteur de workflow peut affecter une valeur de résultat à l’aide d’activity.result à partir d’un champ de script de l’activité. Par défaut, la valeur de résultat est la disposition d’approbation finale. Cette disposition dépend des actions d’approbation prises par les approbateurs et des conditions d’approbation spécifiées dans les champs Attendre ou Quand quelqu’un refuse . Les valeurs de résultat possibles sont les suivantes :
    • Approuvé
    • Rejeté
    • Supprimé
    • Annulé

    Variables d’entrée

    Les variables d'entrée déterminent le comportement initial de l'activité.

    Tableau 1. Approbation : variables d’entrée d’activité de groupe
    Champ Description
    Approbation – Groupe quand

    Indiquez quand cette activité génère un enregistrement d’approbation de groupe.

    Condition Conditions qui, si elles sont réunies, entraînent la génération de l’approbation du groupe. Si les conditions ne sont pas réunies, l'approbation est ignorée.
    Approbation : approbateurs de groupe

    Spécifiez les groupes dont l’approbation sera demandée.

    Groupes Groupes dont l'approbation sera demandée.

    Pour modifier ce champ, cliquez sur l’icône de verrouillage. Pour sélectionner des groupes spécifiques par leur nom, utilisez la liste de recherche. Pour sélectionner des groupes à partir des valeurs de champ sur l’enregistrement en cours lors de l’exécution, cliquez sur l’icône d’arborescence.

    Chaque membre du groupe se verra attribuer un enregistrement d’approbation.

    Si aucun groupe n’est sélectionné, l’activité définit automatiquement l’approbation sur Approuvé.

    Approbation : condition de groupe

    Spécifiez comment l’activité décide d’approuver ou de rejeter l’approbation du groupe, en fonction des réponses envoyées par les membres du groupe.

    Attendre
    Choix entre différentes logiques d’approbation pour déterminer quelles approbations ou quels rejets entraînent l’acceptation ou le refus de l’approbation de l’activité. Les options sont les suivantes :
    • Une approbation de chaque groupe : N’importe quel utilisateur de chaque groupe peut approuver et la première approbation de chaque groupe entraîne la fin de l’activité avec un résultat d’approbation (voir ci-dessous pour savoir comment un rejet est géré).
    • Approbation de n’importe quel groupe : Tout utilisateur de n’importe quel groupe peut approuver et la première approbation de n’importe quel groupe entraîne la fin de l’activité avec un résultat d’approbation.
    • Une approbation de tous les membres de tous les groupes : Tous les utilisateurs de tous les groupes doivent approuver pour que l’activité se termine avec un résultat d’approbation (voir ci-dessous pour savoir comment un rejet est géré).
    • Première réponse de chaque groupe : La première approbation ou le premier rejet de n’importe quel utilisateur de chaque groupe est utilisé pour indiquer l’état de l’approbation du groupe (voir ci-dessous pour savoir comment un rejet est géré).

      Indiquer ce qui se passe quand un utilisateur quelconque rejette la demande d’approbation. Les options sont les suivantes :

    • Rejeter l’approbation : Terminer immédiatement l’activité avec un résultat de rejeté.
    • Première réponse de n’importe quel groupe : La première approbation ou le premier rejet d’un utilisateur d’un groupe entraîne la fin de l’activité avec un résultat d’approbation ou de rejet.
    • Condition basée sur script : Chaque fois qu’un utilisateur approuve ou rejette l’activité, le script d’approbation est appelé pour déterminer si l’activité doit se terminer.
    Script d’approbation

    S’affiche uniquement lorsque l’option Attendre est définie sur Condition basée sur script.

    Si la variable Attendre est définie sur Condition basée sur script , ce script est appelé pour déterminer comment gérer une approbation ou un rejet. Le script doit définir la réponse de variable sur Approuvé ou Rejeté pour indiquer l’état global de cette approbation.

    Ce script est chargé de définir l’état d’approbation de chaque groupe faisant partie de cette activité d’approbation avant de renvoyer l’état d’approbation global pour tous les groupes.

    Lorsqu’elles sont appelées, les variables suivantes sont disponibles pour le script pour tous les groupes qui font partie de cette activité d’approbation :

    counts.total = total number of groups that are part of this approval
                      counts.approved = # of groups that approved so far
                      counts.rejected = # of groups that rejected so far
                      counts.requested = # of groups that are pending approval
                      counts.not_requested = # of groups that are not pending approval
                      counts.not_required = # of groups that approval is not required
    Et pour chaque groupe :
    groups[group_id].total = total number of users that are part of this group's approval
                        groups[group_id].approved = # of users that approved so far
                        groups[group_id].rejected = # of users that rejected so far
                        groups[group_id].requested = # of users that are pending approval
                        groups[group_id].not_requested = # of users that are not pending approval
                        groups[group_id].not_required = # of users that approval is not required
                        groups[group_id].approvalIDs[state] = array of user ids that are at the specified approval state
    Remarque : itérez les groupes à l’aide de :
    for (var id in groups) {
                        var group = groups[id];
                        ... group.total ...
                        }
    Remarque : obtenez l’objet du groupe à l’aide du code suivant (pour obtenir des éléments tels que le nom du groupe itéré) :
    var objGroup = fncGetGroupObj(id);
                        var strGroupName = objGroup.name;
                        
                        function fncGetGroupObj(sidGroupApproval)
                        {
                        var objGroupApproval = new GlideRecord('sysapproval_group');
                        objGroupApproval.get(sidGroupApproval);
                        
                        var objGroup = new GlideRecord('sys_user_group');
                        objGroup.get(objGroupApproval.assignment_group.sys_id);
                        
                        return objGroup;
                        }
    Les scripts d’approbation permettent également des calculs. Par exemple, si seulement la moitié des approbations est requise :
    if (counts.approved/counts.total > .49) {
                        answer = 'approved';
                        }
                        else if (counts.rejected/counts.total > .50) {
                        answer = 'rejected';
                        }
    Quand quelqu’un refuse
    Choix entre différentes logiques d’approbation pour déterminer quels rejets entraînent le rejet de l’approbation de l’activité. Les options sont les suivantes :
    • Rejeter l’approbation : Terminer immédiatement l’activité avec un résultat de rejeté.
    • Attendez les autres réponses avant de décider : Attendez d’obtenir d’autres réponses avant de prendre une décision d’approbation ou de rejet. Cela permet aux utilisateurs de changer d’avis jusqu’à ce qu’une décision soit prise.
    Remarque :
    Si l’option Attendre est définie sur Approbation par tout le monde, une seule approbation entraîne l’arrêt de l’activité avec un résultat d’approbation, même en cas de refus d’un ou de plusieurs utilisateurs.
    Approbation – Calendrier de groupe

    Spécifier la manière dont le workflow calcule la date de démarrage prévue et la date d’échéance de l’enregistrement d’approbation. Une fois que vous avez effectué une sélection pour « Date d’échéance basée sur » et « Calendrier basé sur », les champs appropriés s’afficheront.

    Date d’échéance basée sur Sélectionnez la manière dont le workflow détermine la durée, la date d’échéance et le calendrier de la tâche.
    • Durée spécifiée par l’utilisateur : La durée est basée sur une valeur spécifiée par l’utilisateur.
    • Durée relative : La durée est calculée à partir d’une durée relative (par exemple, la fin du jour ouvrable suivant).
    • Un champ de date/heure ou de durée : La durée est basée sur la valeur d’un champ sur l’enregistrement actuel.
    • Script: La durée est renvoyée par un script.
    Durée

    S’affiche uniquement lorsque la date d’échéance basée sur est définie sur Durée spécifiée par l’utilisateur

    Nombre spécifique de jours et d’heures.
    Durée relative

    S’affiche uniquement lorsque la date d’échéance basée sur est définie sur Une durée relative

    Nombre général et durée des jours ouvrables.
    Champ de date d’échéance

    S’affiche uniquement lorsque la date d’échéance basée sur est définie sur un champ de date/heure ou de durée

    Le champ de date/heure ou de durée.
    Script de date d’échéance

    S’affiche uniquement lorsque la date d’échéance basée sur est définie sur Script

    Script qui définit « réponse » sur le nombre de secondes de la durée.
    Calendrier basé sur Calendrier de base que le minuteur utilise pour compter les heures de travail. Si un calendrier est spécifié, la durée ne sera prise en compte que pour les heures spécifiées dans le calendrier. Par exemple, si la durée est de 2 heures et que le workflow commence à 16h00 selon un calendrier de 8h00 à 17h00, il se termine à 9h00 le lendemain. Les options sont les suivantes :
    • Planification de ce workflow : Le calendrier utilise la date, l’heure et un fuseau horaire de contexte de workflow facultatif basé sur la valeur.
    • Un calendrier spécifique : Le calendrier utilise une planification prédéfinie et un fuseau horaire facultatif basé sur la valeur.
    • Un champ de planification : Le calendrier utilise une valeur d’une table et un fuseau horaire facultatif basé sur la valeur.
    Calendrier

    S’affiche uniquement lorsque l’option Calendrier basé sur est définie sur Une planification spécifique

    La planification prédéfinie à partir d’une liste.
    Champ de calendrier

    S’affiche uniquement lorsque l’option Calendrier basé sur est définie sur Un champ de calendrier.

    Un champ de date et heure ou de durée pour le calendrier, qui est associé à la table. Les champs valides apparaissent en bleu dans la boîte de dialogue Sélectionner l’élément dans une arborescence.
    Fuseau horaire basé sur Fuseau horaire pour le calcul de la durée. Le fuseau horaire peut être basé sur :
    • Aucun fuseau horaire : Faire défaut. Le workflow utilise le fuseau horaire GMT.
    • Un fuseau horaire spécifique : Un fuseau horaire spécifique que vous choisissez dans une liste de choix.
    • Champ de fuseau horaire : Un champ de fuseau horaire pour suivre la durée à partir d’un champ sur le formulaire.
    Fuseau horaire

    S’affiche uniquement lorsque l’option Fuseau horaire basé sur est définie sur Un fuseau horaire spécifique

    .
    Sélectionnez le fuseau horaire souhaité dans la liste de choix.
    Champ de fuseau horaire

    S’affiche uniquement lorsque l’option Fuseau horaire basé sur est définie sur Un champ de fuseau horaire.

    Un champ de date et heure ou de durée pour le calendrier, qui est associé à la table. Les champs valides apparaissent en bleu dans la boîte de dialogue Sélectionner l’élément dans une arborescence.
    Approbation : avancée

    Si vous le souhaitez, écrivez un script pour déterminer des utilisateurs supplémentaires auxquels demander des approbations.

    Avancé Cochez cette case pour écrire un script destiné à déterminer des utilisateurs supplémentaires auxquels demander des approbations. Utilisez le script Groupes supplémentaires pour personnaliser les approbations de groupe.
    Script pour groupes supplémentaires
    Si la case à cocher Avancé est sélectionnée, ce script est appelé pour déterminer les approbations de groupe supplémentaires éventuelles à créer. Le script doit définir la réponse de variable à une liste d’ID de groupe séparés par des virgules ou à un tableau d’ID de groupe à ajouter en tant que groupes d’approbation. Par exemple :
    answer = [];
           answer.push('id1');
           answer.push('id2');

    Conditions

    Les conditions suivantes déterminent quelle transition s'effectue après cette activité.
    Remarque :
    Les activités d’approbation s’exécutent en tant qu’utilisateur dont les actions correspondent aux conditions d’approbation ou de rejet que le workflow attendait et fait avancer le workflow.
    Tableau 2. Approbation - Conditions d’activité de groupe
    Condition Description
    Approuvé Les utilisateurs des groupes ont approuvé la demande en fonction des règles d’attente .
    Rejeté Les utilisateurs des groupes ont rejeté la demande en fonction des règles d’attente .
    Erreur L'événement ou la condition qui génère une erreur.
    Ignoré L’événement ou la condition qui autorise une approbation ignorée.

    États

    L’état de l’activité indique au moteur de workflow ce qu’il doit faire avec l’activité.
    Tableau 3. Approbation : états d’activité du groupe
    État Description
    Exécution Le moteur de workflow démarre la fonction exécuter de l’activité.
    En attente Le moteur de workflow ignore l'activité jusqu'à ce qu'un événement spécifique pour relancer l'activité soit déclenché.
    Terminé L'activité s'est terminée. Affichez la valeur de résultat pour connaître le résultat de l'activité.
    Annulé Cette activité, ou le workflow qui contient cette activité, a été annulée.
    Erreur Une erreur JavaScript s’est produite. Examinez les journaux pour connaître les détails de l'erreur.