Annuler un workflow

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 2 minutes de lecture
  • L’annulation d’un workflow arrête l’exécution du workflow et définit l’état du contexte du workflow sur Annulé. Pour annuler un workflow en cours d’exécution, vous pouvez utiliser le script cancelContext(context). Vous pouvez définir un script onCancel pour nettoyer les activités de workflow non résolues.

    Avant de commencer

    Rôle requis : admin ou workflow_admin

    Pourquoi et quand exécuter cette tâche

    L’annulation d’un workflow tente d’arrêter le workflow de manière appropriée en injectant une commande d’annulation dans le moteur de workflow.

    Procédure

    1. Accédez à la Tous > Workflow > Contextes actifs.
    2. Sélectionnez un enregistrement de contexte de workflow.
    3. Configurez la mise en page du formulaire pour ajouter le champ de script On-cancel au formulaire.
      Pour en savoir plus sur la configuration de la mise en page des formulaires, reportez-vous à la section Configuring the form layout.
    4. Sélectionnez le lien connexe Annuler .
      Une confirmation s’affiche.
      Annuler la confirmation
    5. Cliquez sur OK.
      Le moteur de workflow tente d’annuler le workflow de manière appropriée.
      Attendre l'annulation

      Si le workflow ne répond pas à la commande cancel, l’option Forcer l’annulation s’affiche.

      Forcer l'annulation
    6. Cliquez sur Forcer l’annulation pour interrompre le thread que le workflow exécute activement, ou cliquez sur Continuer à attendre pour continuer à attendre que le workflow s’annule correctement.
      Avertissement :
      Dans la mesure du possible, autorisez l’annulation appropriée d’un workflow. Forcer l’annulation d’un workflow peut laisser les workflows et les scripts connexes dans un état non résolu. Vous pouvez utiliser un script on-cancel pour nettoyer les artefacts non résolus d’un workflow annulé.

    Annuler un workflow avec le script cancelContext(context)

    Pour annuler un workflow en cours d’exécution, vous pouvez utiliser le script cancelContext(context). Ce script peut être utile lorsqu’un workflow doit être annulé en réponse à un événement ou lorsqu’un utilisateur doit annuler manuellement un workflow.

    Avant de commencer

    Rôle requis : admin

    Pourquoi et quand exécuter cette tâche

    Pour en savoir plus, voir Workflow - cancelContext(GlideRecord context).

    Définir un script on-cancel

    L’annulation d’un workflow peut laisser des enregistrements ou des scripts à l’état non résolu. Par exemple, l’annulation d’un workflow de catalogue de services peut laisser des éléments de catalogue dans le panier de l’utilisateur demandeur. Un administrateur peut spécifier un script On-cancel qui s’exécute lorsque le workflow passe à l’état Annulé. Ce script peut notifier les utilisateurs, consigner des informations ou résoudre l’état de tous les scripts exécutés dans le cadre d’une activité de workflow. La sys_id du contexte du workflow est disponible dans ce script à l’aide de la variable context_sys_id.

    Pourquoi et quand exécuter cette tâche

    Les scripts On-cancel s’exécutent de manière asynchrone à partir du champ d’application global. La charge de travail de votre instance détermine le moment où le système planifie et exécute le script on-cancel.
    Important :
    Étant donné que le système exécute des scripts on-cancel à partir du champ d’application global, il ne peut pas appeler ni exécuter de script includes inclus dans le champ d’application.

    Procédure

    1. Accédez à la Tous > Workflow > Versions des workflows.
    2. Sélectionnez une version de workflow que vous avez extraite.
      Les versions de workflow qui ne sont pas extraites ne sont pas modifiables.
    3. Modifiez le champ Script on-cancel .
      Vous devrez peut-être configurer le formulaire pour ajouter ce champ.
    4. Cliquez sur Mettre à jour.

    Exemple

    Cet exemple de script ajoute un commentaire à un enregistrement d’élément demandé [sc_req_item] indiquant que le workflow de cette demande a été annulé.
    var grContext = new GlideRecord("wf_context"); 
    grContext.get(context_sys_id); 
    var grReq = new GlideRecord("sc_req_item");
     
    // The current record may not exist, make sure it exists before modifying it.
    if (grReq.get(grContext.id)) {
        grReq.comments = "The workflow processing this item was Canceled. Contact your system administrator for further information.";
        grReq.update();
    }