Merk: Skripting er for øyeblikket bare tilgjengelig gjennom Customize Workiva. Lær mer om dette.
Oppsett og oversikt over skripting
Hvordan brukes skript vanligvis?
Workiva Scripting kan automatisere mange repeterbare, tidkrevende oppgaver som ellers ville blitt utført for hånd. Noen vanlige bruksområder er undertrykkelse av nullrader, rapportoppsett og bruk av egendefinert formatering på flere dokumenter.
Når det er sagt, kan skript tilpasses mange ulike forretningsbehov. Koden er din egen, og hva du gjør med den, avhenger i stor grad av skriptutvikleren din, oppsettet av arbeidsområdet og det nåværende antallet manuelle prosesser i virksomheten din.
Finnes det noen begrensninger for skripting?
Ja, Workiva håndhever en rekke begrensninger for både Workiva Scripting og skript-API-et.
Finn ut mer om scripting limits.
Hvordan utløser jeg skript fra kjeder?
Dette krever Workiva Scripting Connector.
Se artiklene nedenfor for å lære mer:
Er Workiva Scripting i samsvar med Fedramp?
Absolutt. Sikkerhet har høyeste prioritet hos Workiva, og vi har bygget en infrastruktur som garanterer at kodekjøringene dine er både sikre og ytelsessterke.
Hvordan kan jeg beskytte tilgangen til skript?
Det finnes flere måter du kan beskytte koden din mot at uvedkommende får tilgang til den:
- Opprett et eget arbeidsområde eller en egen organisasjon for autoriserte brukere: Det sikreste alternativet er å opprette et arbeidsområde, eller til og med en hel organisasjon, med kun autoriserte brukere. For eksempel kan partnere opprette et arbeidsområde for Workiva Scripting i organisasjonen din, slik at kundene kan kjøre skript fra sin egen organisasjon.
- Bruk rollene: Workivas skriptroller (Script Viewer, Script Runner og Script Editor) er nivådelt, slik at brukerne kun har tilgang til de skriptene som er nødvendige for jobben deres. Script Runner-rollen gir for eksempel brukerne mulighet til å kjøre skript, men ikke tilgang til koden.
- Bruk tillatelser: Skriptfiler kan begrenses på filnivå, slik at bare bestemte brukere kan redigere eller vise koden din.
Finn ut mer om skriptroller og tillatelser.
Finnes det en liste over tillatte IP-adresser for skripting?
Ja, tillatte IP-adresser for skriptprogrammet er inkludert her.
Finnes det et skriptbibliotek tilgjengelig?
Vi har samlet en rekke eksempler på til bruk for deg. Disse skriptene kan også opprettes manuelt ved hjelp av artiklene som er lenket til i forrige spørsmål.
Bruke skriptredigeringsprogrammet
Hvordan administrerer jeg skriptversjoner?
Workiva lagrer for øyeblikket bare den nyeste versjonen av et skript.
Du kan lage kopier av skriptfilene dine i Workiva og organisere dem i mapper, men vi anbefaler at du bruker et eget versjonskontrollsystem - spesielt hvis du har et versjonskontrollsystem i bedriften.
Hvordan synkroniserer jeg Workiva-kode med et versjonskontrollsystem for bedrifter (f.eks. GitHub)?
Workiva Scripting API tilbyr endepunkter for kildehåndtering der brukere kan hente den nyeste versjonen av et skript eller oppdatere et skript til en nyere kopi. Workiva tilbyr for øyeblikket ikke automatisk synkronisering mellom skriptfiler og bedriftens versjonskontrollsystem (f.eks. Gitlab, Github, SVN).
Hvordan får jeg tilgang til legitimasjon til Workiva og andre systemer fra et skript?
Det er to måter å få tilgang til legitimasjon til Workiva og ikke-Workiva-systemer på:
- Send legitimasjon som kjøretidsinndata (foretrukket)
- Hardkode legitimasjonen i koden
Hvorfor vises ikke verdiene for skriptets kjøretidsinnganger i loggutdataene under kjøringen?
Dette er en sikkerhetsforanstaltning. Fordi inndataparametere kan inneholde sensitive data, fjerner vi dem fra brukerrettede logger.
Hvordan kan jeg lagre midlertidige data under skriptkjøringer?
Workiva-skript kan bruke Python Open-funksjonen (ekstern lenke) for å lese og skrive filer midlertidig i /tmp-mappen. Andre veier er begrenset.
Hver gang et skript kjøres, startes det opp en container i Workivas skyinfrastruktur. Containeren har linux installert, og alle stiene er begrenset, bortsett fra /tmp (som er tom). Data kan skrives og leses midlertidig i den banen. Når kjøringen er over, blir containeren kastet.
Kan jeg definere globale variabler som kan brukes på tvers av flere skript, à la Chains?
Ikke på dette tidspunktet.
Kan jeg sende filer som parametere?
Binære filer kan sendes som parametere så lenge de ikke overstiger 128 kB og er kodet til tekst (f.eks. binær til tekst-koding).
Kan jeg få tilgang til org-id, arbeidsområde-id og region i skriptene mine?
Ja, organisasjons-ID, arbeidsområde-ID og region (USA, APAC, EU) er tilgjengelige for skriptkoden din via miljøvariabler. For eksempel os.getenv("WORKIVA_ORGANIZATION_ID").
| Variabel | Beskrivelse |
|---|---|
| WORKIVA_ORGANIZATION_ID | Den unike ID-en til Workiva-organisasjonen der skriptet er lagret |
| WORKIVA_ACCOUNT_ID | Den unike ID-en til Workiva-arbeidsområdet der skriptet er lagret |
| WORKIVA_CLUSTER_DOMAIN | Workiva-regionen (USA, APAC eller EU) for produksjonsmiljøet der skriptet er lagret |
| WORKIVA_SCRIPTING_SCRIPT_ID | Den unike ID-en til skriptskriptet som kjøres |
| WORKIVA_SCRIPTING_RUN_ID | Den unike ID-en til den aktuelle skriptkjøringen |
| WORKIVA_SCRIPTING_MINNE_BEGRENSNING | Den maksimale mengden RAM som er tilgjengelig for skriptet under en enkelt kjøring |
| WORKIVA_SCRIPTING_DISK_LIMIT | Den maksimale disklagringen som skriptet kan bruke i katalogen /tmp i løpet av en enkelt kjøring |
Kan jeg bruke kode fra ett Workiva-skript i et annet Workiva-skript?
For øyeblikket finnes det ingen måte å pakke et Workiva-skript som et bibliotek og gjenbruke koden på tvers av flere skript. Det beste alternativet akkurat nå er å kopiere den gjenbrukbare koden og lime den inn i skriptene etter behov.
Bruke skript fra automatiseringer
Kan jeg kjøre et skript som ligger i et annet arbeidsområde, en annen organisasjon eller et annet miljø (APAC, EU, USA)?
Funksjonen automations i Workiva kan bare kjøre skript i det samme arbeidsområdet der filen ligger. Du kan imidlertid bruke Workiva Scripting Connector eller Workiva Scripting API til å kjøre et skript som ligger på et annet sted.
Hvis du bruker skript-API-et, må du opprette og hoste et skript i hovedarbeidsområdet som har som eneste formål å kalle opp skript-API-et og kjøre skriptet i det sekundære arbeidsområdet.
Kan jeg sende inndata/parametere under kjøring av skriptet?
For øyeblikket tillater ikke automatiseringsfunksjonen kjøretidsinndata som sendes til skriptet når skriptet kjøres.
Hvilke metadata sendes til en skriptutførelse fra en automatisering? Er arbeidsområde-ID-en sendt?
Når et skript kjøres fra en automatisering, er den eneste parameteren som sendes, ID-en til dokumentet der automatiseringen er konfigurert.
Hvordan får jeg tilgang til legitimasjon til Workiva og andre systemer fra skriptkjøringen?
Når et skript kjøres fra en automatisering, er det eneste alternativet å hardkode legitimasjonen i selve koden.
Kan det samme skriptet kjøres samtidig fra to eller flere filer?
Ja, et skript kan kjøres samtidig fra enten samme fil eller flere filer.
Bruke skript fra kjeder
Kan jeg kjøre et skript som ligger i et annet arbeidsområde, en annen organisasjon eller et annet miljø (APAC, EU, USA)?
Ja, et skript som ligger i ett arbeidsområde, kan kjøres av en kjede som ligger i et annet arbeidsområde, en annen organisasjon eller et annet miljø.
For å gjøre dette må Workiva Scripting Connector som brukes i kjeden, settes opp med en API-bevilgning som er opprettet i vertsarbeidsområdet, og skript-/IAM-URL-adressene som brukes, må svare til riktig arbeidsområde.
Se artiklene nedenfor for å lære mer:
Kan det samme skriptet kjøres samtidig fra to noder?
Det samme skriptet kan kjøres samtidig fra flere noder innenfor samme kjede og/eller flere kjeder.
Hvordan bruker jeg utdata fra et skript i en annen kjedenode?
Med kommandoen Run Script kan du legge inn et eksempel på en nyttelast for hver utdata som produserer JSON, som deretter kan brukes i andre noder.
Kan en temporal fil opprettes i en kjede ved hjelp av parametere i skriptet?
Du kan angi binære filer som parametere så lenge de ikke overstiger 128 kB.
API-er og biblioteker
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.