Workiva har support för både Pythons standardbibliotek och Python Package Index (PyPI). Beroenden kan genereras automatiskt med hjälp av den inbyggda skriptredigeraren eller skapas manuellt på din lokala maskin.
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.
Bibliotek som stöds
Workiva-skript har support för Pythons standardbibliotek out-of-the-box Det här biblioteket innehåller inbyggda moduler som ger åtkomst till systemfunktioner som t.ex. arkivering, samt många standardiserade lösningar på vanliga programmeringsproblem.
Förutom standardbiblioteket finns det en växande samling komponenter tillgängliga från Python Package Index. Du måste generera beroendena i ditt skript som inkluderar de PyPI-komponenter du vill använda.
En av PyPI-komponenterna som vi ofta använder är "requests"-komponenten, som låter dig interagera med Workiva-plattformen via Workiva Public APIs.
Obs: PyPI-komponenter som kräver ytterligare installationer kanske inte får support.
Skapa beroenden med skriptredigeraren
Skriptredigeraren kan automatiskt bygga dina beroenden.
Så här gör du:
- Från Home, öppna en skriptfil (eller skapa en ny).
- Gå till panelen Källor på vänster sida, högerklicka i det tomma utrymmet precis under de aktuella källorna och välj Lägg till källfil.
- Skapa en ny källa med namnet: requirements.txt.
- Lägg till en rad i mittfältet som anger vilket bibliotek och vilken version som ska installeras. (Detta är raden requests==2.28.1 i vår exempelbild).
- Klicka på Spara längst upp till vänster.
- Ladda om din skärm. Hoppa inte över det här steget!
När du har sparat och uppdaterat genererar Workiva automatiskt ett beroendepaket som heter dependencies.zip. Du kan nu använda biblioteket i din kod.
Generera beroenden från din lokala maskin
Om du vill skapa beroenden manuellt måste du bygga ett paket lokalt och ladda upp det till skriptredigeraren. Du kan t.ex. ha ett projekt som behöver åtkomst till biblioteket "requests" för att köra ett skript:
import requests print (requests.get('https://api.github.com').text) Detta kan göras using en pip-kompatibel pakethanterare:
-
Definiera versionen av biblioteket "requests" som ska åtkommas som ett pip-kompatibelt format; det ska sparas som en .TXT-fil:
echo requests==2.26.0 > krav.txt -
Installera beroendet i en ny Dependencies -katalog:
pip3 installera --target ./dependencies --requirement requirements.txt -
Skapa en dependencies.zip -fil:
cd beroendenzip -r ../beroenden.zip .cd .. -
I ditt Workiva Scripting-projekt, skapa en tom dependencies.zip -fil:
curl -k -v -X POST \ -H 'Innehållstyp: application/x-www-form-urlencoded;charset=UTF-8' \ -d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&grant_type=client_credentials" \ https://api.app.wdesk.com/iam/v1/oauth2/token -
För att hämta slutpunktens länk, klicka på Kör länk i menyn högst upp i skriptredigeraren:
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id> /filer \ -H "Innehållstyp: application/json" -H "Auktorisering: Bärare $BEARER_TOKEN" \ -d '{"sökväg":"beroenden.zip"}'Du borde få följande svar. Du kan hämta fil-ID:t därifrån.
{"id":"<file-id> ","sökväg":"beroenden.zip"} -
För att få en lista över fil-ID:n i ditt skript, gör en GET-förfrågan:
curl -X HÄMTA https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id> /filer \ -H "Innehållstyp:applikation/json" \ -H "Auktorisering: Bärare $BEARER_TOKEN" -
Ladda upp dependencies.zip-filen till det nya fil-ID:t:
curl -X PUT https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id> /filer/<file-id> \ -H "Auktorisering: Bärare $BEARER_TOKEN" --data-binär @dependencies.zip -
För att testa biblioteket "requests", kör ett skript med följande kod:
importförfrågningar print (requests.get('https://api.github.com').text)
VANLIGA FRÅGOR
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.