Approbation : groupe activité du workflow

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 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 de 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 effectuées par les approbateurs et des conditions d’approbation spécifiées dans les champs En attente 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 : regrouper les variables d’entrée d’activité
    Champ Description
    Approbation : groupe quand

    Spécifiez 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 dans les 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é bascule 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 approuvé (voir ci-dessous pour savoir comment un rejet est géré).
    • Approbation de n’importe quel groupe : N’importe quel 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.
    • Approbation de tous les groupes : Tous les utilisateurs de tous les groupes doivent approuver pour que l’activité se termine avec un résultat approuvé (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 d’un utilisateur de chaque groupe est utilisé pour indiquer l’état de l’approbation de 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 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 approuvé ou rejeté.
    • Condition basée sur le script : Chaque fois qu’un utilisateur approuve ou rejette, le script d’approbation est appelé pour déterminer si l’activité doit être terminée.
    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 de groupe à l’aide du code suivant (pour obtenir des éléments comme 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 les calculs. Par exemple, si seulement la moitié des approbations sont requises :
    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 rejeté.
    • Attendre les autres réponses avant de décider : Attendez d’avoir 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 n’importe qui, une seule approbation entraîne l’achèvement de l’activité avec un résultat approuvé, même si un ou plusieurs utilisateurs refusent.
    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 façon 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 (comme la fin du jour ouvrable suivant).
    • 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

    Apparaît uniquement lorsque la date d’échéance basée sur est définie sur 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 Champ de date/heure ou de durée

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

    S’affiche uniquement lorsque l’option 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 une planification est spécifiée, la durée sera prise en considération uniquement pour les heures spécifiées dans la planification. Par exemple, si la durée est de 2 heures et que le workflow commence à 16h00 selon un calendrier allant de 8h à 17h00, il se termine à 9h00 le lendemain. Les options sont les suivantes :
    • Planification de ce workflow : La planification utilise la date et l’heure du contexte du workflow, ainsi qu’un fuseau horaire 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.
    • Champ de planification : Le calendrier utilise une valeur provenant 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 Un calendrier 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.

    Champ de date et heure ou de durée pour le calendrier 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.
    • Fuseau horaire spécifique :Fuseau horaire spécifique que vous choisissez dans une liste de choix.
    • Champ de fuseau horaire :Champ de fuseau horaire pour suivre la durée 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.

    Champ de date et heure ou de durée pour le calendrier 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 sur une liste d’ID de groupe séparés par des virgules ou sur un tableau d’ID de groupe à ajouter en tant que groupes d’approbateurs. 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 font 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é Événement ou condition qui autorise une approbation ignorée.

    États

    L’état de l’activité indique au moteur de workflow ce qu’il doit faire de l’activité.
    Tableau 3. Approbation : états des activités des groupes
    É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.