- 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
- Flux de contrôle
- Comparaison de fichiers
- Meilleures pratiques d'automatisation
- Intégration du contrôle de code source
- À propos du contrôle de version
- Gestion de projets à l'aide de TFS
- Gestion de projets à l'aide de SVN
- Diff de workflow
- Débogage
- Journalisation
- 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-NMG-017 : le nom de la classe correspond à l’espace de noms par défaut
- ST-DBP-002 - Nombre élevé d'arguments
- ST-DBP-003 - Bloc d'interception vide
- ST-DBP-007 - Plusieurs couches de l'organigramme
- ST-DPB-010 : plusieurs instances de [workflow] ou [cas de test]
- ST-DBP-020 - Propriétés de sortie non définies
- ST-DBP-021 - Délai d'expiration codé en dur
- 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
- Gestion des variables
- Le module Variables
- Variables propriétaires UiPath
- Arguments
- Noms d'espace importés
- Automatisations codées
- Introduction
- Enregistrement de services personnalisés
- Contextes Avant (Before) et Après (After)
- Génération du code
- Génération de cas de test codé à partir de cas de test manuels
- Automatisation Attended basée sur déclencheur
- Enregistrement
- Éléments de l'interface utilisateur
- À propos des éléments d'interface utilisateur
- Propriétés des activités de l'interface utilisateur
- Exemple d'utilisation des méthodes de saisie
- Méthodes de sortie ou de capture de données d'écran
- Exemple d'utilisation de méthodes de sortie ou de capture de données d'écran
- Génération de tables à partir de données non structurées
- Capture relative de données
- Sélecteurs
- Réf. d’objets
- Capture de données
- Automatisation des images et des textes
- À propos de l'automatisation des images et des textes
- Activités liées à la souris et au clavier
- Exemple d'utilisation de l'automatisation de la souris et du clavier
- Les activités de type texte
- Exemple d'utilisation d'automatisation de texte
- Activités de type OCR
- Activités de type image
- Exemple d'utilisation de l'automatisation d'image et d'OCR
- Citrix Technologies Automation
- Automatisation de RDP
- Automatisation VMware Horizon
- Automatisation de Salesforce
- Automatisation SAP
- macOS UI Automation
- Outil ScreenScrapeJavaSupport
- Protocole Webdriver
- Extensions
- À propos des extensions
- Outil SetupExtensions
- UiPathRemoteRuntime.exe n'est pas en cours d'exécution dans la session distante
- UiPath Remote Runtime bloque la fermeture de la session Citrix
- UiPath Remote Runtime provoque une fuite de mémoire
- UiPath.UIAutomation.Activities package and UiPath Remote Runtime versions mismatch
- L'extension UiPath requise n'est pas installée sur la machine distante
- Paramètres de résolution d’écran
- Group Policies
- Impossible de communiquer avec le navigateur
- L’extension Chrome est automatiquement supprimée
- L'extension a peut-être été corrompue
- Vérification de l'installation et de l'activation de l'extension pour Chrome
- Vérifiez si ChromeNativeMessaging.exe est en cours d’exécution
- Vérifier si la variable ComSpec est correctement définie
- Activez l’accès aux URL de fichiers et au mode navigation privée
- Profils de navigateur multiples
- Group Policy conflict
- Problèmes connus spécifiques aux extensions MV3
- Liste des extensions pour Chrome
- Extension Chrome sur Mac
- Group Policies
- Impossible de communiquer avec le navigateur
- L’extension Edge est automatiquement supprimée
- L'extension a peut-être été corrompue
- Vérification si l'extension pour Microsoft Edge est installée et activée
- Vérifiez si ChromeNativeMessaging.exe est en cours d’exécution
- Vérifier si la variable ComSpec est correctement définie
- Activation de l'accès aux URL de fichiers et au mode navigation privée
- Profils de navigateur multiples
- Group Policy conflict
- Problèmes connus spécifiques aux extensions MV3
- Liste des extensions pour Edge
- Extension pour Safari
- Extension pour VMware Horizon
- Extension pour Amazon WorkSpaces
- Plug-in du gestionnaire de solution SAP
- Complément Excel
- Suite de tests - Studio
- 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
- La validation des projets volumineux hérités depuis Windows prend plus de temps que prévu
Variables propriétaires UiPath
Une variable de type GenericValue peut contenir n’importe quel type de données, y compris du texte, des nombres, des dates et des tableaux. Cette variable est propre à Studio.
Les variables de type GenericValue sont automatiquement converties sous d'autres types de données, afin d'accomplir certaines actions. Veillez cependant à utiliser ces variables avec prudence, car la conversion n'est pas toujours celle qui convient le mieux à votre projet.
Il est possible de modifier les expressions de l'outil de conversion automatique afin d'affiner la conversion des variables de type GenericValue dans Studio UiPath. Remarque : le premier élément de l'expression est toujours utilisé comme guide par Studio pour l'ensemble de l'operation. Mettons par exemple que l'on souhaite additionner deux variables de type GenericValue : si la première valeur de l'expression est définie en tant que chaîne (String), le résultat sera une concaténation des deux expressions (comme s'il s'agissait de deux chaînes). Si par contre la première valeur est définie comme un entier (Integer), on obtiendra la somme des deux expressions.
Nom / Syntaxe |
Description |
---|---|
CompareTo
| |
Contient
|
Cette méthode permet de déterminer si une chaîne contient une sous-chaîne particulière. Par exemple, pour savoir si une phrase contient un mot spécifique, il faut employer l'expression
[SentenceVariable].Contains("term") , dans laquelle [SentenceVariable] est la variable de type GenericValue qui contient la phrase et "term" est le mot recherché.
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
Est égal à
| |
GetHashCode
| |
GetType
| |
GetTypeCode
| |
IndexOf
|
Cette méthode permet d'obtenir l'index d'une sous-chaîne contenue dans une chaîne de caractères. Par exemple, pour trouver l'index du mot « locate » dans la phrase « Find "locate" dans cette phrase », il faut employer l'expression
[SentenceVariable].IndexOf("locate") , dans laquelle [SentenceVariable] est la variable de type GenericValue qui contient la phrase et "locate" est le mot recherché.
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
Longueur
|
Cette méthode permet d'obtenir le nombre de caractères dans une chaîne de caractères. Par exemple, pour trouver le nombre de lettres dans un mot donné, il faut employer l'expression
[WordVariable].Length , dans laquelle [WordVariable] est la variable de type GenericValue qui contient le mot.
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
Remplacer (Replace)
|
Cette méthode permet de remplacer les données contenues dans une chaîne de caractères. Par exemple, pour remplacer le chemin d'un fichier local
C:\ExampleFolder\Main.xaml par son chemin serveur correspondant C:/ExampleFolder/Main.xaml , il faut employer l'expression [PathVariable].Replace("\","/") , dans laquelle [PathVariable] est la variable de type GenericValue qui contient le chemin, "\" est le caractère à remplacer et "/" est le caractère qui le remplace.
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
Fractionner
|
Cette méthode permet d'extraire les composants individuels d'une chaîne de caractères. Par exemple, pour extraire l'année à partir d'une date au format MM.JJ.YYYY, il faut employer l'expression
[DateVariable].Split(".".ToCharArray)(2) , dans laquelle [DateVariable] est la variable de type GenericValue qui contient la date, "." est le caractère qui sert de séparateur, .ToCharArray crée un tableau contenant les éléments délimités par le séparateur et (2) représente l'index de l'élément à extraire (c'est-à-dire l'année dans cet exemple).
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
Sous-chaîne
|
Cette méthode permet d'extraire une sous-chaîne d'une chaîne de caractères. Par exemple, pour extraire un mot de la phrase « There are 100 machines available », il faut employer l'expression
[SentenceVariable].Substring(10,3) , dans laquelle [SentenceVariable] est la variable de type GenericValue qui contient la phrase, 10 est l'index du premier caractère à extraire et 3 représente la longueur de la sous-chaîne à partir du premier caractère. Dans cet exemple, la sous-chaîne résultante serait donc « 100 ».
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
ToBoolean
| |
ToByte
| |
ToChar
| |
ToDecimal
| |
Doubler
| |
ToInt
|
Cette méthode est utilisée pour convertir une valeur donnée en integer pouvant accepter la valeur Null. Remarque : Lorsque cette méthode est utilisée avec une variable GenericValue de type booléen, les valeurs « True » et « False » sont respectivement converties en 1 et 0.
|
ToInt16
|
Remarque : Lorsque cette méthode est utilisée avec une variable GenericValue de type booléen, les valeurs « True » et « False » sont respectivement converties en 1 et 0.
|
ToInt32
|
Remarque : Lorsque cette méthode est utilisée avec une variable GenericValue de type booléen, les valeurs « True » et « False » sont respectivement converties en 1 et 0.
|
ToInt64
|
Remarque : Lorsque cette méthode est utilisée avec une variable GenericValue de type booléen, les valeurs « True » et « False » sont respectivement converties en 1 et 0.
|
ToLower
|
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
ToLowerInvariant
|
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
ToSByte
| |
ToSingle
| |
ToString
| |
ToType
| |
ToUInt16
|
Remarque : Lorsque cette méthode est utilisée avec une variable GenericValue de type booléen, les valeurs « True » et « False » sont respectivement converties en 1 et 0.
|
ToUInt32
|
Remarque : Lorsque cette méthode est utilisée avec une variable GenericValue de type booléen, les valeurs « True » et « False » sont respectivement converties en 1 et 0.
|
ToUInt64
|
Remarque : Lorsque cette méthode est utilisée avec une variable GenericValue de type booléen, les valeurs « True » et « False » sont respectivement converties en 1 et 0.
|
ToUpper
|
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
ToUpperInvariant
|
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
Découper
|
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
TrimEnd
|
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
TrimStart
|
Remarque : lorsque cette méthode est utilisée avec une variable de type GenericValue contenant des données de type Int, Float ou Booléen, les données sont automatiquement converties en chaînes de caractères et traitées en tant que telles.
|
Quand vous utilisez Ctrl + K, Ctrl + M, ou Ctrl + Shift + M directement dans le corps d’activité Valeur de format, la variable ou l’argument créé est de type GenericValue. Pour d’autres activités, le type créé est le même que le type requis de l’activité.
Pour illustrer les propriétés d'une variable de type GenericValue, nous vous invitons à créer un projet d'automatisation dont l'objectif est d'effectuer des opérations variées, puis à observer la façon dont les résultats de ces opérations sont influencés par la définition des expressions. Pour ce faire nous allons créer deux variables de types GenericValue contenant différents types de données et nous allons afficher les résultats dans le module Sortie (Output).
- Créez un nouveau projet vierge.
- Créez trois variables de type GenericValue :
Int
,Str
etResult
. -
Dans la colonne Par défaut de la variable
Int
, tapez 12 et pour la variableStr
, tapez « 34 ». La première variable est interprétée comme un entier, tandis que la seconde est interprétée comme une chaîne. - Ajoutez une activité de type Attribuer (Assign) au module Concepteur (Designer) et reliez-la au nœud Initial.
- Rendez-vous dans le module Propriétés (Properties) et saisissez la variable
Result
dans le champ À (To). - Indiquez
Int
+Str
dans le champ Valeur (Value). - Ajoutez une activité Écrire une ligne (Write Line) et reliez-la à l'activité de type Attribuer (Assign).
-
Double-cliquez sur la carte d'activité, et dans le champ Texte (Text), saisissez la variable
Result
.Le projet doit ressembler à la capture d'écran suivante.
-
Appuyez sur la touche F5 pour exécuter votre projet d'automatisation. Remarque : la somme des deux nombres apparait dans le module Sortie (Output).
-
Revenez à l'activité Assign précédemment ajoutée et changez le champ Value en
Str
+Int
, pour inverser l'ordre des variables. Le projet doit ressembler à la capture d'écran suivante. -
Appuyez sur la touche F5 pour exécuter votre projet d'automatisation. Remarque : les deux nombres font à présent l'objet d'une concaténation dans le module Sortie (Output).
Cela signifie qu’UiPath Studio prend le premier élément défini dans votre expression comme une ligne directrice pour définir l'opération à effectuer. Si le premier élément de votre expression est un entier ou une variable GenericValue remplie en tant qu’entier, UiPath Studio effectuera la somme des éléments.
Si le premier élément de votre expression est une chaîne ou une variable GenericValue remplie sous forme de chaîne, UiPath Studio effectuera la concaténation des éléments.
Il est recommandé de consulter la page À propos des files d'attente et transactions, pour avoir une vue d'ensemble sur les files d'attente et les transactions, avant de passer ensuite à la variable QueueItem.
Avant d'approfondir le sujet, assurez-vous de bien comprendre la distinction entre les éléments de file d'attente (éléments stockés dans une file d'attente d'Orchestrator) et les variables QueueItem (utilisées dans Studio pour traiter les éléments de file d'attente). Nous y faisons référence exactement comme cela : « Variables QueueItem » et « éléments de file d'attente ».
Généralement, comme le nom l'indique, la variable QueueItem stocke un élément extrait d'un conteneur d'éléments, une file d'attente. Cette extraction s'effectue généralement dans le but d'utiliser ensuite les éléments de file d'attente dans différents scénarios. Supposons que vous représentez un établissement bancaire et que vous avez un bordereau de dépôt de 50 clients. Vous voulez traiter les données de chaque client qui avait déposé un chèque de moins de 5 000 dollars tiré sur notre banque, avec une application financière tierce. À cet effet, vous pouvez effectuer un workflow dans lequel la variable QueueItem stocke, tour à tour, les informations de chaque client. Chaque entrée lue par la variable QueueItem est stockée dans un élément de file d'attente et ajoutée à la file d'attente désignée dans Orchestrator. Le résultat de ce processus complet est une file d'attente qui contient les informations des clients, chacune dans l'élément de file d'attente correspondant.
Pour traiter ensuite les données qui remplissent la condition, vous devez créer un autre workflow qui extrait les éléments de la file d'attente auparavant créée, avec une valeur correspondante de chèque tiré sur notre banque inférieure à 5 000 dollars. Vous trouverez, à la fin de cette rubrique, une procédure pas-à-pas sur la création d'un tel projet.
Nom / Syntaxe |
Description |
---|---|
Est égal à
| |
GetHashCode
| |
GetType
| |
ToString
|
Nom / Syntaxe |
Description |
---|---|
AssignedTo
| |
DueDate
|
La date et l'heure les plus récentes de traitement de l'élément. Si vide, l'élément peut être traité à tout moment. |
DeferDate
|
La date et l'heure les plus anciennes auxquelles l'élément est disponible pour le traitement. Si vide, l'élément peut être traité dès que possible. |
Id
| |
ItemKey
|
Identificateur unique de l'élément. Par exemple,
1bf829e1-cd6b-4275-a364-19db3cfe09c7 .
|
Priorité (Priority)
|
La priorité de l'élément de file d'attente, telle que définie dans Studio dans le champ Priorité (Priority) du panneau Propriétés (Properties). |
ProcessingException
|
Exception de traitement d'un élément en échec. |
Progression (Progress)
|
Informations de la progression personnalisée sur un élément de file d'attente dont l'état est InProgress. |
QueueDefinitionId
|
Identificateur unique de la file d'attente sous laquelle un élément de file d'attente/une transaction a été traité. |
QueueName
|
Nom de la file d'attente contenant les éléments traités. |
Référence (Reference)
|
Valeur spécifiée par l'utilisateur pour faciliter l'identification des éléments de file d'attente. |
RetryNo
|
Nombre de nouvelles tentatives pour un élément. |
État de révision (ReviewStatus)
|
État de révision de l'élément de file d'attente, tel que récupéré depuis Orchestrator. |
RowVersion
|
Champ interne utilisé pour l'horodatage de la version. Il est mis à jour chaque fois qu'une propriété de la transaction actuelle est modifiée. |
SpecificContent
|
Collection des paires clé et valeur contenant des données personnalisées associées à la transaction en cours, telle que configurée dans l'activité Add Queue Item. |
StartTransactionTime
|
Date et heure de début du traitement de la transaction. |
État (Status)
|
État de l'élément de file d'attente, tel que récupéré depuis Orchestrator. |
En raison de la nature de cet exemple, nous avons divisé cette section en deux parties, chacune représentant l'un des deux workflows principaux à utiliser lorsque vous gérez des files d'attente et des éléments de file d'attente.
Téléchargement d'éléments dans une file d'attente
.xlsx
. Supposons que vous représentez un établissement bancaire et que vous avez un bordereau de dépôt de 50 clients. Vous voulez traiter les données de chaque client qui ont déposé un chèque de moins de 5 000 dollars tiré sur notre banque, avec une application financière tierce. Le rapport contient le nom du client, la valeur du chèque tiré sur notre banque et deux autres valeurs supplémentaires, disons Encaissement et chèque non tiré sur notre banque. Nous créons un workflow dans lequel la variable QueueItem stocke, tour à tour, les informations de chaque client. Chaque entrée lue par la variable QueueItem est ensuite stockée dans un élément de file d'attente et ajoutée à la file d'attente désignée dans Orchestrator. Le résultat de ce processus complet est une file d'attente qui contient les informations spécifiques de chaque client. Avant de passer au workflow réel, vous souhaiterez peut-être examiner le rapport des clients ici. Nous allons utiliser la feuille « Rapports de juillet ».
Sans plus tarder :
- Créez une nouvelle séquence.
- Ajoutez une activité Étendue du processus Excel (Excel Process Scope) à l’intérieur de la séquence.
- Ajoutez une activité Utiliser le fichier Excel (Use Excel File) et définissez l'emplacement du classeur dans le champ Fichier Excel (Excel file) de l'activité.
- Ajoutez une activité Lire la plage (Read Range) pour lire la plage de valeurs souhaitée dans le rapport et les stocker dans une variable TableDonnées (DataTable).
- Sur le côté droit du champ Plage (Range), sélectionnez Plus > Excel > Indiquer dans Excel (Indicate in Excel) et sélectionnez une plage de cellules (par exemple, A1:D51).
-
Dans le champ Enregistrer vers (Save to), appuyez sur Ctrl + K pour créer une nouvelle variable TableDonnées (DataTable) qui stocke la plage de données précédemment lue. Nommez-la
dt_DataTable1
ou attribuez-lui un nom similaire. Le volet Variables doit également afficher la variable nouvellement créée comme suit :
-
Ensuite, ajoutez une activité Pour chaque ligne dans la table de données (For Each Row in Data Table) au panneau Concepteur (Designer) et remplissez les champs vides avec « ligne » et le nom de la variable TableDonnées (DataTable),
dt_DataTable1
, respectivement. Cette activité exécute l'action définie pour chaque ligne de la table de données. La séquence devrait ressembler à la capture d'écran suivante jusqu'à présent :
- Ajoutez une activité Ajouter un élément de file d'attente (Add Queue Item) à l'activité Pour chaque ligne dans la table de données (For Each Row in Data Table). Cela ajoute un élément à une file d'attente (définie ci-dessous aux étapes 8 et 12), pour chaque ligne de la feuille de calcul.
- Dans le champ Nom de la file d'attente (Queue name), saisissez le nom de la file d'attente dans lequel vous voulez stocker les éléments, disons
ReportQueue
. -
Cliquez sur le champ sous Informations sur l'élément (Item information)pour ouvrir la fenêtre Générateur de dictionnaires (Dictionary Builder). Créez 4 arguments, chacun correspondant à une colonne du rapport. Définissez-les comme suit :
Name
, en conservant les valeurs par défaut pour Direction et Type , et avec Value définie surrow(0).ToString
. Cela récupère la valeur de la colonne avec le compteur 0 pour chaque ligne du classeur, dans notre cas le nom du client.CashIn
, en conservant les valeurs par défaut pour Direction et Type , et avec Value définie surrow(1).ToString
. Cela récupère la valeur de la colonne avec le compteur 1 pour chaque ligne du classeur, dans notre cas, la valeur Cash In.OnUsCheck
, en conservant les valeurs par défaut pour Direction et Type, et avec Value définie surrow(2).ToString
. Cela récupère la valeur de la colonne avec le compteur 2 pour chaque ligne dans le classeur, dans notre cas, la valeur de contrôle sur nous.NotOnUsCheck
, en conservant les valeurs par défaut pour Direction et Type, et avec Value définie surrow(3).ToString
. Cela récupère la valeur de la colonne avec le compteur 3 pour chaque ligne dans le classeur, dans notre cas, la valeur de contrôle non activé.
-
La fenêtre Générateur de dictionnaires (Dictionary Builder) doit ressembler à ceci dans la capture d'écran suivante :
- Connectez le Robot de Studio à Orchestrator. Pour plus de détails sur la façon de procéder, cliquez ici.
- Accédez à https://cloud.uipath.com, connectez-vous à l'aide de vos informations d’identification, puis créez une file d'attente (FileAttenteRapports (ReportQueue)) pour stocker les éléments. Assurez-vous que, quel que soit le nom que vous avez utilisé ci-dessus (étape 8), vous utilisez le même ici.
- Retournez dans Studio. À ce stade, vous workflow ne doit pas contenir d'erreurs et doit être fonctionnel. L'étape suivante consiste donc à le mettre à la disposition d'Orchestrator. À cet effet, cliquez sur Conception (Design) > Publier (Publish).
-
Pour exécuter le processus, cliquez sur Conception (Design) > Exécuter (Run).
Remarque : prenez en compte qu'après leur traitement, les éléments de file d'attente deviennent des transactions, et sont gérés ensuite comme tels. - Accédez à nouveau à https://cloud.uipath.com et affichez les transactions.
Traitement des transactions à partir d'une file d'attente
Pour montrer comment traiter ensuite des transactions à partir d'une file d'attente, nous allons créer un second workflow qui récupère à partir de la file d'attente appropriée, les transactions avec une valeur de chèque tiré sur notre banque inférieure à 5 000 dollars. Pour chaque transaction qui remplit la condition, les valeurs sont collectées et introduites dans une application factice tierce. Les autres sont appelées exceptions métier.
- Accédez à Conception (Design) > Nouveau (New) > Organigramme (Flowchart) pour créer un fichier dans le projet lancé ci-dessus.
- Ajoutez une activité Utiliser l’application/le navigateur (Use Application/ Browser) pour ouvrir l’application factice tierce. Connectez-la au nœud Démarrer (Start).
- Renseignez les détails requis (Nom complet (Display Name), Chemin d'accès au fichier (File path), Sélecteur (Selector)) dans le panneau Propriétés (Properties), et configurez l'activité de façon à se connecter avec les informations d'identification correspondantes. Utilisez
admin
pour le champ Nom d'utilisateur etpassword
pour le champ Mot de passe (Password). - Dans le champ Chemin d'accès au fichier) (FileName), renseignez le chemin d'accès de l'application.
- Dans le champ Sélecteur (Selector), définissez un sélecteur pour UIDemo en utilisant l'Éditeur de sélecteur.
- Ajoutez une activité Should Stop au panneau Concepteur (Designer) et connectez-la à l'activité Open Application.
-
Ajoutez une activité Flow Decision au panneau Concepteur (Designer) et connectez-la à l'activité Should Stop. Ces deux dernières activités vérifient si vous avez arrêté la tâche lors de son exécution. Cela vous donne la possibilité de configurer davantage le workflow afin qu'il effectue différentes routines de sécurité après le déclenchement de l'arrêt. Consultez ci-dessous un exemple de ce type de routine :
- Ajoutez une activité Log Message et connectez-la à la branche Vrai (True) de la décision de flux auparavant ajoutée.
- Dans le panneau Propriétés (Properties), champ Message (Message), entrez « Processus d'arrêt requis » ou un message similaire à afficher si l'arrêt est déclenché.
- Ajoutez une activité Close Application et connectez-la à l'activité Log Message auparavant ajoutée.
- Dans le panneau Propriétés (Properties), champ DisplayName, après l'activité Close application, entrez
UIDemo.exe UIDemo
.
- Ajoutez une activité Get Transaction Item à la branche Faux (False) de la décision de flux ajoutée auparavant (étape 7). Cette activité récupère les éléments de transaction de la file d'attente et les stocke, tour à tour, avec chaque itération de la boucle, dans une variable QueueItem.
- Dans le panneau Propriétés (Properties), champ QueueName, entrez le nom de la file d'attente qui stocke vos éléments. Dans notre cas, tel que défini dans la section Téléchargement d'éléments dans une file d'attente (Uploading Items into a Queue), le nom est « ReportQueue ».
- Dans le champ TransactionItem, appuyez sur Ctrl+K pour créer la variable QueueItem qui stocke chaque élément de transaction. Nommez-le « TransItem » ou similaire.
- Ajoutez une activité Flow Decision au panneau Concepteur (Designer) et connectez-la à l'activité Get Transaction Item.
- Rendez-vous dans le module Propriétés (Properties) et saisissez
TransItem isNot Nothing
dans le champ Condition. Cette activité vérifie la valeur de chaque élément pour déterminer si la fin de la file d'attente a été atteinte. - Connectez la branche Faux (False) de la décision de flux à l'activité Log Message créée à l'étape 7. Cela garantit l'arrêt de la tâche lorsque la fin de la file d'attente est atteinte.
- Ajoutez une autre activité Flow Decision au panneau Concepteur (Designer) et connectez-la à la branche Vrai (True) de la décision de flux créée à l'étape 11.
-
Dans le panneau Propriétés (Properties), champ Condition (Condition), entrez
cint(TransItem.SpecificContent("OnUSCheck").ToString) < 5000
, où :cint
convertit une variable de type string en type integer.TransItem
est la variable QueueItem (étape 18) utilisée pour stocker les éléments.SpecificContent("OnUSCheck")
récupère le contenu de l'argument On US Check dans chaque élément..ToString
convertit le contenu de la variable QueueItem en variable de type string.-
< 5000
est la condition pour laquelle vous devez effectuer les vérifications.L'expression ci-dessus convertit la valeur OnUSCheck de chaque variable QueueItem en variable string, qui est ensuite convertie en variable integer. La valeur ainsi obtenue fait l'objet d'une vérification de conformité avec la condition.
- Ajoutez une activité Set Transaction Status au panneau Concepteur (Designer) et connectez-la à la branche Faux (False) de la décision de flux précédente (étape 13).
- Dans le panneau Propriétés (Properties), assurez-vous que le champ État (Status) est défini sur Échec (Failed) et ErrorType sur Métier (Business). De cette façon, si la valeur du chèque tiré sur notre banque est supérieure ou égale à 5 000, la transaction est marquée comme en échec avec une exception métier
- Dans le champ TransactionItem, ajoutez la variable
TransItem
. - Dans le champ Raison (Reason), entrez « Le montant OnUSCheck est supérieur à 5 000 ou un message similaire, à afficher pour la transaction en échec.
- Connectez l'activité Set Transaction Status à l'activité Should Stop (étape 6), pour créer une boucle et traiter la transaction suivante dans la file d'attente.
- Ajoutez une activité Sequence au panneau Concepteur (Designer) et connectez-la à la branche Vrai (True) de la décision de flux précédente (étape 13). À l'intérieur de la séquence, ajoutez une activité Try Catch et configurez-la de sorte que les erreurs potentielles soient correctement nommées comme erreurs d'application lors du traitement des éléments.
- Ouvrez l'application UIDemo et connectez-vous à l'aide du nom d'utilisateur
admin
et du mot de passepassword
. -
Effectue la série suivante d'activités pour chacun des champs Encaissement (Cash In), Chèque tiré sur notre banque (On Us Check) et Chèque non tiré sur notre banque (Not On Us Check) dans l'application UIDemo :
- Dans l’activité Essayer de capturer (Try Catch) précédente, ajoutez une activité Utiliser l'application/le navigateur (Use Application/Browser) pour ouvrir l’application.
- Ajoutez une activité Saisir dans (Type Into).
- Cliquez sur Indiquer à l'écran (Indicate on screen) et sélectionnez dans l'interface UIDemo, le champ vide correspondant à Encaissement (Cash In).
- Dans le champ Tapez ceci (Type this), saisissez
transItem.SpecificContent("CashIn").ToString
. Chaque terme de l'expression est expliqué ci-dessus (étape 15). Cette expression convertit la valeur de chaque variable ÉlémentFileAttente (QueueItem) en variable de chaîne.
- Ajoutez une activité Get Text (Obtenir le texte) après les activités Saisir dans (Type Into) précédentes et sélectionnez « Indiquer la cible à l’écran » (Indicate target on screen) dans le menu des options.
- Pointez sur le numéro de transaction dans l'application UIDemo et cliquez sur Confirmer (Confirm).
- Définissez le champ Texte (Text) sur une nouvelle variable, disons
TransNumber
. Cela récupère le numéro de transaction pour chaque élément de la file d'attente qui remplit la condition initiale. - Ajoutez une activité Définir le statut de la transaction (Set transaction status) après l'activité Obtenir le texte (Obtenir le texte).
- Assurez-vous que le champ Statut (Status) est défini sur Réussite (Successful) et TypeErreur (ErrorType) est défini sur Application. De cette façon, si l'ensemble de valeurs est introduit avec succès dans l'application, le statut de la transaction est défini sur Réussite (Successful) ou bien libellé comme une exception d'application.
- Dans la fenêtre Sortie (Output), définissez un nouvel argument et ajoutez la variable auparavant créée,
TransNumber
(étape 25) en tant que valeur. - Dans le champ TransactionItem, ajoutez la variable
TransItem
. - Ajoutez une activité Clic (Click) après l’activité Définir le statut de la transaction (Set transaction status).
- Cliquez sur Indiquer la cible à l'écran (Indicate target on screen) et sélectionnez le bouton Accept (Accepter) dans l'interface UIDEmo.
-
L'activité Try Catch doit ressembler à ceci dans la capture d'écran suivante :
- Revenez à l'organigramme et connectez l'activité Sequence précédente (étape 21) à l'activité Should Stop (étape 6), pour créer une boucle et traiter la transaction suivante dans la file d'attente.
-
L'organigramme doit ressembler à ceci dans la capture d'écran suivante :
- Pour exécuter le processus, cliquez sur Conception (Design) > Exécuter (Run).
- Une fois l'exécution terminée, vous pouvez accéder à https://cloud.uipath.com et afficher les transactions traitées avec les détails de traitement correspondants :
-
Transaction réussie
-
Transaction en échec