- Notes de publication
- Démarrage
- Paramétrage et configuration
- Projets d'automatisation
- Dépendances
- Types de workflows
- Sequences
- Organigrammes
- Machines à états
- Gestionnaire global d'exceptions
- Comparaison de fichiers
- Meilleures pratiques d'automatisation
- Intégration du contrôle de code source
- Débogage
- L'outil de diagnostic (Diagnostic Tool)
- Analyseur de workflow
- À propos de l'analyseur de workflow
- ST-NMG-001 - Convention d'affectation de noms des variables
- ST-NMG-002 - Convention d'affectation de noms des arguments
- ST-NMG-004 - Duplication du nom complet
- ST-NMG-005 - La variable remplace une autre
- ST-NMG-006 - La variable remplace l'argument
- ST-NMG-008 - Longueur de variable dépassée
- ST-NMG-009 - Ajouter un préfixe aux variables DataTable
- ST-NMG-011 - Ajouter un préfixe aux arguments Datatable
- ST-NMG-012 - Valeurs par défaut de l'argument
- ST-NMG-016 : longueur d'argument dépassée
- ST-DBP-002 - Nombre élevé d'arguments
- ST-DBP-003 - Bloc d'interception vide
- ST-DBP-007 - Plusieurs couches de l'organigramme
- ST-DBP-020 - Propriétés de sortie non définies
- ST-DBP-023 : Workflow vide
- ST-DBP-024 - Vérification de l’activité de persistance
- ST-DBP-025 - Condition préalable à la sérialisation des variables
- ST-DBP-026 - Utilisation de l’activité Délai
- ST-DBP-027 - Pratiques exemplaires de persistance
- ST-DBP-028 - Condition préalable à la sérialisation des arguments
- ST-MRD-002 - Valeurs par défaut des noms d'activités
- ST-MRD-004 - Activités inaccessibles
- ST-MRD-005 - Séquences redondantes
- ST-MRD-007 - Clauses If imbriquées
- ST-MRD-008 - Séquence vide
- ST-MRD-009 - Activités profondément imbriquées
- ST-MRD-011 - Utilisation de la ligne d'écriture
- ST-MRD-017 - Incomplet si (Incomplete If)
- ST-USG-005 - Arguments d'activité codée en dur
- ST-USG-009 - Variables inutilisées
- ST-USG-010 - Dépendances inutilisées
- ST-USG-014 - Restrictions sur les paquets (Package Restriction)
- ST-USG-020 - Nombre minimum de messages consignés
- ST-USG-024 - Non utilisé, sauvegardé pour plus tard (Unused Saved for Later)
- ST-USG-025 - Utilisation abusive de la valeur enregistrée (Saved Value Misuse)
- ST-USG-026 - Restrictions d'activité (Activity Restrictions)
- ST-USG-027 - Packages requis
- Variables
- Arguments
- Noms d'espace importés
- Flux de contrôle
- Réf. d’objets
- Journalisation
- L'outil de migration MiseAlEchelleCoordonnees (ScaleCoordinates)
- Outil ScreenScrapeJavaSupport
- StudioPro
- Extensions
- Résolution des problèmes
- Internet Explorer x64
- Problèmes d'interopérabilité avec Microsoft Office
- Identification des éléments d'IU dans PDF avec options d'accessibilité
- Identification des éléments d'IU après les mises à jour de Windows
- Applications JxBrowser
- Surveillance des événements utilisateur
- Java dans App-V
- Prise en charge et limitations de Microsoft App-V
- Résolution des problèmes Citrix
Le Gestionnaire global d'exceptions (Global Exception Handler) est un type de workflow conçu pour déterminer le comportement du projet lorsque vous rencontrez une erreur d'exécution. Seul un Gestionnaire global d'exceptions (Global Exception Handler) peut être défini par projet d'automatisation.
Le Gestionnaire global d'exceptions (Global Exception Handler) n'est pas disponible pour les projets de bibliothèques, uniquement les processus.
The Global Exception Handler has two arguments, that should not be removed.
Le premier argument est errorInfo avec la direction Entrée (In) et il stocke les informations sur l'erreur générée et le workflow qui a échoué. Le niveau d'erreur à consigner peut être défini dans l'activité Log Message.
Utilisez la propriété ActivityInfo de errorInfo pour obtenir le nom de l'activité qui a levé l'exception et affichez-la dans le panneau Sortie (Output).
Le second argument, result comprend la direction Sortie (Out) et il est utilisé pour déterminer le comportement suivant du processus lorsqu'il rencontre une erreur. Les valeurs suivantes peuvent être affectées à l'argument result :
-
Continuer (Continue) : l'exception est levée à nouveau.
-
Ignorer (Ignore) : l'exception est ignorée et l'exécution passe à l'activité suivante.
-
Réessayer (Retry) : l'activité qui a levé l'exception est retentée. Utilisez la méthode
RetryCountdeerrorInfopour compter le nombre de nouvelles tentatives de l'activité. -
Abandonner (Abort) : l'exécution s'arrête après l'exécution du Gestionnaire global d'exceptions (Global Exception Handler) actuel.
Remarque :Tout workflow peut être marqué comme un Global Exception Handler dans Studio, à l'exception des projets de bibliothèque et de
Main.xaml.
Traitement des erreurs lors du débogage
Lorsqu'une exception est détectée lors du débogage, l'activité défaillante est mise en surbrillance, l'exécution est suspendue et le type et les détails de l'exception sont mentionnés dans les panneaux Variables locales (Locals) et Pile d'appels (Call Stack).
Debugging actions like Continue, Stop, Retry, Ignore, Restart and Slow Step are available in the ribbon. Ignore is used for continuing the execution from the next activity.
Le bouton Réessayer (Retry) réessaie d'exécuter l'activité actuelle sans l'intervention du Gestionnaire global d'exceptions. L'action Continuer (Continue) exécute le Gestionnaire global d'exceptions et prend en compte les valeurs auparavant choisies pour l'argument result, Continuer (Continue), Ignorer (Ignore), Réessayer (Retry) ou Abandonner (Abort).
Lorsque vous utilisez le Global Exception Handler avec un projet qui inclut Essayer/Capturer, veillez à regrouper les activités dans une Sequence à l'intérieur du conteneur Essayer.Sinon, le Global Exception Handler ne s'exécute pas.
Dans le cas d'activités imbriquées, le Gestionnaire global d'exceptions (Global Exception Handler) s'exécute pour chaque activité de la pile d'appels. En revanche, il n'exécute pas d'activités directement encapsulées dans Try Catch, sauf si elles sont contenues dans une activité.
Exemple d'utilisation du Gestionnaire global d'exceptions
L'exemple suivant montre le comportement du projet lorsqu'une exception est levée lors de l'exécution.
Le projet d'automatisation est défini pour cliquer à l'intérieur d'un document Bloc-notes vide et enregistré, taper du texte et fermer l'application, mais pas avant de cliquer sur le bouton Enregistrer pour l'enregistrer.
Pour contrôler le comportement du workflow en cas d'erreur, le Gestionnaire global d'exceptions (Global Exception Handler) retente l'activité trois fois, puis abandonne avec un message d'erreur.
Création du workflow
-
Create a Blank Process by following the steps in the Creating a Basic Process page.
-
Ouvrez Bloc-notes et enregistrez un document sur votre machine.
-
From the Activities panel, drag a Type Into activity to the Designer panel. The activity is automatically added to a Sequence.
-
Dans l'activité Type Into, cliquez sur Indiquer à l'écran (Indicate on screen). Studio réduit et permet de cliquer à l'intérieur de la fenêtre Bloc-notes pour créer le sélecteur. Dans le champ de texte, entrez le texte souhaité entre guillemets.
-
From the Activities panel, add a Send Hotkey activity to the workflow. Indicate the Notepad window, and select Ctrl from the activity, type in s in the Key field. This saves the Notepad document after the text was typed in.
-
From the Activities panel, add a Close Application activity to the workflow. Indicate the Notepad window using Indicate on screen. The resulted workflow should look like this:
Ajout d'un Gestionnaire global d'exceptions
-
Dans l'onglet Conception (Design) faisant partie du Ruban (Ribbon), sélectionnez Nouveau (New) > Gestionnaire global (Global Handler). La fenêtre Nouveau gestionnaire global (New Global Handler) s'ouvre. Entrez un Nom (Name) pour le gestionnaire et enregistrez-le dans le chemin du projet. Cliquez sur Créer (Create), un Gestionnaire global d'exceptions (Global Exception Handler) est ajouté au projet d'automatisation.
-
Dans l'onglet Variables (Variables), créez une variable
Int32nomméeretryCount, définissez son étendue sur le Gestionnaire global d'exceptions (Global Exception Handler) entier, laissez le champ de valeur Par défaut (Default) vide. La variable stocke le nombre de nouvelles tentatives et augmente le nombre de1chaque fois qu'une erreur se produit. -
Créez une variable String nommée
failedActivityet définit son étendue sur le workflow entier. Cette variable stocke le nom de l'activité défaillante et la désigne dans le panneau Sortie (Output). -
From the Activities panel, add an Assign activity below the Log Error in the Global Handler sequence. Add the
retryCountto the activity and assign it theerrorInfo.RetryCountexpression, which counts the number of times the exception is thrown. -
Ajoutez une autre activité Assign dans laquelle affecter l'expression
errorInfo.ActivityInfo.Nameà la variablefailedActivity. À ce stade, le workflow doit ressembler à ceci : -
Add an If activity to the workflow. Set the Condition to
retryCount < 3to limit the number of retries to 3. -
Dans l'élément activité Assign de la catégorie Then, affectez
ErrorAction.Retryà la variableresultpour que le Gestionnaire global d'exceptions (Global Exception Handler) retente l'activité qui a levé l'exception. -
Dans la catégorie Else, affectez
ErrorAction.Abortàresultpour que le Gestionnaire global d'exceptions (Global Exception Handler) abandonne l'exécution lorsque la condition est remplie. L'activité If doit ressembler à ceci :
Lorsque le Gestionnaire global d'exceptions (Global Exception Handler) rencontre une exception, il consigne le nom de l'activité défaillante et commence à relancer l'activité trois fois. S'il rencontre la même exception chaque fois et que le nombre de nouvelles tentatives atteint 3, l'exécution est abandonnée au niveau de l'activité qui a lancé l'exception.
Si lors d'une nouvelle tentative, une exception est rencontrée, l'exécution du workflow continue et le Gestionnaire global d'exceptions (Global Exception Handler) n'intervient pas.