Workiva Scripting bietet eine flexible, sichere Plattform für die Ausführung von Python-Code in der Workiva-Software. Durch das Schreiben benutzerdefinierter Skripte, die automatisch wiederholbare Prozesse ausführen, können Sie die Effizienz über mehrere Berichte, Dateien und Arbeitsbereiche hinweg steigern.
Hinweis: Scripting ist derzeit nur über Customize Workiva verfügbar. Erfahren Sie mehr.
Rollen und Befugnisse
Rollen sind eine systemweite Einstellung in Workiva, d.h. sie legen eine Standard-Zugriffsebene für jedes Skript in einem Arbeitsbereich fest. Es gibt drei Workiva Scripting Rollen, die von Ihrem Workspace Admin zugewiesen werden können.
| Rolle | Zugriffsstufe |
|---|---|
| Script Runner | Kann Skripte ausführen. |
| Skript-Betrachter | Kann Skripte anzeigen. |
| Skript-Editor | Kann Skripte anzeigen, erstellen und bearbeiten. |
Tipp: Anstatt die Skript-Runner-Rolle zu verwenden, empfehlen wir den meisten technisch nicht versierten Benutzern, Skripte über integrierte Automatisierungen zu initiieren.
Sie können den Zugriff auch auf Dateibasis steuern, indem Sie die Berechtigungen zuweisen. Da Berechtigungen an die Stelle von Rollen treten, können Skripteigentümer und -ersteller den Zugriff auf einzelne Dateien gewähren oder einschränken.
| Berechtigung | Zugriffsstufe |
|---|---|
| Viewer | Kann Skripte ausführen und anzeigen. |
| Bearbeiter | Kann Skripte ausführen, bearbeiten und anzeigen. |
| Eigentümer | Kann Skripte ausführen, bearbeiten, anzeigen und erstellen. |
Wie man Workiva Scripting benutzt
Nach der Aktivierung in Ihrem Arbeitsbereich werden Skripte auf Ihrem Startbildschirm neben den anderen Tabellenkalkulationen, Dokumenten und Präsentationen Ihrer Website angezeigt. Sie können entweder ein neues Skript erstellen oder ein vorhandenes Skript aus Ihrer Dateiliste auswählen.
Im Skript-Editor können Sie die Skripte für Ihre Website erstellen, bearbeiten und ausführen.
Unified Data umfasst:
- Eine zentrale Leinwand, auf der Sie das Skript verfassen werden
- Ein Ausgabebereich am unteren Rand, in dem Sie die Ergebnisse des Skriptlaufs sehen können
- Eine Menüleiste im oberen Bereich, in der Sie das Skript speichern oder ausführen können
- Eine Eigenschaftsleiste auf der rechten Seite zur Verwaltung der Skripteigenschaften und des Ausführungsverlaufs
- Ein Quellen-Panel auf der linken Seite
Einmal erstellt, können Skripte manuell, programmgesteuert, über Ketten oder innerhalb einer Workiva-Datei ausgeführt werden.
Um ein Skript manuell auszuführen:
- Klicken Sie in der Menüleiste am oberen Bildschirmrand auf Script ausführen.
- Klicken Sie auf Variable hinzufügen.
- Geben Sie die Namen und Werte der Umgebungsvariablen ein, die als Parameter übergeben werden sollen.
- Klicken Sie auf Script ausführen.
Um ein Skript programmatisch auszuführen, stellen Sie eine HTTP POST-Anfrage an den Ausführung eines Skripts einleiten Prototyp-Endpunkt.
Die Skript-ID ist im Endpunkt enthalten; Sie können Parameter übergeben, indem Sie die Namen und Werte der Umgebungsvariablen im Hauptteil der POST-Anforderung definieren.
Skriptausgaben werden als stderr und stdout protokolliert, zusammen mit einigen Nutzungsmetriken zur Überwachung des Zustands des Produkts.
Um ein Skript über Ketten laufen zu lassen, müssen Sie den Workiva Scripting Connector verwenden. Zuvor muss ein Org-Sicherheitsadministrator den Anschluss über den Bildschirm Konfigurationen aktivieren.
In den folgenden Artikeln erfahren Sie mehr:
Um ein Skript innerhalb einer Workiva-Datei auszuführen, müssen Sie die folgenden Schritte befolgen
Erstellen Sie im Bereich Automatisierungen eines Dokuments, Arbeitsblatts oder einer Präsentation eine neue Automatisierung und wählen Sie Manuelle Ausführung als Auslöser.
Fügen Sie eine Aktion Skript ausführen hinzu, wählen Sie das auszuführende Skript aus und definieren Sie optional, welche Benutzer oder Rollen zur Ausführung berechtigt sind.
Nur die angegebenen Benutzer sehen die Automatisierung innerhalb der Datei und können sie ausführen.
Weitere Informationen über Skripte mit Automatisierungen ausführen.
Erstellen Sie ein Übungsskript
Bevor Sie Live-Skripte auf Ihrer Website erstellen, empfehlen wir Ihnen, ein Übungsskript im Skripteditor zu erstellen. So können Sie sich mit dem Prozess vertraut machen, bevor Sie mit Live-Daten arbeiten.
Folgen Sie diesen Schritten, um ein einfaches Skript zu erstellen, das den Zeitwert des Geldes berechnet:
- Von der Startseite aus klicken Sie auf Erstellen => Skript.
- Geben Sie auf der rechten Seite einen Namen und eine kurze Beschreibung für das Skript ein.
- Gehen Sie in den Skript-Editor in der Mitte des Bildschirms und löschen Sie den vorhandenen Code. Sie sollten eine leere Leinwand haben.
-
Fügen Sie diesen Code in den Editor ein:
import os, sys # https://www.investopedia.com/terms/t/timevalueofmoney.asp # Formula for Time Value of Money # FV = PV x [1 + (i / n)]^(n x t) # Angenommen, ein Betrag von 10.000 $ wird ein Jahr lang zu 10 % Zinsen mit jährlicher Zinseszinsung angelegt. # Der zukünftige Wert dieses Geldes ist: # FV = $10,000 x [1 + (10% / 1)] ^ (1 x 1) = $11,000 compounding_periods = {"annual" : 1, "monthly" : 12, "quarterly" : 4, "daily" :365} if 'INVESTMENT' not in os.environ: print(„Kann nicht das Skript durchführen. Es fehlt eine Investition.") sys.exit() if 'INTEREST_RATE' not in os.environ: print("Das Skript kann nicht ausgeführt werden. Der Zinssatz fehlt.") sys.exit() if 'COMPOUNDING_PERIOD' not in os.environ: print("Das Skript kann nicht ausgeführt werden. Compounding-Zeitraum fehlt.") sys.exit() if 'YEARS' not in os.environ: print("Das Skript kann nicht ausgeführt werden. Anzahl der Jahre fehlt.") sys.exit() compounding_period = os.getenv('COMPOUNDING_PERIOD') if compounding_period not in compounding_periods.keys(): print("Das Skript kann nicht ausgeführt werden.", compounding_period," ist kein gültiger Zeitraum") sys.exit() investment = int(os.getenv('INVESTMENT')) interest_rate = float(os.getenv('INTEREST_RATE')) years = int(os.getenv('YEARS')) n = compounding_periods[compounding_period] FV = investment * pow((1 ((interest_rate/100) / n)),n * years) print("Angenommen, ein Betrag von",investment, "wird für",years, "Jahr(e) zu",\ interest_rate,"% Zinseszins auf",compounding_period, "Basis angelegt. ") print("Der zukünftige Wert dieses Geldes ist:") print(FV) - Klicken Sie oben links auf Script ausführen.
- Klicken Sie auf Variable hinzufügen und geben Sie alle Parameter ein, die Sie verwenden möchten.
- Klicken Sie zum Abschluss auf Script ausführen.
Die Skriptergebnisse können nun im Bereich Output am unteren Rand des Bildschirms angezeigt werden.
Wie Sie Unterstützung bei Workiva Scripting erhalten
Sie können sich an Workiva Support wenden, wenn Sie Fragen zu Workiva Scripting haben. Bitte beachten Sie jedoch, dass unsere Mitarbeiter nur bei Fragen zur Plattform selbst behilflich sein können - wir können nicht beim Schreiben oder bei der Fehlersuche in Ihrem Code helfen.
Wir haben auch eine Reihe von Lösungen hier im Support Center verfügbar:
- Unterstützte Skripting-Bibliotheken und Abhängigkeiten
- Beispiel: Skript zur Aktualisierung von Tabellenkalkulationen
- Hinzufügen, Hochladen und Löschen von Scripting-Quelldateien
- Ausführen von Skripten mit Automatisierungen
- Skriptausgaben speichern
- Workiva Skripting-Limits
- Beispiel-Skripte
Diese Ressourcen helfen Ihnen bei den ersten Schritten mit Workiva Scripting. Für Fragen zur Nutzung der Workiva Public APIs, um Ihren Code zu schreiben und programmatisch mit der Workiva Plattform zu interagieren, nutzen Sie unsere Developers & APIs Community.
FAQ
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.
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.