Workiva Scripting tillhandahåller en flexibel och säker miljö för att köra Python-kod på Workiva-plattformen. Genom att skriva anpassade skript som automatiskt kör repeterbara processer kan du skapa effektivitetsvinster i stor skala över flera rapporter, arkiveringar och arbetsytor. Och i takt med att mer arbete blir AI-assisterat ger skriptarbete det arbetet en pålitlig och styrd grund att bygga vidare på – flexibilitet kombineras med den kontroll som behövs för att omvandla automatisering till repeterbara resultat som du kan lita på.
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.
Roller och behörigheter
Roller är en systemomfattande inställning i Workiva, vilket innebär att de fastställer en standardnivå för åtkomst för alla skript i en arbetsyta. Det finns tre Workiva Scripting-roller som kan tilldelas av din arbetsyteadministratör.
| Roll | Nivå av åtkomst |
|---|---|
| Script Runner | Kan köra skript. |
| Visare för skript | Kan visa skript. |
| Skriptredigerare | Kan visa, skapa och redigera skript. |
Mer information finns på sidan support för skriptroller och behörigheter .
Hur man använder Workiva Scripting
När du har aktiverat skript på din arbetsyta visas de på startskärmen tillsammans med andra kalkylark, dokument och presentationer på din webbplats. Du kan antingen skapa ett nytt skript eller välja ett befintligt från din arkivering.
Det är i skriptredigeraren som du bygger, redigerar och kör skripten på din webbplats.
Den innehåller:
- En mittersta arbetsyta där du skriver manuset
- En utdatasektion längst ner där du kan se resultaten av skriptets körning
- En menyrad högst upp där du sparar eller kör skriptet
- En egenskapspanel till höger för att hantera skriptegenskaper och körhistorik
- En källpanel på vänster sida
När skript väl är byggda kan de köras manuellt, programmatiskt, via kedjor eller inifrån en Workiva-fil.
För att köra ett skript manuellt:
- Klicka på Kör skript i menyraden högst upp på skärmen.
- Klicka på + Lägg till variabel .
- Ange namn och värden för de miljövariabler som ska skickas som parametrar.
- Klicka på Kör skript .
För att köra ett skript programmatiskt, använd ett API-bidrag med:
-
script:executeför att starta skriptet. -
script:readför att hämta dess körstatus, loggar eller utdata.
Skicka en HTTP POST- begäran till POST /scripts/{scriptId}/execution med headern X-Version: 2026-01-01 . Begärantexten är obligatorisk. Definiera runtime-indata som strängvärderade JSON-egenskaper, eller skicka ett tomt JSON-objekt ( {} ) om skriptet inte kräver indata.
Slutpunkten returnerar 202 Accepted med en operationLocation .Avsök den URL:en tills operationen når slutförd , misslyckad eller avbruten . Operationens resourceUrl identifierar den resulterande skriptkörningen.
Skriptloggar inkluderar standardutdata, standardfel och körningsdetaljer.
För mer information, se översikten över Workiva Developers Scripting API .
För att köra ett skript genom kedjor:
Du måste använda Workiva Scripting-anslutningen. Innan detta görs måste en säkerhetsadministratör för organisationen aktivera kopplingen via skärmen Konfigurationer.
Se artiklarna nedan för att läsa mer:
För att köra ett skript i en Workiva-fil måste du följa stegen nedan:
I panelen Automatiseringar i ett dokument, kalkylblad eller en presentation skapar du en ny automatisering och väljer Manuell körning som utlösare.
Lägg till en åtgärd för att köra skript , välj det skript du vill köra och definiera eventuellt vilka användare eller roller som har behörighet att köra det.
Obs: Endast de angivna användarna kommer att se och kunna köra automatiseringen i filen.
Skapa ett övningsmanus
Innan du skapar live-skript på din webbplats rekommenderar vi att du skapar ett övningsskript i skriptredigeraren. Detta hjälper dig att bekanta dig med processen innan du hanterar live-data.
Följ dessa steg för att skapa ett enkelt skript som beräknar pengars tidsvärde:
- Från startsidan, klicka på + Skapa => Skript .
- På höger sida anger du ett namn och en kort beskrivning för skriptet.
- Gå till skriptredigeraren i mitten av skärmen och radera all befintlig kod. Du bör ha en tom duk.
-
Klistra in den här koden i editorn:
"import os, sys # https://www.investopedia.com/terms/t/timevalueofmoney.asp # Formel för pengars tidsvärde # FV = PV x [1 + (i / n)]^(nxt) # Antag att en summa på 10 000 dollar investeras under ett år med 10 % ränta som summeras årligen. # Det framtida värdet av dessa pengar är: # FV = 10 000 dollar x [1 + (10% / 1)]^ (1 x 1) = 11 000 dollar compounding_periods = {"annual" : 1, "monthly" : 12, "quarterly" : 4, "daily" :365} if 'INVESTMENT' not in os.environ: print("Kan inte köra skriptet. Investering saknas.") sys.exit() if 'INTEREST_RATE' not in os.environ: print("Kan inte köra skriptet. Interest rate is missing.") sys.exit() if 'COMPOUNDING_PERIOD' not in os.environ: print("Kan inte köra skriptet. Compounding period is missing.") sys.exit() if 'YEARS' not in os.environ: print("Det går inte att köra skriptet. Antal år saknas.") sys.exit() compounding_period = os.getenv('COMPOUNDING_PERIOD') om compounding_period inte finns i compounding_periods.keys(): print("Kan inte köra skriptet.", compounding_period," är inte en giltig period") sys.exit() investment = int(os.getenv('INVESTMENT')) interest_rate = float(os.getenv('INTEREST_RATE')) years = int(os.getenv('YEARS')) n = compounding_periods [compounding_period]FV = investment * pow((1 + ((interest_rate/100) / n)),n * years) print("Antag att en summa av",investering,"är investerad i",år,"år(år) till",\ interest_rate,"% ränta sammansatt på",compounding_period,"basis. ") print("Det framtida värdet av dessa pengar är:") print(FV) - Klicka på Kör skript längst upp till vänster.
- Klicka på +Lägg till variabel och ange de parametrar du vill använda.
- Klicka på Kör skript för att avsluta.
Skriptresultaten kan nu visas i utdatapanelen längst ner på skärmen.
Hur du får support med Workiva Scripting
Du kan kontakta Workivas support om du har några frågor om Workivas skript. Workivas support kan hjälpa till med skriptplattformens beteende, men kan inte skriva eller felsöka anpassad Python-kod.
Du kan också utforska Workiva Scripting-avsnittet i supportcentret för att lära dig mer – inklusive grunderna i skriptning, skapande och hantering av skript, exempel, felsökning och bästa praxis.
Dessa resurser hjälper dig att komma igång med Workiva Scripting. För ytterligare hjälp, besök Workiva APIs Community eller Workiva Scripting Community .
VANLIGA FRÅGOR
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.
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 .