- Notes de publication
- Démarrage
- Paramétrage et configuration
- Projets d'automatisation
- À propos de la publication de projets d'automatisation
- Conception d'automatisations
- Gérer les package d’activités
- Configuration des paramètres du projet d'activité
- Signature de paquets
- Gouvernance
- Import des entités
- Modern Design Experience
- Lier un projet à une idée dans Automation Hub
- Utilisation du gestionnaire de données
- Dépendances
- Types de workflows
- 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
- ST-USG-028 - Restreindre l'invocation des modèles de fichier
- ST-USG-027 - Balises requises
- ST-USG-034 – URL Automation Hub
- Variables
- Arguments
- Noms d'espace importés
- Flux de contrôle
- Réf. d’objets
- Journalisation
- Outil ScreenScrapeJavaSupport
- Tests Studio
- Extensions
- Résolution des problèmes
- À propos de la résolution des problèmes
- Prise en charge et limitations de Microsoft App-V
- Résolution des problèmes rencontrés avec Internet Explorer x64
- Problèmes rencontrés avec Microsoft Office
- Identification des éléments d'IU dans PDF avec options d'accessibilité
- Réparation de la prise en charge d'Active Accessibility
- Automatisation des applications exécutées sous un autre utilisateur Windows
- La validation des projets volumineux hérités depuis Windows prend plus de temps que prévu
Une machine d'état est un type d'automatisation qui utilise un nombre fini d'états dans son exécution. Le processus passe par un état lorsqu'il est déclenché par une activité, puis quitte cet état lorsqu'une autre activité est déclenchée.
Les transitions sont une autre caractéristique importante des machines à états, car elles permettent d'ajouter des conditions pour le passage d'un état à un autre. Elles sont représentées par des flèches ou des branches entre les états.
Il existe deux activités qui sont spécifiques aux automates, à savoir État et État final qui se trouvent sous Workflow > Automate.
Un seul état initial peut être créé, mais il est possible d'avoir plusieurs État final (Final State).
L'activité de type État (State) contient trois sections, nommées Entrée (Entry), Sortie (Exit) et Transition(s), tandis que l'État final (Final State) ne contient que la section Entrée (Entry). Vous pouvez double-cliquer sur ces deux activités pour afficher plus d'informations ou pour les modifier.
Les sections Entrée (Entry) et Sortie (Exit) permettent d'ajouter des déclencheurs de type entrant et sortant pour l'état sélectionné, tandis que la section Transition(s) indique toutes les transitions liées à l'état sélectionné.
Comme pour l'activité État (State), il suffit de double-cliquer sur les transitions pour les ouvrir. Elles contiennent trois sections :Déclencheur (Trigger), Condition (Condition) et Action (Action), qui permettent d'ajouter un déclencheur pour passer à l'état suivant, ou bien de définir une condition pour l'execution d'une activité ou d'une séquence.
Exemple d'utilisation d'une machine à état
Pour illustrer les propriétés d'une machine à état, nous vous invitons à recréer le jeu de devinettes du chapitre précédent, avec une petite difference : cette fois, nous devons tenter de deviner un nombre entre 1 et 100.
-
Créez un processus vierge et, dans l'onglet Conception (Design), groupe Fichier (File), sélectionnez Nouveau > Machine d'état (New > State Machine). La fenêtre Nouvelle machine d'état (New State Machine) s'affiche.
Remarque :Vous pouvez également ajouter une activité Machine d'état (State Machine) dans le panneau Concepteur (Designer) pour créer une nouvelle machine à état.
-
Dans le champ Nom (Name), entrez un nom pour l'automatisation, tel que « Première machine d'état », et conservez l'emplacement du projet par défaut ou ajoutez un sous-dossier. Cliquez sur Créer (Create). Le panneau Concepteur (Designer) est mis à jour en conséquence.
-
Créez deux variables de type entier :
InitialGuessetRandomNumber. La première variable enregistrera votre réponse, tandis que la seconde contiendra le nombre aléatoire. -
Ajoutez une activité de type État (State) au module Concepteur (Designer) et reliez-la au nœud Initial : vous obtenez un état initial, qui est utilisé pour générer le nombre aléatoire.
-
Double-cliquez sur l'activité État (State) pour qu'elle s'affiche en détails dans le module Concepteur (Designer).
-
Rendez-vous dans le module Propriétés (Properties) et saisissez « Initialisation du nombre aléatoire » dans le champ NomAffichage (DisplayName) afin de pouvoir différencier facilement les états.
-
Dans la section Entrée (Entry), ajouter une activité Attribuer (Assign).
-
Ajoutez la variable
RandomNumberdans le champ À (To). -
Saisissez l'expression
new Random().Next(1,100)dans le champ Valeur (Value) pour générer un nombre aléatoire. -
Revenez à l'écran principal du projet et ajoutez une nouvelle activité de type État (State).
-
Reliez-la à l'activité précédente.
-
Double-cliquez sur la dernière activité d'État (State) pour qu'elle s'affiche en détails dans le module Concepteur (Designer).
-
Rendez-vous dans le module Propriétés (Properties) et saisissez « Numéro de la réponse » dans le champ NomAffichage (DisplayName). Cet état sera utilisé pour inviter l'utilisateur à deviner un nombre.
-
Dans la section Entrée (Entry), ajouter une activité Boîte de dialogue (Input Dialog).
-
Sélectionnez la Boîte de dialogue (Input Dialog) : dans le module Propriétés (Properties), renseignez un Intitulé et un Titre (Title) pour inviter l'utilisateur à saisir un nombre entre 1 et 100.
-
Ajoutez la variable
InitialGuessdans le champ Résultat (Result) pour enregistrer la réponse de l'utilisateur. -
Revenez sur l'écran principal du projet et créez une transition en boucle qui relie l'état « Numéro de la réponse » à lui-même.
-
Double-cliquez sur la transition pour qu'elle s'affiche en détails dans le module Concepteur (Designer).
-
Rendez-vous dans le module Propriétés (Properties) et saisissez "Choisissez un nombre plus petit" dans le champ NomAffichage (DisplayName). Ce message apparaitra sur la flèche pour faciliter l'exécution du projet d'automatisation.
-
Dans la section Condition (Condition), saisissez
InitialGuess>RandomNumberafin de vérifier si le nombre donné par l'utilisateur est supérieur au nombre aléatoire. -
Dans la section Action (Action), ajoutez une activité de type Zone de message (Message Box).
-
Dans le champ Texte (Text), saisissez un message qui s'affichera lorsque la réponse de l'utilisateur est supérieure au nombre aléatoire, comme par exemple : "Le nombre choisi est trop élevé. Choisissez un nombre plus petit.".
-
Revenez à la vue principale du projet et créez une transition qui passe de l'état Deviner le nombre (Guess Number) à lui-même.
-
Double-cliquez sur la transition pour qu'elle s'affiche en détails dans le module Concepteur (Designer).
-
Rendez-vous dans le module Propriétés (Properties) et saisissez "Choisissez un nombre plus élevé" dans le champ NomAffichage (DisplayName). Ce message apparaitra sur la flèche pour faciliter l'exécution du projet d'automatisation.
-
Dans la section Condition (Condition), saisissez
InitialGuess<RandomNumberafin de vérifier si le nombre donné par l'utilisateur est inférieur au nombre aléatoire. -
Dans la section Action (Action), ajoutez une activité de type Zone de message (Message Box).
-
Dans le champ Texte (Text), saisissez un message qui s'affichera lorsque la réponse de l'utilisateur est inférieure au nombre aléatoire, comme par exemple : "Le nombre choisi est trop bas. Choisissez un nombre plus élevé.".
-
Revenez sur l'écran principal du projet et ajoutez une activité de type État final (Final State) dans le module Concepteur (Designer).
-
Reliez l'activité Numéro de la réponse (Guess Number) à l'activité État final (Final State) à l'aide d'une transition.
-
Rendez-vous dans le module Propriétés (Properties) et saisissez "Bonne réponse" dans le champ NomAffichage (DisplayName).
-
Dans le champ Condition (Condition), saisissez
InitialGuess=RandomNumber. Cette condition permet au processus d'automatisation de passer à l'état final et de se terminer. -
Double-cliquez sur l'activité État final (Final State) pour qu'elle s'affiche en détails dans le module Concepteur (Designer).
-
Dans la section Entrée (Entry), ajoutez une activité de type Zone de message (Message Box).
-
Dans le champ Texte, tapez quelque chose comme "Félicitations. Vous avez bien deviné ! Le numéro était " +
RandomNumber.ToString+ "." Il s’agit du message final qui doit s'afficher lorsque l’utilisateur devine correctement le nombre.Le projet final devrait ressembler à l'illustration suivante :
-
Appuyez sur la touche F5 : le projet d'automatisation s'exécute correctement.