Workiva unterstützt sowohl die Standardbibliothek von Python als auch den Python Package Index (PyPI). Abhängigkeiten können automatisch mit dem integrierten Skript-Editor oder manuell auf Ihrem lokalen Rechner erstellt werden.
Hinweis: Scripting ist derzeit nur über Customize Workiva verfügbar. Erfahren Sie mehr.
Anforderungen
- Workiva Scripting muss für Ihren Arbeitsbereich aktiviert sein. Erfahren Sie mehr über Workiva Scripting.
- Die Rolle Script Editor ist erforderlich, um Scripts zu erstellen oder zu bearbeiten.
Unterstützte Bibliotheken
Workiva Skripte unterstützen Python's Standardbibliothek out-of-the-box Diese Bibliothek enthält integrierte Module, die den Zugriff auf Systemfunktionen wie Dateieingabe und -ausgabe ermöglichen, sowie viele standardisierte Lösungen für allgemeine Programmierprobleme.
Zusätzlich zur Standardbibliothek gibt es eine wachsende Sammlung von Komponenten, die über den Python Package Index verfügbar sind. Sie müssen die Abhängigkeiten in Ihrem Skript generieren, die die PyPI-Komponenten enthalten, die Sie verwenden möchten.
Eine der PyPI-Komponenten, die wir häufig verwenden, ist die "requests"-Komponente, die es Ihnen ermöglicht, mit der Workiva-Plattform über die Workiva Public APIs zu interagieren.
Hinweis: PyPI-Komponenten, die zusätzliche Installationen erfordern, werden möglicherweise nicht unterstützt.
Abhängigkeiten mit dem Skript-Editor generieren
Der Skript-Editor kann Ihre Abhängigkeiten automatisch erstellen.
So geht's:
- Öffnen Sie unter Home eine Skriptdatei (oder erstellen Sie eine neue).
- Wechseln Sie zum Bereich Quellen auf der linken Seite, klicken Sie mit der rechten Maustaste in den leeren Bereich direkt unter den aktuellen Quellen und wählen Sie + Quelldatei hinzufügen.
- Erstellen Sie eine neue Quelle mit dem Namen: requirements.txt.
- Fügen Sie im mittleren Canvas eine Zeile hinzu, in der Sie die zu installierende Bibliothek und Version angeben. (Dies ist die Zeile requests==2.28.1 in unserem Beispielbild.)
- Klicken Sie oben links auf Speichern.
- Laden Sie Ihren Bildschirm neu. Überspringen Sie diesen Schritt nicht!
Nach dem Speichern und Aktualisieren erzeugt Workiva automatisch ein Abhängigkeitsbündel namens dependencies.zip. Sie können die Bibliothek nun in Ihrem Code verwenden.
Erzeugen von Abhängigkeiten von Ihrem lokalen Rechner
Um Abhängigkeiten manuell zu erstellen, müssen Sie ein Paket lokal erstellen und es in den Skripteditor hochladen. Sie haben zum Beispiel ein Projekt, das auf die "requests"-Bibliothek zugreifen muss, um ein Skript auszuführen:
import requests print (requests.get('https://api.github.com').text) Dies kann using einem pip-kompatiblen Paketmanager erfolgen:
- Definieren Sie die Version der "requests"-Bibliothek, auf die Sie zugreifen möchten, als pip-kompatibles Format; sie sollte als .TXT-Datei gespeichert werden:
echo requests==2.26.0 > requirements.txt
- Installieren Sie die Abhängigkeit in ein neues Verzeichnis Dependencies:
pip3 install --target ./dependencies --requirement requirements.txt
- Erstellen Sie eine dependencies.zip-Datei:
cd dependencies
zip -r ../dependencies.zip .
cd ...
- Erstellen Sie in Ihrem Workiva Scripting Projekt eine leere dependencies.zip Datei:
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 - Um den Link des Endpunkts zu erhalten, klicken Sie auf Run Link im Menü oben im Skript-Editor:
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
Sie sollten die folgende Antwort erhalten. Sie können die Datei Id von dort abholen.
-H "Content-Type: application/json" -H "Authorization: Bearer $BEARER_TOKEN" \
-d '{"path": "dependencies.zip"}'
{"id":"<file-id>", "path": "dependencies.zip"} - Um eine Liste der Datei-IDs in Ihrem Skript zu erhalten, machen Sie eine GET-Anfrage:
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" - Laden Sie die Datei dependencies.zip unter der neuen Datei-ID hoch:
curl -X PUT https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files/<file-id> \
-H "Authorization: Bearer $BEARER_TOKEN" --data-binary @dependencies.zip - Um die "requests"-Bibliothek zu testen, führen Sie ein Skript mit dem folgenden Code aus:
import requests print (requests.get('https://api.github.com').text)
FAQ
Welche APIs und Bibliotheken werden unterstützt?
Workiva Scripting unterstützt derzeit:
- Öffentliche Workiva-APIs
- Nicht-Workiva-APIs
- Die Standardbibliothek von Python
- Der Python-Paketindex (PyPI)
Die Unterstützung weiterer Sprachen wird derzeit noch geprüft und könnte in Zukunft implementiert werden.
Erfahren Sie mehr: Unterstützte Workiva Scripting Bibliotheken und Abhängigkeiten
Welche Version von Python wird in Workiva Scripting verwendet?
Workiva Scripting unterstützt derzeit die Verwendung von Python 3.9 und Python 3.13. Die Unterstützung zur Nutzung von Python 3.9 endet im März 2026.
Weitere Informationen: Migrieren von Skripten zu Python 3.13 in Workiva
Bietet Workiva API-Clients mit gängigen Sprachen wie Python oder Java an?
Wir bieten derzeit keine öffentlichen SDKs für Python oder Java an.
Wir stellen jedoch offene API-Spezifikationen für Workiva-APIs zur Verfügung, so dass Sie diese Bibliotheken selbst erstellen können. Zum Beispiel können Sie die OAS-Datei der Workiva Platform API erhalten und eine Client-Bibliothek generieren.
Gibt es skriptspezifische APIs?
Skripting-API-Endpunkte sind als Prototyp-Endpunkte innerhalb der Workiva's Prototype Platform API verfügbar.
Wie kann ich API-Grants für die Workiva Public APIs erstellen und einsehen?
Sie müssen eine Client-ID und ein Geheimnis erhalten, indem Sie die Anweisungen von befolgen:.
Wie autorisiere ich mich für die öffentlichen APIs von Workiva mit Python?
Der folgende Codeausschnitt ruft den IAM-Dienst auf, um ein Zugriffstoken zu generieren, das dann zur Authentifizierung bei den Scripting-Prototyp-Endpunkten verwendet wird. Es wird eine Liste aller Skripte angezeigt, auf die die API-Berechtigung (d.h. der Client) in dem Arbeitsbereich, in dem die Berechtigung erstellt wurde, Zugriff hat.
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))
Wie kann ich das Format von Zellen mit Python aktualisieren?
Der Update Sheet Content Prototyp-Endpunkt ermöglicht die Aktualisierung des Formats von Zellen mit Python-Code.
Kann ich in Workiva gespeicherte Nicht-Workiva-Dateien lesen/schreiben oder hochladen?
Zur Zeit gibt es keine Endpunkte, um in Workiva gespeicherte Dateien, die nicht von Workiva stammen, zu lesen/schreiben oder hochzuladen.
Kann ich Automatisierungen programmatisch erstellen und verwalten?
Zurzeit gibt es keine Endpunkte, um Automatisierungen programmatisch zu erstellen oder zu verwalten.