Tentative-Récupération
Cette étape vous permet d'effectuer une activité et de détecter une ou plusieurs exceptions qui pourraient résulter de l'activité. L'étape consiste en un certain nombre de branches divisées en trois parties.
- Branche Tentative : La partie supérieure qui spécifie une activité à effectuer.
- Branches Récupération : Spécifie une ou plusieurs exceptions qui peuvent être lancées lorsque l'activité dans la branche Tentative est exécutée, et indique l'activité à effectuer dans ce cas. Vous pouvez disposer de plusieurs branches Récupération et chacune d'entre elles peut énumérer un nombre quelconque d'exceptions qui sont traitées de la même manière.
- Branche finalement : Spécifie une activité à effectuer. Cette branche est toujours exécutée en dernier, quels que soient les résultats de l'exécution de Tentative et Récupération.
Des exceptions peuvent être émises soit explicitement au moyen de Signaler ou parce que d'autres étapes rencontrent des erreurs lors de leur exécution. Les exceptions émises s'appellent des Exceptions prédéfinies.

Propriétés
- Nom
- Contient le nom de l'étape.
- Tentative
- Indiquez l'activité à exécuter. Si une exception est attendue à la suite d'une activité, indiquez-la dans le bloc Tentative.
- Exceptions
- Spécifiez une ou plusieurs exceptions que vous comptez intercepter.
Chaque branche Récupération est constituée d'une liste d'exceptions et, à droite de celle-ci, de l'activité à effectuer si l'exécution de la branche Tentative émet une de ces exceptions.
Chaque exception reçoit un nom correspondant au nom d'exception utilisé dans une étape Signaler ou à un nom d'exception prédéfini.
Lorsqu'une exception est ajoutée ou éditée dans une branche Récupération, l'éditeur propose les exceptions qui peuvent être émises dans la branche Tentative et qui ne sont pas encore listées dans une branche Récupération.
- Finalement
- Spécifie l'activité à effectuer juste avant de quitter l'étape Tentative-Récupération.
Exécution
L'exécution de l'étape Tentative-Récupération peut être un peu plus complexe que les autres étapes. Les cas d'exécution les plus courants sont les plus simples et expliqués en premier lieu. Les cas les plus complexes apparaissent lorsque la branche Finalement contient des étapes (n'est pas vide).
Dans tous les cas, l'exécution de l'étape Tentative-Récupération commence par l'exécution de la branche Tentative. Elle peut se terminer normalement, ou par une exception émise par l'une de ses étapes.
- Cas les plus courants : La branche Finalement est vide.
-
- La branche Tentative se termine normalement
- L'exécution se poursuit avec l'étape qui suit l'ensemble de l'étape Tentative-Récupération. Autrement dit, les branches Récupération ne sont pas exécutées dans ce cas.
- La branche Tentative se termine avec une exception
- Depuis l'étape qui émet une exception, l'exécution se poursuit directement au début de la branche Récupération qui liste l'exception.
- Cas les plus complexes : La branche Finalement est vide.
-
- La branche Tentative se termine avec une exception, mais aucune branche Récupération liste l'exception
- Ce cas est traité comme si l'étape Tentative-Récupération elle-même émettait l'exception, ce qui est traité de la même manière que lorsque n'importe quelle autre étape émet une exception. Tous les cas énumérés ici s'appliquent.Remarque Cette stratégie (« traitée comme si l'étape Tentative-Récupération elle-même émettait une exception ») est utilisée dans de nombreux autres cas.
Si toutes les étapes Tentative-Récupération ont des branches Finalement vides, la logique du workflow recherche une branche Récupération correspondante dans les étapes Tentative-Récupération environnantes qui contiennent des branches Tentatives avec cette étape Tentative-Récupération. Si une telle branche Récupération est introuvable dans une étape Tentative-Récupération environnante, l'exception est définie comme « non traitée » dans le workflow. Dans ce cas, l'exécution du workflow de robot
, ainsi que l'étape Appeler le robot
la contenant s'arrêtent, et l'erreur est traitée comme indiqué dans l'onglet Gestion des erreurs de l'étape Appeler le robot.
Si une étape Tentative-Récupération comporte également une branche Finalement, l'exécution est similaire, mais avec l'exécution d'une « émission » à la fois.
- La branche Tentative se termine par une exception, et la branche Récupération appropriée se termine de la même façon
- L'exception émise dans la branche Récupération n'est pas traitée par les branches Récupération dans la même étape Tentative-Récupération. Au lieu de cela, elle est traitée comme si l'étape Tentative-Récupération elle-même lançait cette exception. Les informations sont celles décrites dans le cas précédent.
- Note sur les étapes Tentative-Récupération imbriquées
- Une exception qui est traitée par une étape Tentative-Récupération n'est pas traitée par une étape Tentative-Récupération. Une fois que la branche Récupération qui peut gérer l'exception est trouvée, l'exception est considérée comme entièrement gérée et est « oubliée ». L'exécution de la branche Récupération commence et se déroule normalement. Ainsi, chaque exception n'est traitée qu'une seule fois.
- Cas les plus complexes : La branche Finalement n'est pas vide.
- Dans ces cas, les étapes de la branche Finalement sont exécutées juste avant que l'exécution quitte l'étape Tentative-Récupération, quelle que soit la manière dont l'exécution se déroule. Les cas suivants montrent comment cela fonctionne en détail pour chacun des cas évoqués ci-dessus.
- La branche Tentative se termine normalement
- L'exécution se poursuit avec les étapes dans la branche Finalement. Ce qui se passe ensuite dépend de la façon dont se termine l'exécution de la branche Finalement.
-
Si l'exécution de la branche Finalement se termine normalement, l'exécution se poursuit avec l'étape qui suit l'étape Tentative-Récupération complète.
-
Si une exception est émise pendant l'exécution de la branche Finalement, elle est traitée comme si l'étape Tentative-Récupération elle-même lançait cette exception.
-
- La branche Tentative se termine avec une exception et la branche Récupération se termine normalement
- Après l'exécution de la branche Récupération, la logique est exactement la même que dans le cas précédent.
- La branche Tentative se termine avec une exception, mais aucune branche Récupération liste l'exception
- Dans ce cas, l'exception est « mémorisée », et l'exécution se poursuit avec les étapes dans la branche Finalement. Ce qui se passe ensuite dépend de la façon dont se termine l'exécution de la branche Finalement.
-
Si l'exécution de la branche Finalement se termine normalement, l'exécution se déroule comme si l'étape Tentative-Récupération elle-même lançait à nouveau l'exception « mémorisée ».
-
Si une exception est émise lors de l'exécution de la branche Finalement, elle n'est pas traitée par les branches Récupération dans la même étape Tentative-Récupération. Au lieu de cela, elle est traitée comme si l'étape Tentative-Récupération elle-même lançait cette exception (c'est-à-dire l'exception qui a été lancée par la branche Finalement). L'exception « mémorisée » est effectivement « oubliée » à ce stade.
-
- La branche Tentative se termine avec une exception lancée, et la branche Récupération appropriée également
- Ce cas est traité comme le précédent, sauf que l'exception « mémorisée » est celle émise par la branche Récupération et non pas celle émise par la branche Tentative. Comme indiqué ci-dessus, l'exception émise par la branche Tentative est entièrement traitée et « oubliée » au moment où l'exécution de la branche Récupération commence.
Exceptions prédéfinies
Lorsqu'une étape rencontre une erreur lors de son exécution, elle émet l'une des exceptions suivantes. Ces exceptions peuvent être aussi explicitement émises par des étapes Signaler, si nécessaire.
Lorsqu'elles sont émises à cause d'erreurs d'étape, les exceptions prédéfinies comprennent un message expliquant le problème. Ce message est disponible si l'exception n'est pas traitée par une étape Tentative-Récupération dans le workflow du robot , mais termine l'exécution de l'étape Appeler le robot
.
Toutes les exceptions « internes » sont prédéfinies, et leur nom ne peut pas être modifié. Le nom d'une exception « définie par l'utilisateur » peut être modifié par l'utilisateur, en fonction de l'activités de l'étape à laquelle l'expiration fait référence. Par exemple, il peut être remplacé par InputNameTimeOut ou LoginTimeOut.
- TimeOutError : Émis si le délai d'exécution expire.
- FinderIssue: Émis si un localisateur ne parvient pas à trouver un élément.
- DevicceIssue : Émis si un problème sur un dispositif ou dans un pilote empêche l'exécution d'une étape.
- IncorrectValueIssue : Émis si la valeur d'une expression ne convient pas là où elle est utilisée, par exemple -1 dans "one".substring(-1)
- ExtractIssue : Émis si l'étape Extraire n'extrait rien.
- DivisionByZeroIssue: Émis si une division par zéro (ou modulo par zéro) se produit lors de l'évaluation d'une expression.
- OverFlowIssue : Émis si un débordement se produit dans l'évaluation d'une expression.
- ConversionIssue : Émis si une conversion d'un type dans un autre échoue lors de l'évaluation d'une expression, par exemple "one".integer().
- DisappearedIssue : Émis si une activité ne parvient pas à trouver le composant ou l'application dans laquelle l'activité doit être exécutée.
Chaque fois qu'une expression fait partie d'une étape, l'exécution de l'étape peut émettre les exceptions suivantes :
-
IncorrectValueIssue
-
DivisionByZeroIssue
-
OverflowIssue
-
ConversionIssue
Le tableau suivant répertorie les exceptions qui peuvent être émises par les étapes, les localisateurs et les autres éléments du workflow. Les problèmes d'expression sont tous les problèmes générés par les étapes avec les expressions.
Éléments du workflow |
Exception |
---|---|
Étapes |
|
Clic |
DeviceIssue, FinderIssue, problèmes d'expression |
Saisir du texte |
DeviceIssue, FinderIssue, problèmes d'expression |
Appuyer sur une touche |
DeviceIssue, FinderIssue, problèmes d'expression |
Faire défiler |
DeviceIssue, FinderIssue, problèmes d'expression |
Déplacer la souris |
DeviceIssue, FinderIssue, problèmes d'expression |
Définir le presse-papiers |
DeviceIssue, problèmes d'expression |
Assigner |
Problèmes d'expression |
Extraire la valeur |
DeviceIssue, FinderIssue, problèmes d'expression, ExtractIssue |
Extraire le presse-papiers |
DeviceIssue |
Extraire l'image |
DeviceIssue, FinderIssue, problèmes d'expression, ExtractIssue |
Extraire l'arborescence sous la forme XML |
DeviceIssue, FinderIssue, problèmes d'expression, ExtractIssue |
Extraire le texte de l'image |
DeviceIssue, FinderIssue, problèmes d'expression |
Boucle |
Aucun |
Conditionnel |
Problèmes d'expression |
Groupe |
Aucun |
Avec |
DeviceIssue, FinderIssue, problèmes d'expression |
Choix contrôlé |
Dépend des gardes, comme indiqué dans le tableau ci-dessous |
Tentative-Récupération |
Aucun |
Rupture |
Aucun |
Signaler |
Aucun |
Retour |
Problèmes d'expression |
Ouvrir |
DeviceIssue, problèmes d'expression |
Se connecter au dispositif |
DeviceIssue, problèmes d'expression |
Activité de dispositif à distance/commande de verrouillage de l'écran |
DeviceIssue, problèmes d'expression |
Action de dispositif à distance/autre |
DeviceIssue |
Expressions | |
Toute expression |
IncorrectValueIssue, DivisionByZeroIssue, OverFlowIssue, ConversionIssue |
Gardes | |
Lorsque les secondes se sont écoulées |
Problèmes d'expression, IncorrectValueIssue |
Application trouvée |
Problèmes d'expression, DeviceIssue, FinderIssue |
Application introuvable |
Problèmes d'expression, DeviceIssue, FinderIssue |
Emplacement trouvé |
Problèmes d'expression, DeviceIssue, FinderIssue |
Emplacement introuvable |
Problèmes d'expression, DeviceIssue, FinderIssue |
Emplacement supprimé |
Problèmes d'expression, DeviceIssue, FinderIssue |
Arrêter le changement d'arborescence |
Problèmes d'expression, IncorrectValueIssue, DeviceIssue, FinderIssue |
Localisateurs | |
Localisateur de dispositif |
DeviceIssue |
Localisateur d'application |
DeviceIssue, FinderIssue, Problèmes d'expression |
Localisateur de composant |
DeviceIssue, FinderIssue, Problèmes d'expression |
L'étape Choix contrôlé peut émettre les exceptions suivantes, en fonction des gardes utilisés dans l'étape :
Garde |
Exception |
---|---|
Lorsque les secondes se sont écoulées |
Problèmes d'expression |
n'importe quel autre |
DeviceIssue, FinderIssue, Problèmes d'expression |