Workiva ondersteunt zowel de standaardbibliotheek van Python als de Python Package Index (PyPI). Afhankelijkheden kunnen automatisch worden gegenereerd met de ingebouwde scripteditor of handmatig op uw lokale machine worden aangemaakt.
Opmerking: Scripting is momenteel alleen beschikbaar via Customize Workiva. Meer informatie.
Vereisten
- Workiva Scripting moet ingeschakeld zijn voor uw werkruimte. Meer informatie over Workiva Scripting.
- De rol Script Editor is vereist om scripts te maken of te bewerken.
Ondersteunde bibliotheken
Workiva scripts ondersteunen Python's standaardbibliotheek out-of-the-box; u kunt de module gewoon importeren in uw code en beginnen te gebruiken. Deze bibliotheek bevat ingebouwde modules die toegang bieden tot systeemfunctionaliteit zoals bestands-I/O, evenals vele gestandaardiseerde oplossingen voor veelvoorkomende programmeerproblemen.
Naast de standaardbibliotheek is er een groeiende verzameling componenten beschikbaar op de Python Package Index. U moet de afhankelijkheden in uw script genereren die de PyPI componenten bevatten die u wilt gebruiken.
Een van de PyPI componenten die we vaak gebruiken is de "requests" component, waarmee u kunt communiceren met het Workiva platform via de Workiva Public APIs.
Opmerking: PyPI componenten die extra installaties vereisen worden mogelijk niet ondersteund.
Afhankelijkheden genereren met de scripteditor
De scripteditor kan automatisch uw afhankelijkheden bouwen.
Hier leest u hoe:
- Open vanuit Home een scriptbestand (of maak een nieuw).
- Ga naar het paneel Sources aan de linkerkant, klik met de rechtermuisknop in de lege ruimte net onder de huidige bronnen en selecteer + Add Source File.
- Maak een nieuwe bron met de naam: requirements.txt.
- Voeg in het middelste canvas een regel toe die de te installeren bibliotheek en versie specificeert. (Dit is de regel requests==2.28.1 in onze voorbeeldafbeelding)
- Klik linksboven op Opslaan.
- Herlaad uw scherm. Sla deze stap niet over!
Eenmaal opgeslagen en vernieuwd, genereert Workiva automatisch een afhankelijkheidsbundel met de naam dependencies.zip. U kunt de bibliotheek nu in uw code gebruiken.
Genereer afhankelijkheden van uw lokale machine
Om handmatig afhankelijkheden aan te maken, moet u lokaal een pakket bouwen en dit uploaden naar de scripteditor. U kunt bijvoorbeeld een project hebben dat toegang nodig heeft tot de bibliotheek "requests" om een script uit te voeren:
importeer requests print (requests.get('https://api.github.com').text) Dit kan gedaan worden using een pip-compatibele pakketbeheerder:
- Definieer de versie van de "requests" bibliotheek om te gebruiken als een pip-compatibel formaat; het moet worden opgeslagen als een .TXT bestand:
echo requests==2.26.0 > requirements.txt
- Installeer de afhankelijkheid in een nieuwe map Dependencies:
pip3 install --target ./dependencies --requirement requirements.txt
- Maak een dependencies.zip bestand:
cd dependencies
zip -r ../dependencies.zip .
cd ....
- Maak in uw Workiva Scripting project een leeg dependencies.zip bestand:
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 - Om de link van het eindpunt te krijgen, klikt u op Run Link in het menu bovenaan de scripteditor:
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
U zou het volgende antwoord moeten krijgen. Daar kunt u de bestands-id vandaan halen.
-H "Content-Type: application/json" -H "Authorization: Bearer $BEARER_TOKEN" \
-d '{"path":"dependencies.zip"}'
{"id":"<file-id>","path":"dependencies.zip"} - Om een lijst van de bestands-ID's in uw script te krijgen, doet u een GET-verzoek:
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" - Upload het bestand dependencies.zip naar het nieuwe bestands-ID:
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 - Om de bibliotheek "requests" te testen, voert u een script uit met de volgende code:
import requests print (requests.get('https://api.github.com').text)
veelgestelde vragen|FAQ
Welke API's en bibliotheken worden ondersteund?
Workiva Scripting ondersteunt momenteel:
- Openbare API's van Workiva
- API's die niet van Werkiva zijn
- De standaardbibliotheek van Python
- De Python pakketindex (PyPI)
Ondersteuning voor andere talen wordt nog overwogen en zou in de toekomst geïmplementeerd kunnen worden.
Meer informatie: Ondersteunde Workiva Scripting bibliotheken en afhankelijkheden
Welke versie van Python wordt gebruikt in Workiva Scripting?
Workiva Scripting ondersteunt momenteel het gebruik van Python 3.9 en Python 3.13, met ondersteuning voor het gebruik van Python 3.9 die eindigt in maart 2026.
Meer informatie: Scripts migreren naar Python 3.13 in Workiva
Biedt Workiva API clients met populaire talen zoals Python of Java?
Wij bieden momenteel geen openbare SDK's voor Python of Java.
Wij bieden echter open API-specificaties voor Workiva API's, zodat u deze bibliotheken zelf kunt genereren. U kunt bijvoorbeeld het Workiva Platform API's OAS-bestand verkrijgen en een client library genereren.
Zijn er scriptspecifieke API's beschikbaar?
Scripting API eindpunten zijn beschikbaar als prototype eindpunten binnen de Workiva's Prototype Platform API.
Hoe creëer en bekijk ik API toekenningen voor de Workiva Openbare API's?
U moet een client-ID en secret verkrijgen door de instructies op hier te volgen.
Hoe autoriseer ik in de Workiva Openbare API's met behulp van Python?
Het volgende codefragment doet een aanroep naar de IAM-service om een toegangstoken te genereren dat vervolgens gebruikt wordt om te authenticeren op de eindpunten van het Scripting-prototype. Het zal een lijst krijgen van alle scripts waartoe de API grant (d.w.z. client) toegang heeft in de workspace waar de grant is aangemaakt.
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))
Hoe werk ik het formaat van cellen bij met Python?
Het Update Sheet Content prototype eindpunt maakt het mogelijk om het formaat van cellen bij te werken met behulp van Python code.
Kan ik bestanden lezen/schrijven of uploaden die niet in Workiva zijn opgeslagen?
Op dit moment zijn er geen eindpunten beschikbaar voor het lezen/schrijven of uploaden van niet-Workiva bestanden die zijn opgeslagen in Workiva.
Kan ik automatiseringen programmatisch aanmaken en beheren?
Op dit moment zijn er geen eindpunten beschikbaar om automatiseringen programmatisch aan te maken of te beheren.