Workiva støtter både Pythons standardbibliotek og Python Package Index (PyPI). Avhengigheter kan genereres automatisk ved hjelp av den innebygde skriptredigereren eller opprettes manuelt på den lokale maskinen.
Merk: Skripting er for øyeblikket bare tilgjengelig gjennom Customize Workiva. Lær mer om dette.
Krav
- Workiva Scripting må være aktivert for arbeidsområdet ditt. Finn ut mer om Workiva Scripting.
- Rollen Script Editor er nødvendig for å opprette eller redigere skript.
Biblioteker som støttes
Workiva-skript støtter Pythons standardbibliotek uten videre; du kan ganske enkelt importere modulen i koden din og begynne å bruke den. Dette biblioteket inneholder innebygde moduler som gir tilgang til systemfunksjonalitet som fil-I/O, samt mange standardiserte løsninger for vanlige programmeringsproblemer.
I tillegg til standardbiblioteket finnes det en voksende samling av komponenter som er tilgjengelige fra Python Package Index. Du må generere avhengighetene i skriptet ditt som inkluderer PyPI-komponentene du ønsker å bruke.
En av PyPI-komponentene som vi ofte bruker, er "requests"-komponenten, som lar deg samhandle med Workiva-plattformen gjennom Workiva Public APIs.
Merk: PyPI-komponenter som krever ytterligere installasjoner, støttes kanskje ikke.
Generer avhengigheter med skriptredigeringsprogrammet
Skriptredigeringsprogrammet kan automatisk bygge opp avhengighetene dine.
Slik gjør du det:
- Åpne en -skriptfil (eller opprett en ny) fra Home.
- Gå til Kilder på venstre side, høyreklikk i det tomme feltet rett under de gjeldende kildene, og velg + Legg til kildefil.
- Opprett en ny kilde med navnet: requirements.txt.
- Legg til en linje i midten av lerretet som angir biblioteket og versjonen som skal installeres. (Dette er linjen requests==2.28.1 i eksempelbildet vårt)
- Klikk på Lagre øverst til venstre.
- Last inn skjermen på nytt. Ikke hopp over dette trinnet!
Når du har lagret og oppdatert, genererer Workiva automatisk en avhengighetspakke som heter dependencies.zip. Du kan nå bruke biblioteket i koden din.
Generer avhengigheter fra din lokale maskin
Hvis du vil opprette avhengigheter manuelt, må du bygge en pakke lokalt og laste den opp til skriptredigeringsprogrammet. Du kan for eksempel ha et prosjekt som trenger tilgang til biblioteket "requests" for å kjøre et skript:
import requests print (requests.get('https://api.github.com').text) Dette kan gjøres using en pip-kompatibel pakkebehandler:
- Definer hvilken versjon av "requests"-biblioteket du vil ha tilgang til i et pip-kompatibelt format; den bør lagres som en .TXT-fil:
echo requests==2.26.0 > requirements.txt
- Installer avhengigheten i en ny katalog Dependencies:
pip3 install --target ./dependencies --requirement requirements.txt
- Opprett en dependencies.zip -fil:
cd dependencies
zip -r ../dependencies.zip .
cd ...
- I Workiva Scripting-prosjektet ditt oppretter du en tom dependencies.zip fil:
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 - For å få koblingen til endepunktet klikker du på Run Link i menyen øverst i skriptredigeringsprogrammet:
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
Du bør få følgende svar. Du kan hente fil-ID-en derfra.
-H "Content-Type: application/json" -H "Authorization" \ -d "{"path":"dependencies.zip"} Bearer $BEARER_TOKEN" \
-d '{"path":"dependencies.zip"}'
{"id":"<file-id>","path":"dependencies.zip"} - For å få en liste over fil-ID-ene i skriptet ditt, gjør en GET-forespørsel:
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" - Last opp dependencies.zip-filen til den nye fil-ID-en:
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 - For å teste "requests"-biblioteket kan du kjøre et skript med følgende kode:
import requests print (requests.get('https://api.github.com').text)
VANLIGE SPØRSMÅL
Hvilke API-er og biblioteker støttes?
Workiva Scripting støtter for øyeblikket:
- Workivas offentlige API-er
- Ikke-Workiva API-er
- Pythons standardbibliotek
- Python Package Index (PyPI)
Støtte for flere språk er fortsatt under vurdering og kan bli implementert i fremtiden.
Finn ut mer: Støttede Workiva Scripting-biblioteker og avhengigheter
Hvilken versjon av Python brukes i Workiva Scripting?
Workiva Scripting støtter for øyeblikket Python 3.9 og Python 3.13, og støtten for Python 3.9 utløper i mars 2026.
Lær mer om dette: Migrering av skript til Python 3.13 i Workiva
Tilbyr Workiva API-klienter med populære språk som Python eller Java?
Vi tilbyr for øyeblikket ikke offentlige SDK-er for Python eller Java.
Vi tilbyr imidlertid åpne API-spesifikasjoner for Workiva API-er, slik at du kan generere disse bibliotekene selv. Du kan for eksempel hente Workiva Platform APIs OAS-fil og generere et klientbibliotek.
Finnes det skriptspesifikke API-er tilgjengelig?
API-endepunkter for skripting er tilgjengelige som prototypendepunkter i Workivas Prototype Platform API.
Hvordan oppretter og viser jeg API-tildelinger for Workivas offentlige API-er?
Du må skaffe deg en klient-ID og -hemmelighet ved å følge instruksjonene på her.
Hvordan autoriserer jeg meg inn i Workiva Public API-er ved hjelp av Python?
Følgende kodestykke gjør et anrop til IAM-tjenesten for å generere et tilgangstoken som deretter brukes til å autentisere seg i Scripting-prototypens endepunkter. Den henter en liste over alle skriptene som API-tildelingen (dvs. klienten) har tilgang til i arbeidsområdet der tildelingen ble opprettet.
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))
Hvordan oppdaterer jeg formatet til celler ved hjelp av Python?
Prototypen Update Sheet Content gjør det mulig å oppdatere celleformatet ved hjelp av Python-kode.
Kan jeg lese/skrive eller laste opp filer som ikke er lagret i Workiva?
For øyeblikket er det ingen tilgjengelige endepunkter for å lese/skrive eller laste opp ikke-Workiva-filer som er lagret i Workiva.
Kan jeg programmere og administrere automatiseringer?
For øyeblikket finnes det ingen tilgjengelige endepunkter for programmatisk oppretting eller administrasjon av automatiseringer.