Workiva-skript ingår i Anpassa Workiva. För att använda skript måste din arbetsyta ha Anpassa Workiva/skript aktiverat, och användarna behöver lämplig(a) skriptroll(er) och filbehörigheter.
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.
Mer generellt kan skript anpassas till dina unika affärsbehov – vilket gör att du kan skräddarsy och skala arbetsflöden efter hur din organisation arbetar, med styrd exekvering du kan lita på. Koden är din egen Och i takt med att mer arbete blir AI-assisterat, ger skriptarbetet arbetet en pålitlig och repeterbar grund att agera utifrån.
Finns det några gränser 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 gränserna för Workiva-skript .
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?
Ja. Skript körs på Workiva-hanterad, FedRAMP-kompatibel infrastruktur, med samma plattformsbehörigheter och styrningskontroller som annat Workiva-innehåll.
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 dedikerad arbetsyta eller organisation för behöriga användare : Att skapa en arbetsyta, eller till och med en hel organisation, med 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 roller :Workivas skriptroller – skriptredigerare, skriptvisare och skriptkörare – är nivåindelade så att användare bara kan komma åt de skript som behövs för deras arbete. Rollen Script Runner låter användare köra skript utan att visa koden.
- Användningsbehörigheter : Skriptfiler kan begränsas på filnivå så att endast specifika användare kan redigera eller visa din kod.
Läs mer om Workiva Scripting-roller 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?
Ja. Vi har samlat ett antal exempelskript för din användning. Du kan också skapa dina egna med hjälp av instruktionsartiklarna i avsnittet Skapa och hantera skript i supportcentret.
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 versionshanteringssystem – särskilt om du har ett versionshanteringssystem för företag, se Workiva Scripting: Bästa praxis för utvecklingsprocessen .
Hur synkroniserar jag Workiva-kod med ett företags versionshanteringssystem (t.ex. GitHub)?
Workiva Scripting API tillhandahåller källhanteringsslutpunkter för att hämta och uppdatera skriptkällfiler. Att hämta källor kräver script:read ; att skapa, uppdatera, ladda upp eller synkronisera källor kräver script:write . Workiva synkroniserar inte automatiskt skript med externa versionshanteringssystem som GitHub, GitLab eller SVN.
För instruktioner om hur du skapar eller uppdaterar ett API-tillstånd, se Workiva API-konfiguration .
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 Pythons öppna-funktion för att tillfälligt läsa och skriva filer i mappen /tmp . Andra vägar är begränsade.
Varje gång ett skript körs startas en container i Workivas molninfrastruktur. Den containern har Linux installerat, och alla sökvägar är begränsade förutom /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. Men om ditt skript körs som en del av ett Chains-arbetsflöde kan du använda Chains-variabler och skicka deras värden till skriptet som körningsindata.
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 (dvs. binär-till-text-kodning ).
Kan jag komma åt organisations-ID, arbetsyte-ID och region i mina skript?
Ja, organisations-ID, arbetsyte-ID och region (USA, Asien-Stillahavsområdet, Kalifornien, EU) är tillgängliga för ditt skript via miljövariabler. Till exempel os.getenv("WORKIVA_ORGANIZATION_ID") .
| Variabel | Beskrivning |
|---|---|
| WORKIVA_ORGANISATION_ID | Det unika ID:t för Workiva-organisationen där skriptet finns. |
| WORKIVA_ACCOUNT_ID | Det unika ID:t för Workiva-arbetsytan där skriptet finns. |
| WORKIVA_KLUSTER_DOMÄN | Workiva-regionen (USA, Asien-Stillahavsområdet, Kalifornien eller EU) för produktionsmiljön där skriptet finns. |
| WORKIVA_SCRIPTING_SCRIPT_ID | Det unika ID:t för det skript som körs. |
| WORKIVA_SCRIPTING_RUN_ID | Det unika ID:t för den aktuella skriptkörningen. |
| WORKIVA_SCRIPTING_MEMORY_LIMIT | Den maximala mängden RAM som är tillgängligt för skriptet under en enda körning. |
| WORKIVA_SCRIPTING_DISK_LIMIT | Det maximala disklagringsutrymmet som skriptet kan använda i katalogen /tmp under en enda körning. |
Kan jag använda kod från ett Workiva-skript i ett annat Workiva-skript?
Du kan inte direkt importera eller anropa ett Workiva-skript från ett annat. För en liten återanvändbar kod kan du kopiera och klistra in den i varje skript som behöver den.
För kod som du återanvänder i många skript är en bättre metod att paketera den som ett delat beroende. Du kan bygga ett dependencies.zip- paket som inkluderar dina delade bibliotek – och till och med klientkod genererad från Workivas publika API-specifikation – och sedan ladda upp samma paket till varje skript som behöver det. Detta låter dig behålla vanlig kod på ett ställe och återanvända den i flera skript istället för att kopiera den till vart och ett.
Stegvisa steg för att bygga och ladda upp beroenden finns i Skriptbibliotek och beroenden som stöds .
Använda skript från automatiseringar
Kan jag köra ett skript som finns i en annan arbetsyta, organisation eller region (APAC, CA, EU eller USA)?
Workiva-automatiseringar kan endast köra skript som finns i samma arbetsyta som filen. För att köra ett skript i en annan arbetsyta, organisation eller region, använd Workiva Scripting-anslutningen eller Workiva Scripting API .
När du använder Scripting API:et skapar du API-tilldelningen i arbetsytan som är värd för målskriptet. Beviljandet kräver script:execute ; om integrationen hämtar körningsstatus, loggar eller utdata kräver den också script:read . För instruktioner om hur du skapar eller uppdaterar ett API-tillstånd, se Workiva API-konfiguration .
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 skickas följande parametrar:
- DOKUMENT_ID : ID:t för dokumentet där automatiseringen körs.
- INPUT_SHEET_ID : WURL:en för kalkylbladet som används för att hantera automatiseringens inparametrar.
- INPUT_RESOURCE_ID : WURL:en för avsnittet i kalkylbladet "input".
- INPUT_SPREADSHEET_ID : ID:t för kalkylbladet "input".
- INPUT_SPREADSHEET_SHEET_ID : ID för avsnittet i kalkylbladet "input".
För mer information, se Workivas supportsida Kör skript med automatiseringar .
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 i en annan arbetsyta, organisation eller region (APAC, Kanada, EMEA, USA)?
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-anslutningen som används i kedjan konfigureras med ett API-tillstånd som skapats i värdarbetsytan, och de skript-/IAM-URL:er som används måste motsvara rätt arbetsyta.
Se följande artiklar för att lära dig mer:
Kan samma skript köras samtidigt från två noder?
Samma skript kan köras samtidigt från flera noder i en kedja eller över flera kedjor.
Hur använder jag utdata från ett skript i en annan kedjenod?
Med kommandot Run Script kan du ange en exempelnyttolast för varje utdata som producerar JSON. Denna utdata kan sedan användas i andra noder.
Kan jag skicka en temporär fil till ett skript från en kedja?
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-paketindexet (PyPI)
Workiva Scripting stöder endast Python för närvarande.
För mer information, se Workivas supportsida Workiva-skriptbibliotek och beroenden som stöds .
Vilken version av Python används i Workiva Scripting?
Nya skript körs på Python 3.13. Workiva Scripting stöder fortfarande befintliga Python 3.9-skript, men stödet för Python 3.9 upphör i oktober 2027 – så du bör migrera alla Python 3.9-skript till Python 3.13 så snart som möjligt.
För mer information, se Workivas supportsida Migrera 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?
Ja. Det publika skript-API:et är tillgängligt via Workiva API-versionen från 2026-01-01. Skicka X-version: 2026-01-01 med varje förfrågan.
Se guiden för Scripting API för information om vilka åtgärder, omfattningar och krav som stöds.
Hur skapar jag och visar API- beviljande för Workiva Public API:er?
Du behöver få ett klient-ID och en hemlighet genom att följa instruktionerna här .
Hur auktoriserar jag mig till Workiva Public API:er med hjälp av Python?
Följande exempel hämtar en åtkomsttoken och hämtar de skript som är tillgängliga för API-tilldelningen i dess arbetsyta. API-tilldelningen kräver script:read- omfånget. För instruktioner om hur du skapar eller uppdaterar ett API-tillstånd, se Workiva API-konfiguration .
import os import requests AUTH_URL = "https://api.app.wdesk.com/oauth2/token" SCRIPTING_API_URL = "https://api.app.wdesk.com/scripts" API_VERSION = "2026-01-01" CLIENT_ID = os.environ ["CLIENT_ID"]CLIENT_SECRET = os.environ ["CLIENT_SECRET"]token_response = requests.post(AUTH_URL, headers={ "Innehållstyp": "application/x-www-form-urlencoded;charset=UTF-8", "X-version": API_VERSION, }, data={ "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, "grant_type": "client_credentials", }, timeout=30, ) token_response.raise_for_status() headers = { "Auktorisering": Behörighet: ... f"Bearer {token_response.json() ['access_token']}", "X-Version": API_VERSION, } scripts_response = requests.get(SCRIPTING_API_URL, headers=headers, timeout=30, ) scripts_response.raise_for_status() print(scripts_response.json()) Hur uppdaterar jag formatet för celler med Python?
Du kan uppdatera cellformatering från ett skript genom att anropa Workiva Platform API:s slutpunkt för uppdatering av arkinnehåll ( POST /spreadsheets/{spreadsheetId}/sheets/{sheetId}/update ).
-
Användfältet applyFormats för att tillämpa format som fetstil, siffer- och valutaformatering samt skuggning,och applyBorders för att tillämpa kantlinjer. - Vi rekommenderar att du gruppvis skickar flera formatåtgärder till en enda begäran – varje fält accepterar en array med åtgärder och slutpunkten är hastighetsbegränsad – snarare än att skicka en begäran per intervall.
För mer information, se följande Workiva-utvecklarsidor:
Kan jag läsa/skriva eller ladda upp arkiveringar som inte finns i Workiva och som lagras i Workiva?
Ja. Med hjälp av Workivas API:er för filhantering kan du ladda upp filer som inte är från Workiva – som PDF-filer, bilder eller andra godtyckliga filtyper – till plattformen som stöddokument , vilket bevarar originalfilen i befintligt skick. För att ladda upp en, använd importfilens slutpunkt med Stöddokument visas tillsammans med dina andra Workiva-filer och kan listas, flyttas, kopieras, exporteras (laddas ner) och slängas i papperskorgen precis som vilken annan fil som helst.typen inställd på SupportingDocument .
Läs mer: Introduktion till API:er för filhantering
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.