Obs: Scripting är för närvarande endast tillgängligt via Customize Workiva. Läs mer.
Skriptinställningar och översikt
Hur används scripts vanligtvis?
Workiva Scripting kan automatisera många repeterbara, tidskrävande uppgifter som annars skulle utföras för hand. Några vanliga användningsområden är undertryckande av nollrader, rapportlayouter och tillämpning av anpassad formatering på flera dokument.
Med detta sagt kan skript anpassas till många olika affärsbehov. Koden är din egen
Finns det några begränsningar för skript?
Ja, Workiva tillämpar ett antal begränsningar för både Workiva Scripting och skript-API:et.
Läs mer om skriptgränser.
Hur triggar jag scripts från kedjor?
För detta krävs Workiva Scripting Connector.
Se artiklarna nedan för att läsa mer:
Är Workiva Scripting Fedramp-kompatibelt?
Absolut. Säkerhet är vår högsta prioritet på Workiva, och vi har byggt en infrastruktur som garanterar att dina kodkörningar är både säkra och effektiva.
Hur kan jag skydda åtkomsten till skript?
Det finns flera sätt att skydda din kod från åtkomst av obehöriga användare:
- Skapa en särskild arbetsyta eller organisation för auktoriserade användare: Att skapa en arbetsyta, eller till och med en hel organisation, för endast behöriga användare är det säkraste alternativet. Till exempel kan partners skapa en arbetsyta för Workiva Scripting i din organisation och låta kunder köra skript från sin egen organisation.
- Använd rollerna: Workivas skriptroller (Script Viewer, Script Runner och Script Editor) är nivåindelade så att användarna endast har åtkomst till de skript som är nödvändiga för deras jobb. Script Runner-rollen ger till exempel användare möjlighet att köra skript men inte få åtkomst till någon del av koden.
- Använd behörigheter: Skriptfiler kan begränsas på filnivå så att endast specifika användare kan redigera eller visa din kod.
Läs mer om skriptroller och behörigheter.
Finns det en lista över tillåtna IP-adresser för skript?
Ja, tillåtna IP-adresser för skriptprogrammet ingår här.
Finns det ett skriptbibliotek tillgängligt?
Vi har samlat ett antal prov på skript för din användning. Dessa skript kan också skapas manuellt med hjälp av de artiklar som länkas i föregående fråga.
Använda skriptredigeraren
Hur hanterar jag skriptversioner?
För närvarande lagrar Workiva endast den senaste versionen av ett skript.
Du kan skapa kopior av dina skriptfiler i Workiva och organisera dem i mappar, men vi rekommenderar att du använder ett separat versionskontrollsystem - särskilt om du har ett företagsversionskontrollsystem.
Hur synkroniserar jag Workiva-kod med ett företags versionshanteringssystem (t.ex. GitHub)?
Workiva Scripting API tillhandahåller slutpunkter för källhantering där användare kan hämta den senaste versionen av ett skript eller uppdatera ett skript till en nyare kopia. Workiva erbjuder för närvarande inte automatiserad synkronisering mellan skriptfiler och ditt företags versionshanteringssystem (t.ex. Gitlab, Github, SVN).
Hur får jag åtkomst till autentiseringsuppgifter till Workiva- och icke-Workiva-system från ett skript?
Det finns två sätt att få åtkomst till autentiseringsuppgifter till Workiva och icke-Workiva-system:
- Skicka autentiseringsuppgifter som input vid exekvering (önskvärt)
- Hårdkoda autentiseringsuppgifterna i koden
Varför visas inte värdena för ingångarna i exekveringen av skriptet i loggutmatningen under körningen?
Detta är en säkerhetsåtgärd. Eftersom inmatningsparametrar kan innehålla känsliga uppgifter tar vi bort dem från loggar som vänder sig till användaren.
Hur kan jag lagra tillfälliga data under skriptexekveringar?
Workiva-skript kan använda Python Open-funktionen (extern länk) för att läsa och skriva filer temporärt i mappen /tmp. Andra vägar är begränsade.
Varje gång ett skript körs startas en container i Workivas molninfrastruktur. Containern har Linux installerat, och alla sökvägar är begränsade utom /tmp (som är tom). Data kan skrivas och läsas temporärt på den vägen. När körningen är över slängs behållaren.
Kan jag definiera globala variabler som ska användas i flera skript, à la Chains?
Inte just nu.
Kan jag skicka filer som parametrar?
Binärfiler kan skickas som parametrar så länge de inte överstiger 128 kB och är kodade till text (t.ex. binär till textkodning).
Kan jag få åtkomst till org-id, id för arbetsyta och region i mina skript?
Ja, organisations-ID, ID för arbetsyta och region (US, APAC, EU) har åtkomst till din skriptkod via miljövariabeln. Till exempel os.getenv("WORKIVA_ORGANIZATION_ID").
| Variabel | Beskrivning |
|---|---|
| WORKIVA_ORGANISATION_ID | Workivas organisations-ID |
| WORKIVA_ACCOUNT_ID | ID för arbetsytan Workiva |
| WORKIVA_KLUSTER_DOMÄN | Workiva-regionen (USA, APAC, EU) för din produktionsmiljö. Du kan verifiera detta genom att jämföra med den URL som används för att logga in på Workiva. |
Kan jag använda kod från ett Workiva-skript i ett annat Workiva-skript?
För närvarande finns det inget sätt att paketera ett Workiva-skript som ett bibliotek och återanvända koden i flera skript. Det bästa alternativet just nu är att kopiera den återanvändbara kodbiten och klistra in den i skripten efter behov.
Använda skript från automatiseringar
Kan jag köra ett skript som finns på en annan arbetsyta, organisation eller miljö (APAC, EU, US)?
Automationsfunktionen i Workiva kan bara köra skript i samma arbetsyta där arkiveringen finns. Däremot kan Workiva Scripting connector eller Workiva Scripting API användas för att köra ett skript som finns på en annan plats.
Om du använder skript-API:t måste du skapa och vara värd för ett skript i den huvudsakliga arbetsytan vars enda syfte är att anropa skript-API:t och köra skriptet i den sekundära arbetsytan.
Kan jag skicka inmatningar/parametrar under exekvering av skript?
För närvarande tillåter inte automatiseringsfunktionen exekvering av indata som skickas till skriptet när skriptet körs.
Vilka metadata skickas till en skriptexekvering från en automatisering? Har id:t för arbetsytan skickats?
När ett skript körs från en automatisering är den enda parameter som skickas ID för det dokument där automatiseringen är konfigurerad.
Hur får jag åtkomst till autentiseringsuppgifter till Workiva- och icke-Workiva-system från skriptexekveringen?
När ett skript exekveras från en automatisering är det enda alternativet att hårdkoda autentiseringsuppgifterna i själva koden.
Kan samma skript köras samtidigt från två eller flera arkiveringar?
Ja, ett skript kan köras samtidigt från antingen samma arkivering eller flera arkiveringar.
Använda skript från kedjor
Kan jag köra ett skript som finns på en annan arbetsyta, organisation eller miljö (APAC, EU, US)?
Ja, ett skript som finns på en arbetsyta kan köras av en kedja som finns på en annan arbetsyta, i en annan organisation eller i en annan miljö.
För att göra detta måste Workiva Scripting connector som används i kedjan konfigureras med ett API- beviljande som skapats i värdarbetsytan, och de skript/IAM-URL:er som används måste motsvara rätt arbetsyta.
Se artiklarna nedan för att läsa mer:
Kan samma skript köras samtidigt från två noder?
Samma skript kan köras samtidigt från flera noder inom samma kedja och/eller flera kedjor.
Hur använder jag utdata från ett skript i en annan kedjenod?
Med kommandot Run Script kan du ange ett prov på nyttolasten för varje utdata som producerar JSON, som sedan kan användas i andra noder.
Kan en temporal arkivering skapas i en kedja med hjälp av parametrar i skriptet?
Du kan ange binärfiler som parametrar så länge de inte överstiger 128 kB.
API:er och bibliotek
Vilka API:er och bibliotek har support?
Workiva Scripting har för närvarande support:
- Workivas publika API:er
- Icke-Workiva API:er
- Pythons standardbibliotek
- Python Package Index (PyPI)
Support för ytterligare språk är fortfarande under övervägande och kan komma att implementeras i framtiden.
Läs mer om detta: Workiva Scripting-bibliotek och beroenden som stöds
Vilken version av Python används i Workiva Scripting?
Workiva Scripting stöder för närvarande Python 3.9 och Python 3.13, med stöd för att använda Python 3.9 som upphör i mars 2026.
Lär dig mer om detta: Migrering av skript till Python 3.13 i Workiva
Erbjuder Workiva API-klienter med populära språk som Python eller Java?
Vi tillhandahåller för närvarande inga offentliga SDK:er för Python eller Java.
Vi tillhandahåller dock öppna API-specifikationer för Workiva API:er så att du kan skapa dessa bibliotek själv. Du kan till exempel hämta Workiva Platform API:s OAS-fil och generera ett klientbibliotek.
Finns det skriptspecifika API:er tillgängliga?
Skript-API-slutpunkter är tillgängliga som prototyp-slutpunkter inom Workivas Prototype Platform API.
Hur skapar jag och visar API- beviljande för Workiva Public API:er?
Du måste skaffa ett klient-ID och en klienthemlighet genom att följa anvisningarna på här.
Hur auktoriserar jag mig till Workiva Public API:er med hjälp av Python?
Följande kodsnutt gör ett anrop till IAM-tjänsten för att generera en åtkomsttoken som sedan används för att autentisera sig till Scripting-prototypens slutpunkter. Det kommer att få en lista över alla skript som API-tillståndet (dvs. klienten) har åtkomst till i den arbetsyta där beviljandet skapades.
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))
Hur uppdaterar jag formatet för celler med Python?
Prototypändpunkten Update Sheet Content gör det möjligt att uppdatera cellernas format med hjälp av Python-kod.
Kan jag läsa/skriva eller ladda upp arkiveringar som inte finns i Workiva och som lagras i Workiva?
För närvarande finns det inga tillgängliga ändpunkter för att läsa/skriva eller ladda upp arkivering som inte är lagrad i Workiva.
Kan jag skapa och hantera automatiseringar på ett programmatiskt sätt?
För närvarande finns det inga endpoints tillgängliga för att programmatiskt skapa eller hantera automatiseringar.