Workiva støtter både Pythons standardbibliotek og Python Package Index (PyPI). Avhengigheter kan genereres automatisk ved hjelp av den innebygde skripteditoren eller opprettes manuelt på din lokale maskin.
Workiva-skripting er inkludert i Tilpass Workiva. For å bruke skripting må arbeidsområdet ditt ha Tilpass Workiva/skripting aktivert, og brukerne trenger riktig(e) skriptrolle(r) og filtillatelser.
Støttede biblioteker
Workiva-skript støtter Pythons standardbibliotek rett ut av esken; 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 tilgjengelig fra Python Package Index. Du må generere avhengighetene i skriptet ditt som inkluderer PyPI-komponentene du vil bruke.
En av PyPI-komponentene vi vanligvis bruker er «requests»-komponenten, som lar deg samhandle med Workiva-plattformen gjennom Workiva Public APIs.
Merknad: PyPI-komponenter som krever ytterligere installasjoner støttes kanskje ikke.
Generer avhengigheter med skripteditoren
Skriptredigereren kan automatisk bygge avhengighetene dine.
Slik gjør du det:
- Fra Hjemåpner du en skriptfil (eller opprett en ny).
- Gå til panelet 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.
- I det midterste lerretet legger du til en linje som spesifiserer 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 den er lagret og oppdatert, genererer Workiva automatisk en avhengighetspakke kalt dependencies.zip. Du kan nå bruke biblioteket i koden din.
Generer avhengigheter fra din lokale maskin
For å opprette avhengigheter manuelt, må du bygge en pakke lokalt og laste den opp til skriptredigeringsprogrammet. For eksempel kan du ha et prosjekt som trenger tilgang til «requests»-biblioteket for å kjøre et skript:
importforespørsler print (requests.get('https://api.github.com').text) Dette kan gjøres ved å brukeen pip-kompatibel pakkebehandler:
-
Definer versjonen av
requests-biblioteket som skal tilgås som et pip-kompatibelt format; den skal lagres som en.txt-fil:ekkoforespørsler==2.28.1 > krav.txt
-
Installer avhengigheten i en ny dependencies -katalog:
pip3 install --target ./dependencies --requirement requirements.txt
-
Opprett en
dependencies.zip-fil:cd avhengigheter
zip -r ../avhengigheter.zip .
cd ..
-
Be om en tilgangstoken:
curl -X POST https://api.app.wdesk.com/iam/v1/oauth2/token \ -H 'Innholdstype: application/x-www-form-urlencoded;charset=UTF-8' \ -H 'Godta: application/json' \ -d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&grant_type=client_credentials"
Plukk opp
access_tokenfra svaret og bruk det som$BEARER_TOKENnedenfor. -
I Workiva Scripting-prosjektet ditt, opprett en ny kildekode for
dependencies.zip:curl -X POST https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /kilder \ -H "Innholdstype: application/json" \ -H "Godta: application/json" \ -H "Autorisering: Bærer $BEARER_TOKEN" \ -H "X-versjon: 2022-01-01" \ -d '{"sti":"avhengigheter.zip"}'Svaret returnerer den nye kilden, inkludert ID-en:
{"id":"<sourceId> ","sti":"avhengigheter.zip"} -
For å få en liste over kilde-ID-ene i skriptet ditt, lag en GET-forespørsel:
krøll -X GET https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /sources \ -H "Godta: application/json" \ -H "Autorisering: Bærer $BEARER_TOKEN" \ -H "X-versjon: 2022-01-01"
-
Start en innholdsopplasting for den kilden, og LEGG deretter
dependencies.ziptil den returnerte uploadUrl:curl -X POST https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /kilder/<sourceId> /contentUpload \ -H "Godta: application/json" \ -H "Autorisering: Bærer $BEARER_TOKEN" \ -H "X-versjon: 2022-01-01"
Svaret returnerer opplastingsmålet:
{"opplastingsURL":"<uploadUrl> "}Last deretter opp binærfilen til den nettadressen:
krøll -X PUT "<uploadUrl> " \ -H "Autorisering: Bærer $BEARER_TOKEN" \ --data-binary @dependencies.zip
-
For å teste
requests-biblioteket, kjør et skript med følgende kode:importforespørsler 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:
- Workiva offentlige API-er
- Ikke-Workiva API-er
- Pythons standardbibliotek
- Python-pakkeindeksen (PyPI)
Workiva Scripting støtter bare Python for øyeblikket.
Lær mer: Støttede Workiva-skriptbiblioteker og -avhengigheter
Hvilken versjon av Python brukes i Workiva-skripting?
Nye skript kjører på Python 3.13. Workiva Scripting støtter fortsatt eksisterende Python 3.9-skript, men støtten for Python 3.9 avsluttes i oktober 2027 – så du bør migrere alle Python 3.9-skript til Python 3.13 så snart som mulig.
Lær mer: Migrere 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. For eksempel kan du hente Workiva Platform API-ens OAS-fil og generere et klientbibliotek.
Finnes det skriptspesifikke API-er tilgjengelig?
Ja. Skripting API-endepunkter er for øyeblikket tilgjengelige som prototype-endepunkter i Workivas Prototype Platform API.
Endepunkter for Public Scripting API vil være tilgjengelige sommeren 2026. Når de er tilgjengelige, forventes det at du migrerer til de offentlige endepunktene – støtte for ikke-offentlige endepunkter (inkludert prototype) for Workiva Scripting opphører i oktober 2027.
Hvordan oppretter og viser jeg API-tildelinger for Workiva Public API-er?
Du må skaffe deg en klient-ID og en hemmelighet ved å følge instruksjonene her.
Hvordan autoriserer jeg meg til Workiva Public API-ene ved hjelp av Python?
Følgende kodestykke foretar et kall til IAM-tjenesten for å generere et tilgangstoken som deretter brukes til å autentisere til skriptprototypens endepunkter. Den vil få en liste over alle skriptene som API-tilskuddet (dvs. klienten) har tilgang til i arbeidsområdet der tildelingen ble opprettet.
importforespørsler 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 = 'Bærer ' + * Denne koden er i hovedsak CLIENT_ID-ID og kan oversettes til en annen språkbruker. Den er i hovedsak CLIENT_ID-adresse som bruker CLIENT_SECRET. Selve koden trenger ikke oversettes, da den er plattformuavhengig. json.loads(tokenResponse.text)['access_token'] dataRes = requests.get(SCRIPTING_API_URL, headers = {'Authorization': accessToken}) print(json.loads(dataRes.text))
Hvordan oppdaterer jeg formatet på celler ved hjelp av Python?
Du kan oppdatere celleformatering fra et skript ved å kalle Workiva Platform APIs endepunktOppdater arkinnhold(POST /spreadsheets/{spreadsheetId}/sheets/{sheetId}/update). Bruk feltetapplyFormatsfor å bruke formater som fet skrift, tall- og valutaformatering og skyggelegging, ogapplyBordersfor å bruke rammer. Grupper flere formatoperasjoner i én forespørsel – hvert felt godtar en rekke operasjoner, og endepunktet er hastighetsbegrenset – i stedet for å sende én forespørsel per område.
Lær mer:Oppdater arkinnholdog veiledningen for regnearksdata.
Kan jeg lese/skrive eller laste opp filer som ikke er fra Workiva og som er lagret i Workiva?
Ja. Ved å bruke Workivas API-er for filhåndtering kan du laste opp filer som ikke er fra Workiva – for eksempel PDF-er, bilder eller andre vilkårlige filtyper – til plattformen somStøttedokumenter, som bevarer den opprinnelige filen som den er. For å laste opp en, bruk importfilens endepunkt medtypesatt tilSupportingDocument. Støttedokumenter vises sammen med de andre Workiva-filene dine og kan listes opp, flyttes, kopieres, eksporteres (lastes ned) og kastes i papirkurven som alle andre filer.
Lær mer:Introduksjon til API-er for filbehandling
Kan jeg opprette og administrere automatiseringer programmatisk?
For øyeblikket finnes det ingen endepunkter tilgjengelig for å programmatisk opprette eller administrere automatiseringer.