- 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-017 - Invalid parameter modifier
- 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
- 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
- Automatisation des technologies Citrix
- 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
- Le package UiPath.UIAutomation.Activities ne correspond pas aux versions d’UiPath Remote Runtime
- L'extension UiPath requise n'est pas installée sur la machine distante
- Paramètres de résolution d’écran
- Stratégies de groupe
- 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
- Stratégies de groupe
- 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
- Assembly compilation errors
- 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
Guide de l’utilisateur de Studio
Introduction
Les automatisations codées vous permettent de créer des automatisations à l'aide de code au lieu d'activités par glisser-déposer, ce qui favorise un travail collaboratif sur des projets complexes. Dans les workflows et les cas de test codés, vous pouvez utiliser les services UiPath (équivalent à des packages d'activités), des API (similaires à des activités), des packages NuGet .NET externes et vos classes C# personnalisées dans UiPath Studio. Cela facilite l'intégration avec des systèmes externes, des bases de données, des API et d'autres services.
Les workflows codés se comportent comme des workflows standard, ce qui signifie qu'ils peuvent également être appelés à partir de workflows UiPath standard, et vice versa, à l'aide de l'activité Appeler le fichier de flux de travail (Invoke Workflow File).
En outre, les types définis dans le code, tels que les énumérations, peuvent être utilisés comme entrées dans les workflows UiPath standard.
Les automatisations codées peuvent être de trois types :
- Workflows codés : utilisés pour concevoir des workflows codés.
- Cas de test codés : utilisés pour concevoir des cas de test.
- Fichiers source du code : utilisés pour créer du code que vous pouvez appeler ultérieurement dans d'autres types de fichiers codés.
UiPath.CodedWorkflows
est généralement préinstallé. Le package est livré avec la base CodedWorkflowBase
et la classe partielle CodedWorkflow
.
Le package est préinstallé lorsque :
- Vous créez un nouveau projet avec a minima la version 23.10 de System.Activities, Testing.Activities ou UIAutomation.Activities, ou tout autre package d’activités prenant en charge le workflow codé.
- Vous créez un nouveau workflow codé, un cas de test codé ou un fichier source du code dans votre projet.
Si vous ne pouvez pas utiliser d'automatisations codées dans les scénarios indiqués, téléchargez le package à partir du menu Gérer les packages (Manage Packages).
Voici quelques-uns des avantages de l’utilisation d'automatisations codées :
- Productivité améliorée : si vous maîtrisez le codage ou les scripts, vous pouvez tirer parti de vos compétences et augmenter votre productivité. Travailler dans un environnement de codage familier vous permet de développer des automatisations plus efficaces.
- Gestion de la complexité : les automatisations codées offrent une solution flexible pour gérer des scénarios d'automatisation complexes. En utilisant du code, vous pouvez implémenter une logique personnalisée, gérer des exceptions et créer des fonctions réutilisables.
- Automatisation hybride : vous pouvez utiliser des automatisations codées de manière interchangeable avec des automatisations low-code. Cela permet une intégration transparente entre les deux approches et vous permet de créer des solutions d'automatisation flexibles.
- Performances améliorées : les automatisations codées vous permettent d'optimiser vos workflows d'automatisation pour améliorer les performances. En utilisant du code, vous pouvez implémenter des algorithmes spécifiques pour accélérer les exécutions d'automatisation.
- Lisibilité : les automatisations codées vous permettent de créer du code structuré, ce qui améliore sa lisibilité. Si vous organisez votre code et le documentez, vous pouvez facilement le gérer et le partager avec d’autres collaborateurs.
Les automatisations codées présentent une conception structurée avec des espaces de noms, des classes d'aide et des méthodes de point d'entrée. La structure des automatisations codées vous permet d’écrire les automatisations à l’aide du langage de programmation C#.
Suivez la structure détaillée d'une automatisation codée tel que décrit dans les sections suivantes.
Lorsque vous créez une automatisation codée, un espace de noms est automatiquement généré à l'aide du nom du projet Studio. Par exemple, si votre projet Studio se nomme « Mon projet » (My project), l'espace de noms de toutes les automatisations codées sera « Monprojet » (Myproject).
De plus, si vous créez une automatisation codée dans un dossier de votre projet Studio, l'espace de noms correspondra au nom du projet et du dossier. Par exemple, si votre projet Studio s'appelle « Mon projet » (My project) et que le dossier se nomme « place », l'espace de noms sera « Monprojet.place » (Myproject.place).
CodedWorkflow
du package UiPath.CodedWorkflows. Cette classe permet à l’automatisation d’accéder aux interfaces nécessaires pour les services (équivalent aux packages d’activités), en fonction des packages d’activités installés dans votre projet.
Workflow codé
CodedWorkflow
, créant ainsi une relation de type CodedAutomationExample : CodedWorkflow
. Cela signifie que la classe CodedAutomationExample
hérite des attributs, des méthodes et des fonctionnalités de la classe CodedWorkflow
. Elle peut principalement accéder et utiliser les fonctionnalités définies dans la classe CodedWorkflow
, qui fournit une base de l'automatisation codée, ce qui facilite l'élaboration et la personnalisation du comportement de l'automatisation.
CodedWorkflow
est déclarée comme classe partielle, ce qui vous permet d'étendre ses fonctionnalités en définissant la même classe partielle CodedWorkflow
dans un fichier source du code. De cette façon, vous pouvez ajouter de nouveaux champs et de nouvelles méthodes pour personnaliser davantage le comportement de vos automatisations codées. Vous pouvez utiliser cette approche pour implémenter une interface Avant
CodedWorkflow
hérite de la classe CodedWorkflowBase
.
CodedWorkflowBase
CodedWorkflowBase
contient les fonctionnalités intégrées héritées par une automatisation codée. Cette classe contient des méthodes et des propriétés spécifiques pour la gestion des instances de workflow, l'accès au runtime, la gestion des conteneurs de services et la configuration des contextes d'environnement. La classe CodedWorkflowBase
offre également une autre méthode distincte de journalisation que vous pouvez personnaliser vous-même.
CodedWorkflowBase
.
CodedWorkflowBase
dans le tableau ci-dessous :
Method | Description |
---|---|
ICodedWorkflowServices services Remarque : nous vous recommandons d’utiliser les méthodes
Log , BuildClient et RunWorkflow via la classe services et leurs services correspondants, au lieu de les utiliser en tant que méthodes autonomes et facilement disponibles.
| Permet d’accéder aux services disponibles pour les workflows codés, tels que :
|
serviceContainer(ICodedWorkflowServiceContainer) Remarque : cette syntaxe a été remplacée par
ICodedWorkflowServices services . Si vous continuez d’utiliser cette syntaxe, un avertissement vous invite à utiliser la nouvelle syntaxe services.Container .
| Permet d'accéder au conteneur d'injection de dépendance spécifique au workflow codé actuel. Ce conteneur, appelé conteneur de service, vous permet de récupérer les instances de services qui y ont été enregistrées. |
GetRunningJobInformation() | Récupère des informations sur la tâche en cours d'exécution dans le contexte du workflow codé. La méthode accède à la propriété RunningJobInformation de l'objet executorRuntime , qui contient des informations sur le statut, la progression, les paramètres et les horodatages de la tâche.
|
Log(string message, LogLevel level = LogLevel.Info, IDictionary<string, object> additionalLogFields = null) | Ajoute des champs de journal supplémentaires pour consigner les messages avec les attributs spécifiés. |
RunWorkflow(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | Fournit une structure pour exécuter un workflow dans le contexte d'un runtime de workflow donné. Elle peut définir les paramètres, gérer l'isolement potentiel et lancer l'exécution du workflow. La tâche renvoyée fournit les résultats du workflow exécuté, y compris ses arguments de sortie et d'entrée/de sortie. |
RunWorkflowAsync(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | Fournit une structure pour exécuter un workflow de manière asynchrone dans le contexte d'un runtime de workflow donné. Elle peut définir les paramètres, gérer l'isolement potentiel et lancer l'exécution du workflow. La tâche renvoyée fournit les résultats du workflow exécuté, y compris ses arguments de sortie et d'entrée/de sortie. |
DelayAsync(TimeSpan time) et DelayAsync(int delayMs) | Suspend l'exécution de manière asynchrone pendant une période spécifiée. |
Delay(TimeSpan time) et Delay(int delayMs) | Suspend l'exécution pendant une période spécifiée. |
HttpClient BuildClient (string scope = "Orchestrator", bool force = true) | Génère un client HTTP avec une étendue et un jeton d'accès spécifiés. |
RegisterServices (ICodedWorkflowsServiceLocator serviceLocator) | Enregistre les services (packages d'activités) dans le localisateur de services du workflow codé. Vous pouvez contourner cette opération lorsque vous souhaitez injecter des services personnalisés dans le conteneur d'injection de dépendance. Pour savoir comment créer et utiliser des services personnalisés (packages d'activités codées); cliquez ici. |
Execute()
et est attribuée sous la forme Workflow
ou TestCase
. Vous pouvez modifier le nom de la méthode, tant que vous l'attribuez à Workflow
ou TestCase
.
Execute()
([TestCase]
ou [Workflow]
) dans un fichier, qui hérite de la classe Coded Workflow
.
Dans cette méthode, vous pouvez ajouter des arguments d'entrée et/ou de sortie, qui sont équivalents aux arguments In, Out ou In/Out dans les automatisations low-code. Suivez le didacticiel Utilisation d'arguments d'entrée et de sortie pour apprendre à utiliser des arguments dans des automatisations codées.
Execute()
.
Compatibilité du projet
Vous pouvez utiliser les automatisations codées uniquement dans les projets Windows et multiplate-forme.
System.Activities
n'est pas seulement un package d'activités dans les automatisations low-code, mais également un service dans les automatisations codées. Comme pour les activités contenues dans un package d'activités, un service possède des API que vous pouvez utiliser pour créer des automatisations codées.
Les services disponibles pouvant être utilisés dans les automatisations codées sont les suivants :
Service | Version |
---|---|
System.Activities | 23.10 et versions ultérieures |
UiAutomation.Activities | 23.10 et versions ultérieures |
Testing.Activities | 23.10 et versions ultérieures |
MobileAutomation.Activities | Aperçu 23.12 et versions ultérieures |
Mail.Activities | 1.22.1 et versions ultérieures |
Excel.Activities | Aperçu 2.23.2 et versions ultérieures |
Pour utiliser des packages d'activités dans des automatisations codées, procédez comme suit :
- Téléchargez le package d'activité (équivaut à un service), comme vous le feriez pour des automatisations low-code. Vous obtenez une collection d'API à utiliser dans votre code.
- Appelez les API dans les services en utilisant le format service.API. Par exemple, si vous souhaitez utiliser l'API GetAsset, vous l'appelleriez
system.GetAsset
. - Les API ont des paramètres au lieu de propriétés. Après avoir appelé une API, vous pouvez configurer ses paramètres en fournissant des valeurs entre parenthèses. Par exemple, si vous avez une ressource dans l'instance Orchestrator à laquelle vous êtes connecté appelée
Email Address
, vous pouvez transmettre le nom de cette ressource en tant queString
à l'API :system.GetAsset("Email Address")
.