Workiva prend en charge la bibliothèque standard de Python et le Python Package Index (PyPI). Les dépendances peuvent être générées automatiquement à l'aide de l'éditeur de scripts intégré ou créées manuellement sur votre machine locale.
Note: La création de scripts n'est actuellement possible que par l'intermédiaire de Customize Workiva. En savoir plus.
Exigences
- Workiva Scripting doit être activé pour votre espace de travail. En savoir plus sur Workiva Scripting.
- Le rôle d'éditeur de script est nécessaire pour créer ou modifier des scripts.
Bibliothèques prises en charge
Les scripts Workiva prennent en charge la bibliothèque standard de Python dès le départ ; il vous suffit d'importer le module dans votre code et de commencer à l'utiliser. Cette bibliothèque contient des modules intégrés qui permettent d'accéder à des fonctionnalités du système telles que les entrées/sorties de fichiers, ainsi que de nombreuses solutions standardisées pour des problèmes de programmation courants.
En plus de la bibliothèque standard, il existe une collection croissante de composants disponibles sur le site Python Package Index. Vous devrez générer dans votre script les dépendances qui incluent les composants PyPI que vous souhaitez utiliser.
L'un des composants PyPI que nous utilisons couramment est le composant "requests", qui vous permet d'interagir avec la plateforme Workiva par le biais de Workiva Public APIs.
Note: Les composants PyPI qui nécessitent des installations supplémentaires peuvent ne pas être pris en charge.
Générer des dépendances avec l'éditeur de scripts
L'éditeur de scripts peut construire automatiquement vos dépendances.
Voici comment :
- À partir de Home, ouvrez un fichier script (ou créez-en un nouveau).
- Allez dans le panneau Sources sur le côté gauche, cliquez avec le bouton droit de la souris dans l'espace vide situé juste en dessous des sources actuelles et sélectionnez Add Source File.
- Créer une nouvelle source nommée : requirements.txt.
- Dans le canevas central, ajoutez une ligne spécifiant la bibliothèque et la version à installer. (Il s'agit de la ligne requests==2.28.1 dans notre exemple d'image).
- Cliquez sur Save en haut à gauche.
- Rechargez votre écran. Ne sautez pas cette étape !
Une fois sauvegardé et actualisé, Workiva génère automatiquement un paquet de dépendances appelé dependencies.zip. Vous pouvez maintenant utiliser la bibliothèque dans votre code.
Générer des dépendances à partir de votre machine locale
Pour créer manuellement des dépendances, vous devez créer un paquetage localement et le télécharger dans l'éditeur de script. Par exemple, vous pouvez avoir un projet qui a besoin d'accéder à la bibliothèque "requests" pour exécuter un script :
import requests print (requests.get('https://api.github.com').text) Cela peut être fait using un gestionnaire de paquets compatible avec pip :
- Définir la version de la bibliothèque "requests" à laquelle accéder dans un format compatible avec pip ; elle doit être sauvegardée dans un fichier .TXT :
echo requests==2.26.0 > requirements.txt
- Installer la dépendance dans un nouveau répertoire Dependencies:
pip3 install --target ./dependencies --requirement requirements.txt
- Créer un fichier dependencies.zip:
cd dependencies
zip -r ../dependencies.zip .
cd ....
- Dans votre projet Workiva Scripting, créez un fichier vide dependencies.zip:
curl -k -v -X POST \
-H 'Content-type : application/x-www-form-urlencoded;charset=UTF-8' \
-d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&grant_type=client_credentials" \
https://api.app.wdesk.com/iam/v1/oauth2/token - Pour obtenir le lien du point de terminaison, cliquez sur Run Link dans le menu en haut de l'éditeur de script :
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
Vous devriez obtenir la réponse suivante. Vous pouvez récupérer le fichier Id à partir de là.
-H "Content-Type : application/json" -H "Authorization : Bearer $BEARER_TOKEN" \N-
-d '{"path" : "dependencies.zip"}'
{"id" :"<file-id>", "path" : "dependencies.zip"} - Pour obtenir une liste des ID de fichiers dans votre script, faites une requête GET:
curl -X GET https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
-H "Content-Type:application/json" \
-H "Authorization : Bearer $BEARER_TOKEN" - Téléchargez le fichier dependencies.zip vers le nouvel ID de fichier :
curl -X PUT https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files/<file-id> \N
-H "Authorization : Bearer $BEARER_TOKEN" --data-binary @dependencies.zip - Pour tester la bibliothèque "requests", exécutez un script contenant le code suivant :
import requests print (requests.get('https://api.github.com').text)
FAQ
Quelles sont les API et les bibliothèques prises en charge ?
Workiva Scripting prend actuellement en charge :
- API publiques Workiva
- API non Workiva
- La bibliothèque standard de Python
- L'index des paquets Python (PyPI)
La prise en charge d'autres langues est toujours à l'étude et pourrait être mise en œuvre à l'avenir.
En savoir plus : Bibliothèques et dépendances Workiva Scripting prises en charge
Quelle version de Python est utilisée dans Workiva Scripting ?
Workiva Scripting supporte actuellement l’utilisation de Python 3,9 et Python 3,13, avec un support pour l’utilisation de Python 3,9 se terminant en mars 2026.
En savoir plus : Migration des scripts vers Python 3,13 dans Workiva
Workiva fournit-il des clients API avec des langages populaires tels que Python ou Java ?
Nous ne fournissons pas actuellement de SDK publics pour Python ou Java.
Cependant, nous fournissons des spécifications ouvertes pour les API de Workiva afin que vous puissiez générer ces bibliothèques vous-même. Par exemple, vous pouvez obtenir le fichier OAS de l'API de la plateforme Workiva et générer une bibliothèque client.
Existe-t-il des API spécifiques aux scripts ?
Les points d'extrémité de l'API de script sont disponibles en tant que points d'extrémité de prototype dans l'API de la plateforme de prototypage de Workiva.
Comment puis-je créer et visualiser les subventions API pour les API publiques de Workiva ?
Vous devrez obtenir un identifiant et un secret client en suivant les instructions de ici.
Comment puis-je m'autoriser à utiliser les API publiques de Workiva à l'aide de Python ?
L'extrait de code suivant fait appel au service IAM pour générer un jeton d'accès qui est ensuite utilisé pour s'authentifier auprès des points d'extrémité du prototype Scripting. Il obtiendra une liste de tous les scripts auxquels la subvention de l'API (c'est-à-dire le client) a accès dans l'espace de travail où la subvention a été créée.
import requests import json import os AUTH_URL = "https://api.app.wdesk.com/iam/v1/oauth2/token" SCRIPTING_API_URL = "https://api.app.wdesk.com/prototype/platform/scripts/" CLIENT_ID = os.getenv('CLIENT_ID') CLIENT_SECRET = os.getenv('CLIENT_SECRET') tokenResponse = requests.post( AUTH_URL, data = 'client_id=' + CLIENT_ID + '&client_secret=' + CLIENT_SECRET + '&grant_type=client_credentials', headers = {'Content-Type': 'application/x-www-form-urlencoded; \ charset=UTF-8'}) accessToken = 'Bearer ' + json.loads(tokenResponse.text)['access_token'] dataRes = requests.get(SCRIPTING_API_URL, headers = {'Authorization': accessToken}) print(json.loads(dataRes.text))
Comment mettre à jour le format des cellules en utilisant Python ?
Le point de terminaison du prototype Update Sheet Content permet de mettre à jour le format des cellules à l'aide d'un code Python.
Puis-je lire/écrire ou télécharger des fichiers non-Workiva stockés dans Workiva ?
Pour l'instant, il n'y a pas de points d'extrémité disponibles pour lire/écrire ou télécharger des fichiers non-Workiva stockés dans Workiva.
Puis-je créer et gérer des automatismes de manière programmatique ?
Pour l'instant, il n'existe pas de points d'extrémité permettant de créer ou de gérer des automatismes de manière programmatique.