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ämpliga skriptroller 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 arbetsyta Admin.
| Roll | Nivå av åtkomst |
|---|---|
| Script Runner | Kan köra skript. |
| Visare för skript | Kan visa skript. |
| Skriptredigerare | Kan visa, skapa och redigera skript. |
För mer information, se supportsidan 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 center canvas där du kommer att skriva manuset
- Ett avsnitt längst ner på där du kan se resultatet av skriptets körning
- En menyrad längst 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 längst 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, gör en HTTP POST-begäran till prototypslutpunkten Initiera en skriptkörning .
Skriptets ID ingår i slutpunkten
Skriptutdata loggas som stderr och stdout, tillsammans med vissa mätvärden för användning för att övervaka produktens hälsa.
För att köra ett skript genom kedjor:
Du måste använda Workiva Scripting-anslutningen. Innan du gör det måste en säkerhetsadministratör för org aktivera kontakten 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 åtgärden Kör 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.
Läs mer om Kör skript med automatiseringar.
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 Home, 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') if compounding_period not in 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 ett belopp på",investment,"investeras i",years,"år till",\ interest_rate,"% ränta sammansatt på",compounding_period,"basis. ") print("Det framtida värdet av dessa pengar är:") print(FV) - Klicka på Run Script längst upp till vänster.
- Klicka på Add Variable och ange de parametrar som du vill använda.
- Klicka på Kör skript för att avsluta.
Skriptresultaten kan nu ses i panelen Output längst ned på skärmen.
Hur du får support med Workiva Scripting
Du kan kontakta Workiva Support om du har frågor om Workiva Scripting. Observera dock att våra agenter endast kan hjälpa till med frågor om själva plattformen - vi kan inte hjälpa till med att skriva eller felsöka din kod.
Du kan också utforskaWorkiva Scripting-avsnitteti 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 frågor relaterade till användningen av Workivas publika API:er för att skriva din kod för att interagera med Workiva-plattformen programmatiskt, använd vår Developers & APIs 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 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.
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 skriptskript 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.