Créer des scripts Python et HCL dans Robots
L'application Robots fournit des scripts natifs, basés sur le cloud, que vous pouvez utiliser pour l'analyse des données ou pour automatiser des parties du flux de travail Diligent One de votre organisation. La rédaction de scripts dans Robots associe toute la puissance de Python à toutes ses bibliothèques prises en charge avec HighBond Command Language (HCL), notre bibliothèque Python personnalisée pour les analyses de données axées sur le domaine et l'automatisation Diligent One.
Robots continue de prendre en charge l'analyse et l'automatisation des données à l'aide d'ACLScript et de scripts chargés depuis Analytics. Vous pouvez ainsi profiter des investissements existants dans ACL (Audit Command Language) et de toutes les possibilités offertes par Python, langage de programmation standard dans le secteur, et HCL.
Trois types de robots
L'application Robots contient trois types de robots. Bien que similaires à bien des égards, les différents types de robots prennent en charge différents scénarios de script :
-
Robot ACL Prend en charge l'analyse des données à grande échelle grâce à des scripts que vous téléchargez à partir d'Analytics et grâce à des tâches planifiées. Les scripts peuvent s'exécuter dans le Cloud ou sur site.
-
Robot HighBond Prend en charge l'analyse de données à grande échelle avec des scripts Python/HCL créés directement dans le robot et des tâches planifiées. Les scripts peuvent s'exécuter dans le cloud uniquement.
-
Robot Flux de travail prend en charge les analyses de données légères ou permet d'automatiser certaines parties de votre flux de travail Diligent One à l'aide de scripts Python/HCL créés directement dans le robot et de tâches planifiées ou basées sur des événements. Les scripts peuvent s'exécuter dans le cloud uniquement.
Remarque
Pour accéder aux robots de flux de travail, vous devez avoir le type d'utilisateur Admin système avec l'abonnement Professionnel.
En effet, un admin système disposant de l'abonnement Professionnel sera en mesure de configurer des tâches dans les robots de flux de travail déclenchés par les événements Diligent One. Cette fonctionnalité est en cours de développement, elle n'est pas encore disponible.
Comparaison des types de robots
Les trois types de robots sont destinés à des fins différentes et sont fonctionnellement distincts les uns des autres. Vous ne pouvez pas mélanger ACLScript et Python/HCL dans un seul robot.
Caractéristique du robot | Robot ACL | Robot HighBond | Robot de flux de travail |
---|---|---|---|
Objectif visé | Analyse et automatisation des données | Automatisation de la plateforme Diligent One | |
Langue prise en charge | ACLScript |
|
|
Emplacement de création du script | Analytics | Robots | |
Emplacement d'exécution du script |
|
|
|
Options d'exécution d'une tâche |
|
|
|
Durée d'exécution maximale de la tâche |
|
Aucune limite Remarque Une limite de 12 heures est prévue, mais pas encore mise en œuvre. Si vous devez arrêter une tâche qui s'exécute depuis trop longtemps, vous pouvez cliquer sur Annuler l'exécution de la tâche dans l'onglet Exécution de tâche. |
15 minutes |
Nombre maximal de tâches qui s'exécutent simultanément | 5 | 5 | 50 |
Autorisations requises |
|
Type d'utilisateur administrateur système avec un abonnement professionnel |
Éditeur de scripts Robots
Les robots HighBond et les robots Workflow contiennent un éditeur de script intégré permettant de créer des scripts Python/HCL et de les exécuter de manière interactive (manuelle). L'éditeur de script est modélisé sur l'application Jupyter Notebook, un environnement de développement populaire dans la communauté de la science des données. L'éditeur de script utilise un Approche de la création de scripts basée sur les cellules.
Remarque
L'éditeur de scripts Robots est conçu pour l'analyse des données et l'automatisation dans Diligent One. Il n'a pas vocation à être un éditeur général de scripts Python ni un IDE (environnement de développement intégré). En tant que tel, il ne prend pas en charge l'éventail des fonctionnalités proposées par des IDE comme Jupyter ou PyCharm. Pour connaître ses limitations, consultez la section Fonctionnalités Jupyter Notebook non incluses dans l'éditeur de script Robots.
Numéro | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
Numéro de version et message de transmission du script ouvert dans l'éditeur de script |
||||||||||||||||
2 |
Nom du robot contenant le script |
||||||||||||||||
3 |
Commandes des cellules :
|
||||||||||||||||
4 |
Indicateurs de séquence affichant l'ordre dans lequel chaque cellule a été exécutée. Pour plus d'informations, consultez la section Caractéristiques clés de la création de scripts à partir de cellules. |
||||||||||||||||
5 |
Cellules pour l'écriture de code de script Pour plus d'informations, consultez la section Approche de la création de scripts basée sur les cellules. |
||||||||||||||||
6 | Sortie affichée d'une cellule | ||||||||||||||||
7 |
Barre d'outils supérieure :
|
||||||||||||||||
8 |
Bouton Variables : ouvre la fenêtre Variables pour définir des variables HCL Pour plus d'informations, consultez la section Utiliser des variables dans un script Python/HCL. |
||||||||||||||||
9 |
Bouton Demander à l’IA : ouvre le panneau de chat Demander à l’IA pour vous aider à créer des scripts Pour plus d’informations, consultez la section Utilisation de l'assistant IA de Script dans Robots. |
||||||||||||||||
10 | Bouton Fichiers de la session, avec le nombre de fichiers en cours : ouvre ou ferme le panneau Fichiers de la session | ||||||||||||||||
11 |
Bouton Enregistrer et transmettre : enregistre le script et le transmet en tant que nouvelle version |
Approche de la création de scripts basée sur les cellules
La fonctionnalité la plus évidente de l'éditeur de script est la capacité d'utiliser plusieurs cellules pour contenir les blocs de code individuels qui composent un seul script. Si vous n'êtes pas familiarisé à Jupyter Notebook, l'approche de la création de scripts basée sur les cellules peut sembler compliquée au premier abord. En fait, il est facile à utiliser et il présente des avantages que vous apprécierez rapidement.
Remarque
Les cellules n'affectent pas l'exécution des scripts. L'exécution planifiée sans assistance du script avance ligne par ligne, de haut en bas, indépendamment de la présence de cellules dans l'éditeur de script.
Caractéristiques clés de la création de scripts à partir de cellules
-
Plusieurs cellules sont facultatives Vous n'avez pas l'obligation d'utiliser plusieurs cellules si vous ne le souhaitez pas. Vous pouvez créer et exécuter un script entier à l'aide d'une seule cellule.
-
Divisions logiques Les cellules vous permettent de diviser un script en blocs logiques de votre choix et d'exécuter manuellement les blocs individuellement, dans n'importe quel ordre ou en tant que séquence entière.
Par exemple, une disposition de base de quatre cellules pour un script pourrait être :
-
première cellule importer des bibliothèques Python
-
deuxième cellule importer des données
-
troisième cellule effectuer des analyses sur les données
-
quatrième cellule sortir les résultats de l'analyse
-
-
Avantage des cellules L'utilisation de cellules pour le développement de scripts présente les avantages suivants :
-
Vous pouvez travailler sur des cellules individuelles de manière isolée, les tester et les améliorer, tout en ignorant temporairement la logique de script contenue dans d'autres cellules.
-
Après avoir exécuté une fois les cellules d'importation initiales, il n'est pas nécessaire de continuer à les exécuter pendant que vous développez et testez à plusieurs reprises les cellules suivantes.
-
Vous pouvez utiliser les cellules pour imposer un ordre visuel à vos scripts, en rendant la relation entre les différents blocs logiques plus facile à voir et à comprendre pour vous, ou pour quelqu'un d'autre.
-
-
Indicateur de séquence À côté de chaque cellule se trouve un indicateur numérique qui affiche l'ordre dans lequel la cellule a été exécutée pendant une session de script. Par exemple : [7].
Lorsque vous exécutez une cellule, le code s'incrémente, en tenant compte de toutes les autres cellules que vous avez exécutées entre-temps. Ainsi, par exemple, un indicateur pourrait passer de [7] à [10] si vous avez exécuté deux autres cellules entre-temps ou une autre cellule deux fois.
-
Mémoire de la session et valeurs stockées Les cadres de données et les valeurs des variables conservés en mémoire pendant une session de script sont mis à jour en fonction de l'ordre dans lequel vous exécutez les cellules.
En général, vous structurez les cellules pour qu'elles s'exécutent séquentiellement de haut en bas pendant l'exécution programmée et sans assistance du script. Certains cadres de données ou certaines valeurs de variables peuvent être mis à jour progressivement sur la base d'une logique de script. Si vous exécutez manuellement des cellules dans le désordre, l'état actuel d'un cadre de données ou d'une valeur de variable peut ne pas correspondre à ce que vous supposez et une erreur ou un résultat inexact peut se produire. Pour rétablir le cadre de données ou la valeur de la variable à son état initial, il suffit de ré-exécuter toutes les cellules faisant référence au cadre de données ou à la variable dans l'ordre prévu.
-
Affichage d'une sortie de cellule Par défaut, l'exécution d'une cellule affiche uniquement la sortie de la dernière expression de la cellule. Si vous voulez voir le résultat de plusieurs expressions dans une cellule, vous pouvez placer les expressions dans des cellules séparées. Cependant, une approche plus pratique consiste à définir une option de configuration dans l'éditeur de script.
-
Configurer les cellules pour afficher la sortie de toutes les expressions :
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"
-
Réinitialiser les cellules pour afficher le résultat de la dernière expression seulement :
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "last_expr"
Astuce
Vous pouvez utiliser le paramètre de configuration pour passer d'un mode à l'autre selon vos besoins. Pour des options de configuration supplémentaires pour la sortie des cellules, consultez la documentation Jupyter ou IPython en ligne.
-
Raccourcis clavier dans l'éditeur de script Robots
Les raccourcis clavier dans l'éditeur de script vous permettent de développer un script de manière pratique et rapide. Dans l'éditeur de script, affichez la liste des raccourcis disponibles de l'une des façons suivantes :
-
Appuyez sur Ctrl+/
-
Cliquez sur l'icône Raccourci clavier dans la barre de titre
Les raccourcis disponibles sont indiqués ci-dessous.
Raccourci clavier | Action |
---|---|
Ctrl + Maj + Entrée | Exécuter la cellule sélectionnée |
Ctrl + Maj + M | Exécuter toutes les cellules de manière séquentielle |
Ctrl + Maj + Y | Exécuter la cellule sélectionnée et toutes les cellules au-dessus |
Ctrl + Maj + U | Exécuter la cellule sélectionnée et toutes les cellules en dessous |
Ctrl + Maj + I | Arrêter l'exécution du script |
Ctrl + Maj + K Ctrl + Maj + Flèche vers le haut |
Sélectionner la cellule au-dessus |
Ctrl + Maj + J Ctrl + Maj + Flèche vers le bas |
Sélectionner la cellule en dessous |
Ctrl + Maj + H Ctrl + Maj + Orig. |
Sélectionner la première cellule |
Ctrl + Maj + L Ctrl + Maj + Fin |
Sélectionner la dernière cellule |
Ctrl + Maj + A | Ajouter une cellule au-dessus |
Ctrl + Maj + B | Ajouter une cellule en dessous |
Ctrl + Maj + D | Supprimer la cellule sélectionnée |
Ctrl + Maj + Z | Déplacer la cellule vers le haut |
Ctrl + Maj + X | Déplacer la cellule vers le bas |
Fonctionnalités Jupyter Notebook non incluses dans l'éditeur de script Robots
Comme indiqué ci-dessus, l'éditeur de script Robots est modélisé sur l'application Jupyter Notebook. Ces fonctionnalités de Jupyter ne sont pas incluses dans l'éditeur de script, bien que certaines d'entre elles puissent l'être au fil du temps, à mesure que le produit continue d'évoluer :
-
Opérations au niveau de la cellule :
-
annuler/répéter les opérations de la cellule
-
copier/coller des cellules
-
fractionner/fusionner des cellules
-
-
Cellules Markdown (pour du contenu texte)
Enregistrer une sortie de script dans un fichier journal
Quand vous exécutez un script Python/HCL à l'aide d'une tâche de robot, vous pouvez enregistrer la sortie de script dans le fichier journal qui accompagne chaque exécution de tâche. Le journal est un fichier JSON qui porte le même nom que la tâche (nom_tâche.json).
Pour activer cette option, sélectionnez Enregistrer la sortie du script dans le fichier journal d'exécution de la tâche quand vous enregistrez et transmettez une version d'un script. L'option peut être configurée séparément pour chaque version d'un script. Si vous souhaitez enregistrer la sortie du script, veillez donc bien à sélectionner l'option pour la version de script spécifique que la tâche exécute.
Une sortie de script fait référence à tout ce qui se trouve dans le flux stdout produit par un script. Généralement, stdout correspond à tout ce que le script imprime ou affiche à l'écran quand vous exécutez un script de manière interactive. Sélectionner Enregistrer la sortie du script dans le fichier journal d'exécution de la tâche revient donc à capturer de manière permanente tout ce qui s'affiche à l'écran. Il peut être utile d'examiner cette sortie de script quand vous développez et dépannez des scripts.
Informations supplémentaires :
-
L'option ne s'applique qu'aux tâches Même si vous sélectionnez Enregistrer la sortie du script dans le fichier journal d'exécution de la tâche dans l'éditeur de script Robots, l'option s'applique uniquement aux scripts exécutés par une tâche de robot. L'option n'a aucun effet quand vous exécutez un script de manière interactive dans l'éditeur de script.
-
Messages d'erreur dans le fichier journal d'exécution de la tâche Les messages d'erreur Python (le flux stderr) sont toujours inclus dans le fichier journal d'exécution de la tâche, quelle que soit la configuration de l'option Enregistrer la sortie du script dans le fichier journal d'exécution de la tâche.
-
Accéder au fichier journal d'exécution de la tâche Un fichier journal d'exécution de la tâche est créé pour chaque exécution de tâche dans l'onglet Exécutions de tâche. Sélectionnez une exécution de tâche. Le fichier journal s'affiche dans la section Sortie du panneau latéral Task run details (Détails d'exécution de la tâche). Vous pouvez télécharger le fichier sur votre ordinateur pour l'examiner.
Faire la transition d'ACLScript à Python et HCL
Python est un langage de programmation polyvalent et est nettement plus complexe qu'ACLScript, qui est un langage de script relativement simple, conçu à l'origine pour le domaine des outils d'analyse d'audit.
Notre intention est qu'au fil du temps, HCL reproduise un grand nombre des commandes et fonctions disponibles dans ACLScript. Pour commencer à utiliser HCL, notre bibliothèque Python personnalisée, vous devez avoir au moins des connaissances de base en Python. Le conseil pour ceux qui cherchent à faire la transition d'ACLScript à Python/HCL est de suivre un bon cours d'introduction à Python.
Conventions de codage Python
Vous devrez vous habituer à certaines conventions de codage qui ne sont pas appliquées dans ACLScript mais qui le sont dans Python et HCL :
-
Respect de la casse La syntaxe Python et HCL est sensible à la casse, alors que la syntaxe ACLScript ne l'est pas.
Dans Python :
-
print("Hello World!") fonctionne
-
PRINT("Hello World!") renvoie une erreur
-
-
Aucune abréviation La fonction, la méthode et les noms des paramètres Python et HCL doivent être épelés complètement. A la différence d'ACLScript, les abréviations ne sont pas prises en charge.
-
Le retrait compte Python utilise le retrait pour mettre en place des structures de contrôle comme les instructions conditionnelles et les boucles. Un retrait incorrect entraîne des erreurs. ACLScript ignore le retrait.
Bibliothèques Python externes
Python prend en charge un grand nombre de bibliothèques ou packages externes que vous pouvez installer pour étendre les fonctionnalités de l'installation de Core Python et de la bibliothèque standard Python. Une bibliothèque externe Python est une collection de modules de code lié conçus pour effectuer des actions spécifiques dépassant ce qu'il est possible de faire avec Core Python et la bibliothèque standard. Par ailleurs, cela permet d'effectuer certaines actions plus rapidement et plus aisément que dans Core Python.
Remarque
Les termes "bibliothèque" et "package" sont souvent utilisés de manière interchangeable lorsqu'il est fait référence à des packs de code externes que vous pouvez installer pour étendre Python. Certes, il existe des différences techniques entre une bibliothèque Python et un package Python, mais vous ne devez pas vous en soucier dans votre utilisation de Python dans Robots.
Bibliothèques externes incluses dans Python Diligent One
L'installation Diligent One de Python inclut certaines bibliothèques externes par défaut ; vous ne devez donc pas les installer en tant que telles. À l'exception de la propre bibliothèque Python HCL de Diligent, vous devez importer les bibliothèques pré-installées afin de les utiliser dans la logique de script Python/HCL qui s'ensuivra.
Bibliothèques externes pré-installées dans l'environnement Python Diligent One :
Bibliothèque | Description | Instructions IMPORT de Python |
---|---|---|
HCL | La bibliothèque HCL, ou HighBond Command Language (HCL), est la bibliothèque Python personnalisée de Diligent pour les analyses de données axées sur le domaine et pour l'automatisation de Diligent One. | non requis |
Pandas | La bibliothèque Pandas offre un ensemble solide d'outils pour la manipulation et l'analyse des données dans Python, comme des cadres de données sous forme de tableaux de données en deux dimensions ressemblant à des feuilles de calcul ou à des tables. |
import pandas ou import pandas as pd (peut éventuellement créer un alias au format abrégé pour le nom de la bibliothèque) |
NumPy | La bibliothèque NumPy offre des fonctionnalités de calcul scientifiques rapides et puissants dans Python : des opérations d'algèbre et de statistiques de base aux opérations de mathématiques avancées, en passant par l'élaboration et la réalisation de calculs sur des tableaux multidimensionnels. |
import numpy ou import numpy as np (peut éventuellement créer un alias au format abrégé pour le nom de la bibliothèque) |
Requests | La bibliothèque Requests fournit une syntaxe légère pour créer des requêtes HTTP dans Python et interagir avec des API Web. |
import requests ou import requests as req (peut éventuellement créer un alias au format abrégé pour le nom de la bibliothèque) |
Cryptography | La bibliothèque Cryptography prend en charge l'incorporation d'algorithmes cryptographiques dans Python. |
import cryptography ou import cryptography as crypt (peut éventuellement créer un alias au format abrégé pour le nom de la bibliothèque) |
Installation de bibliothèques externes supplémentaires
Les robots HighBond prennent en charge l'installation de bibliothèques externes supplémentaires en plus de celles pré-installées avec l'environnement Python Diligent One. Pour installer une bibliothèque supplémentaire, utilisez pip , un outil destiné au téléchargement et à l'installation de packages Python. Par défaut, pip télécharge les packages du Python Package Index (PyPI), un référentiel open source de logiciels Python. Vous pouvez aussi utiliser pip pour installer des packages d'autres sources.
Par exemple, pour installer pyexcel , une bibliothèque Python permettant d'utiliser des fichiers et données Excel, utilisez cette commande dans l'éditeur de scripts Robots :
pip install pyexcel
Même si vous installez une bibliothèque externe, il n'y a aucune garantie que l'éditeur de scripts Robots prenne en charge toutes les fonctionnalités de la bibliothèque externe. Par exemple, il peut ne pas prendre en charge l'affichage des graphiques et traçages disponibles dans certaines bibliothèques externes.
Remarque
Actuellement, les robots de flux de travail ne prennent pas en charge l'installation de bibliothèques externes supplémentaires.
Utiliser HCL et Python avec des API
Vous pouvez utiliser les scripts Python/HCL dans Robots pour travailler avec les API, à la fois avec des API tierces et avec la propre API de Diligent One.
Remarque
Si vous spécifiez explicitement des informations sur l'hôte dans une demande d'API effectuée à partir de Robots, vous devez utiliser le protocole HTTPS. Par exemple :
-
https://openexchangerates.org/api
-
https://apis-us.highbond.com
Utiliser une API tierce
Pour utiliser une API tierce, commencez par importer la bibliothèque Python Requests dans l'éditeur de script Robots :
import requests
Vous pouvez maintenant faire des requêtes API en utilisant la syntaxe de requête de Python et recevoir des réponses. Afin d'obtenir un exemple simple d'utilisation de Python pour la création d'une requête dans une API tierce dans Robots, consultez la section Partie 3 : Étendez votre champ d'action dans Vos premiers pas avec la création de scripts Robots et l'API Diligent HighBond.
Expliquer dans le détail comment utiliser Python avec des API tierces dépasse le périmètre de notre documentation. Cependant, il existe de nombreuses ressources en ligne qui peuvent fournir des conseils détaillés.
Utiliser l'API HighBond
L'API HighBond est l'interface de développement de la plateforme Diligent One. Vous pouvez utiliser l'API pour automatiser les interactions et le flux de travail de Diligent One, créer des rapports et intégrer Diligent One à d'autres systèmes de votre organisation.
HCL comprend des méthodes qui facilitent l'interaction avec l'API HighBond. Pour plus d'informations, consultez la section Méthodes API HighBond HCL.
Vous pouvez également utiliser la bibliothèque Python Requests avec l'API HighBond. Toutefois, pour des raisons de facilité et de simplicité, nous recommandons d'utiliser les méthodes HCL.
Pour suivre un tutoriel d'introduction sur l'utilisation de Python et de HCL avec l'API HighBond, consultez la section Premiers pas avec la création de scripts Robots et l'API Diligent HighBond.