Hinweis: Scripting ist derzeit nur über Customize Workiva verfügbar. Erfahren Sie mehr.
Skripting-Einrichtung und Überblick
Wie werden Skripte üblicherweise verwendet?
Workiva Scripting kann viele wiederholbare, zeitaufwendige Aufgaben automatisieren, die sonst von Hand erledigt werden müssten. Einige häufige Anwendungsfälle sind die Unterdrückung von Nullzeilen, Berichtslayouts und die Anwendung von benutzerdefinierten Formatierungen auf mehrere Dokumente.
Dennoch können Skripte für viele geschäftliche Anforderungen angepasst werden. Der Code gehört Ihnen; was Sie damit machen, hängt weitgehend von Ihrem Skriptentwickler, der Einrichtung des Arbeitsbereichs und der aktuellen Anzahl manueller Prozesse in Ihrem Unternehmen ab.
Gibt es irgendwelche Einschränkungen bei der Skripterstellung?
Ja, Workiva erzwingt eine Reihe von Beschränkungen sowohl für Workiva Scripting als auch für die Scripting API.
Erfahren Sie mehr über Grenzwerte für Skripte.
Wie löse ich Skripte von Chains aus?
Dies erfordert den Workiva Scripting Connector.
In den folgenden Artikeln erfahren Sie mehr:
Ist Workiva Scripting Fedramp-konform?
Selbstverständlich Sicherheit hat bei Workiva oberste Priorität, und wir haben eine Infrastruktur aufgebaut, die garantiert, dass Ihr Code sowohl sicher als auch performant ausgeführt wird.
Wie kann ich den Zugang zu Skripten schützen?
Es gibt mehrere Möglichkeiten, wie Sie Ihren Code vor dem Zugriff durch Unbefugte schützen können:
- Erstellen Sie einen eigenen Arbeitsbereich oder eine Organisation für autorisierte Benutzer: Die Einrichtung eines Arbeitsbereichs oder sogar einer ganzen Organisation nur für autorisierte Benutzer ist die sicherste Option. Zum Beispiel können Partner einen Arbeitsbereich für Workiva Scripting in Ihrer Organisation erstellen und Kunden Skripte von ihrer eigenen Organisation aus ausführen lassen.
- Verwenden Sie die Rollen: Die Skript-Rollen von Workiva (Script Viewer, Script Runner und Script Editor) sind so gestaffelt, dass die Benutzer nur Zugriff auf die für ihre Arbeit notwendigen Skripte haben. Mit der Rolle Script Runner können Benutzer beispielsweise Skripte ausführen, haben aber keinen Zugriff auf den Code.
- Verwenden Sie die Berechtigungen: Scripting-Dateien können auf Dateiebene eingeschränkt werden, so dass nur bestimmte Benutzer Ihren Code bearbeiten oder anzeigen können.
Erfahren Sie mehr über Skripting-Rollen und -Berechtigungen.
Gibt es eine Liste der zulässigen IPs für Skripte?
Ja, erlaubte IPs für das Skripting-Programm sind hier enthalten.
Gibt es eine Skriptbibliothek?
Wir haben eine Reihe von Beispielskripten für Sie zusammengestellt. Diese Skripte können auch manuell mit Hilfe der in der vorherigen Frage verlinkten Artikel erstellt werden.
Verwenden des Skripteditors
Wie kann ich Skriptversionen verwalten?
Zur Zeit speichert Workiva nur die letzte Version eines Skripts.
Sie können Kopien Ihrer Skriptdateien in Workiva erstellen und sie in Ordnern organisieren, aber wir empfehlen, ein separates Versionskontrollsystem zu verwenden - insbesondere, wenn Sie ein unternehmensweites Versionskontrollsystem haben.
Wie synchronisiere ich den Code von Workiva mit einem Versionskontrollsystem für Unternehmen (z.B. GitHub)?
Die Workiva Scripting API bietet Endpunkte für die Quellverwaltung, über die Benutzer die neueste Version eines Skripts abrufen oder ein Skript auf eine neuere Kopie aktualisieren können. Workiva bietet derzeit keine automatische Synchronisation zwischen Skriptdateien und dem Versionskontrollsystem Ihres Unternehmens (z.B. Gitlab, Github, SVN).
Wie erhalte ich von einem Skript aus Zugriff auf die Zugangsdaten zu Workiva- und Nicht-Workiva-Systemen?
Es gibt zwei Möglichkeiten für den Zugriff auf die Zugangsdaten zu Workiva- und Nicht-Workiva-Systemen:
- Berechtigungsnachweise als Laufzeit-Eingaben senden (bevorzugt)
- Harte Codierung der Anmeldeinformationen im Code
Warum werden die Werte der Skript-Laufzeiteingaben während der Ausführung nicht in der Protokollausgabe angezeigt?
Dies ist eine Sicherheitsvorkehrung. Da Eingabeparameter sensible Daten enthalten können, entfernen wir sie aus den benutzerseitigen Protokollen.
Wie kann ich während Skriptausführungen temporäre Daten speichern?
Workiva Skripte können die Python Open Funktion (externer Link) benutzen, um Dateien temporär im /tmp Ordner zu lesen und zu schreiben. Andere Wege sind eingeschränkt.
Jedes Mal, wenn ein Skript ausgeführt wird, wird ein Container in Workivas Cloud-Infrastruktur gestartet. In diesem Container ist Linux installiert, und alle Pfade außer /tmp (das leer ist) sind eingeschränkt. In diesem Pfad können Daten vorübergehend geschrieben und gelesen werden. Sobald der Lauf beendet ist, wird der Container entsorgt.
Kann ich globale Variablen definieren, die in mehreren Skripten verwendet werden können, à la Chains?
Zurzeit nicht.
Kann ich Dateien als Parameter senden?
Binärdateien können als Parameter gesendet werden, solange sie 128 KB nicht überschreiten und in Text kodiert sind (d. h. binary to text encoding).
Kann ich in meinen Skripten auf Org-ID, Arbeitsbereichs-ID und Region zugreifen?
Ja, die Organisations-ID, die Arbeitsbereichs-ID und die Region (US, APAC, EU) sind für Ihren Skriptcode über eine Umgebungsvariable zugänglich. Zum Beispiel: os.getenv("WORKIVA_ORGANIZATION_ID").
| Variabel | Beschreibung |
|---|---|
| WORKIVA_ORGANISATION_ID | Die eindeutige ID der Workiva-Organisation, in der das Skript gehostet wird |
| WORKIVA_ACCOUNT_ID | Die eindeutige ID des Workiva-Arbeitsbereichs, in dem das Skript gehostet wird |
| WORKIVA_CLUSTER_DOMÄNE | Die Workiva-Region (US, APAC oder EU) der Produktionsumgebung, in der das Skript gehostet wird |
| WORKIVA_SCRIPTING_SCRIPT_ID | Die eindeutige ID des laufenden Scripting-Skripts |
| WORKIVA_SCRIPTING_RUN_ID | Die eindeutige ID des aktuellen Skriptlaufs |
| WORKIVA_SCRIPTING_MEMORY_LIMIT | Die maximale Menge an RAM, die dem Skript während eines einzelnen Laufs zur Verfügung steht |
| WORKIVA_SCRIPTING_DISK_LIMIT | Der maximale Festplattenspeicher, den das Skript während eines einzelnen Laufs im Verzeichnis /tmp verwenden kann |
Kann ich Code aus einem Workiva-Skript in einem anderen Workiva-Skript verwenden?
Zur Zeit gibt es keine Möglichkeit, ein Workiva-Skript als Bibliothek zu verpacken und den Code in mehreren Skripten wiederzuverwenden. Am besten kopieren Sie jetzt den wiederverwendbaren Code und fügen ihn bei Bedarf in die Skripte ein.
Verwendung von Skripten aus Automatisierungen
Kann ich ein Skript ausführen, das in einem anderen Arbeitsbereich, einer anderen Organisation oder Umgebung (APAC, EU, US) gehostet wird?
Die Automatisierungsfunktion in Workiva kann Skripte nur in demselben Arbeitsbereich ausführen, in dem sich die Datei befindet. Der Workiva Scripting Connector oder die Workiva Scripting API können jedoch verwendet werden, um ein an einem anderen Ort gehostetes Skript auszuführen.
Wenn Sie die Skripting-API verwenden, müssen Sie im Hauptarbeitsbereich ein Skript erstellen und bereitstellen, dessen einziger Zweck es ist, die Skripting-API aufzurufen und das Skript im sekundären Arbeitsbereich auszuführen.
Kann ich zur Laufzeit Eingaben/Parameter bei der Skriptausführung senden?
Zurzeit lässt die Automatisierungsfunktion keine Laufzeiteingaben zu, die bei der Ausführung des Skripts an das Skript gesendet werden.
Welche Metadaten werden von einer Automatisierung an eine Skriptausführung gesendet? Wird die Arbeitsbereichskennung gesendet?
Wenn ein Skript von einer Automatisierung ausgeführt wird, ist der einzige Parameter, der gesendet wird, die ID des Dokuments, in dem die Automatisierung konfiguriert ist.
Wie erhalte ich von der Skriptausführung aus Zugriff auf die Zugangsdaten zu Workiva- und Nicht-Workiva-Systemen?
Wenn ein Skript von einer Automatisierung ausgeführt wird, besteht die einzige Möglichkeit darin, die Anmeldedaten im Code selbst zu kodieren.
Kann ein und dasselbe Skript gleichzeitig aus zwei oder mehr Dateien ausgeführt werden?
Ja, ein Skript kann entweder aus derselben Datei oder aus mehreren Dateien gleichzeitig ausgeführt werden.
Verwendung von Skripten aus Ketten
Kann ich ein Skript ausführen, das in einem anderen Arbeitsbereich, einer anderen Organisation oder Umgebung (APAC, EU, US) gehostet wird?
Ja, ein Skript, das in einem Arbeitsbereich gehostet wird, kann von einer Kette ausgeführt werden, die in einem anderen Arbeitsbereich, einer anderen Organisation oder einer anderen Umgebung gehostet wird.
Dazu muss der Workiva Scripting Connector, der in der Kette verwendet wird, mit einer im Host-Arbeitsbereich erstellten API-Erlaubnis eingerichtet werden, und die verwendeten Scripting/IAM-URLs müssen dem richtigen Arbeitsbereich entsprechen.
In den folgenden Artikeln erfahren Sie mehr:
Kann ein und dasselbe Skript gleichzeitig von zwei Knoten aus ausgeführt werden?
Ein und dasselbe Skript kann gleichzeitig von mehreren Knoten innerhalb derselben Kette und/oder mehreren Ketten ausgeführt werden.
Wie kann ich die Ausgabe eines Skripts in einem anderen Kettenknoten verwenden?
Mit dem Befehl Run Script können Sie für jede Ausgabe, die JSON erzeugt, eine Beispiel-Nutzlast eingeben, die dann in anderen Knoten verwendet werden kann.
Kann eine temporäre Datei in einer Kette durch Parameter im Skript erstellt werden?
Sie können Binärdateien als Parameter angeben, solange sie nicht größer als 128 KB sind.
APIs und Bibliotheken
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.