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 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 Workiva Scripting-grä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. Dina skript körs på Workiva-hanterad, FedRAMP-kompatibel infrastruktur – inom samma betrodda plattform, behörigheter och styrning som resten av ditt Workiva-arbete.
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 roller: Workiva Scripting-roller (Skriptredigerare, Skriptvisare och Skriptkörare) är nivåindelade så att användare bara har åtkomst till de skript som krävs 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 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 prov på skript för din användning. Du kan också skapa dina egna med hjälp av instruktionsartiklarna i avsnittetSkapa och hantera skripti 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, seWorkiva 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 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 tillfälligt 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örtidsindata.
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 | 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 eller EU) i 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 ettdependencies.zip-paket som inkluderar dina delade bibliotek – och till och med klientkod genererad frånWorkiva public API-specifikationen– 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.
För stegvisa steg för att bygga och ladda upp beroenden, seSkriptbibliotek och beroenden som stöds.
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 skickas följande parametrar
- DOCUMENT_ID: ID för det dokument där automatiseringen körs.
- INPUT_SHEET_ID: WURL för kalkylarket som används för att hantera automatiseringens ingångsparametrar.
- INPUT_RESOURCE_ID: WURL:en för avsnittet i kalkylbladet "input".
- INPUT_SPREADSHEET_ID: ID för kalkylarket "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 miljö (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 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 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 inom samma kedja och/eller flera kedjor.
Hur använder jag utdata från ett skript i en annan kedjenod?
Kommandot Run Script låter dig ange en exempelnyttolast för varje utdata som producerar JSON. Denna utdata kan sedan 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)
Workiva Scripting stöder endast Python för närvarande.
Läs mer om detta: Workiva Scripting-bibliotek 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.
Läs mer: 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. Skript-API-slutpunkter är för närvarande tillgängliga som prototypslutpunkter inom Workivas Prototype Platform API.
Slutpunkter för Public Scripting API kommer att vara tillgängliga sommaren 2026. När de är tillgängliga förväntas du migrera till de offentliga slutpunkterna – stödet för icke-offentliga slutpunkter (inklusive prototyp) för Workiva Scripting upphör i oktober 2027.
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 = 'Bärare' + json.loads(tokenResponse.text)['access_token'] dataRes = requests.get(SCRIPTING_API_URL, headers = {'Auktorisering': accessToken}) print(json.loads(dataRes.text))
Hur uppdaterar jag formatet för celler med Python?
Du kan uppdatera cellformatering från ett skript genom att anropa Workiva Platform API:s slutpunktUppdatera arkinnehåll(POST /spreadsheets/{spreadsheetId}/sheets/{sheetId}/update). Använd fältetapplyFormatsför att tillämpa format som fetstil, siffer- och valutaformatering samt skuggning, ochapplyBordersför att tillämpa ramar. Gruppera flera formatåtgärder till en enda begäran – varje fält accepterar en array med åtgärder och slutpunkten är hastighetsbegränsad – istället för att skicka en begäran per intervall.
Läs mer:Uppdatera arksinnehålloch Kalkylbladsdataguiden.
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 – till exempel PDF-filer, bilder eller andra godtyckliga filtyper – till plattformen somStödjande dokument, vilket bevarar originalfilen i befintligt skick. För att ladda upp en, använd importfilens slutpunkt medkindinställd påSupportingDocument. 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.
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.