Opmerking: Scripting is momenteel alleen beschikbaar via Customize Workiva. Meer informatie.
Scripting instellen en overzicht
Hoe worden scripts vaak gebruikt?
Workiva Scripting kan veel herhaalbare, tijdrovende taken automatiseren die anders met de hand zouden worden uitgevoerd. Enkele veel voorkomende gebruikssituaties zijn nulrij-onderdrukking, rapportlay-outs en het toepassen van aangepaste opmaak op meerdere documenten.
Dit gezegd hebbende, kunnen scripts op grote schaal worden aangepast voor veel zakelijke behoeften. De code is van uzelf; wat u ermee doet, hangt grotendeels af van uw scriptontwikkelaar, de inrichting van uw werkruimte en het huidige aantal handmatige processen in uw bedrijf.
Zijn er scriptbeperkingen?
Ja, Workiva dwingt een aantal limieten af voor zowel Workiva Scripting als de scripting API.
Meer informatie over scripting-limieten.
Hoe trigger ik scripts van Chains?
Hiervoor is de Workiva Scripting connector vereist.
Bekijk de onderstaande artikelen voor meer informatie:
Voldoet Workiva Scripting aan Fedramp?
Absoluut. Beveiliging is onze topprioriteit bij Workiva, en we hebben een infrastructuur gebouwd die garandeert dat uw code zowel veilig als performant is.
Hoe kan ik de toegang tot scripts bewaken?
Er zijn verschillende manieren waarop u uw code kunt beschermen tegen toegang door onbevoegde gebruikers:
- Maak een speciale werkruimte of organisatie voor geautoriseerde gebruikers: Het creëren van een werkruimte, of zelfs een hele organisatie, van alleen geautoriseerde gebruikers is de veiligste optie. Partners kunnen bijvoorbeeld een workspace voor Workiva Scripting in uw organisatie maken en klanten scripts laten uitvoeren vanuit hun eigen org.
- Gebruik rollen: Workiva's scripting rollen (Script Viewer, Script Runner en Script Editor) zijn gelaagd, zodat gebruikers alleen toegang hebben tot de scripts die nodig zijn voor hun werk. Met de rol Script Runner kunnen gebruikers bijvoorbeeld scripts uitvoeren, maar hebben ze geen toegang tot de code.
- Gebruik machtigingen: Scriptbestanden kunnen op bestandsniveau worden beperkt, zodat alleen specifieke gebruikers uw code kunnen bewerken of bekijken.
Meer informatie over scripting rollen en machtigingen.
Is er een lijst met toegestane IP's voor scripting?
Ja, toegestane IP's voor het scriptingprogramma zijn hier opgenomen.
Is er een scriptbibliotheek beschikbaar?
Wij hebben een aantal voorbeeldscripts voor u verzameld. Deze scripts kunnen ook handmatig worden gemaakt met behulp van de artikelen waarnaar in de vorige vraag werd verwezen.
De scripteditor gebruiken
Hoe beheer ik scriptversies?
Op dit moment slaat Workiva alleen de laatste versie van een script op.
U kunt kopieën van uw scriptbestanden in Workiva maken en ze in mappen organiseren, maar wij raden u aan om een apart versiebeheersysteem te gebruiken -- vooral als u een versiebeheersysteem voor bedrijven hebt.
Hoe synchroniseer ik Workiva code met een versiebeheersysteem (bijv. GitHub)?
De Workiva Scripting API biedt eindpunten voor bronbeheer waar gebruikers de nieuwste versie van een script kunnen ophalen of een script kunnen bijwerken naar een nieuwere kopie. Workiva biedt momenteel geen geautomatiseerde synchronisatie tussen scriptbestanden en uw versiebeheersysteem (bijv. Gitlab, Github, SVN).
Hoe krijg ik toegang tot referenties naar Workiva en niet-Workiva systemen vanuit een script?
Er zijn twee manieren om toegang te krijgen tot referenties voor Workiva en niet-Workiva systemen:
- Verzend referenties als runtime-invoer (voorkeur)
- Hardcodeer de referenties in de code
Waarom worden de waarden van de script runtime inputs niet weergegeven in de loguitvoer tijdens de uitvoering?
Dit is een veiligheidsmaatregel. Omdat invoerparameters gevoelige gegevens kunnen bevatten, verwijderen we deze uit de logbestanden voor de gebruiker.
Hoe kan ik tijdelijke gegevens opslaan tijdens het uitvoeren van scripts?
Workiva scripts kunnen de Python Open functie (externe link) gebruiken om bestanden tijdelijk in de /tmp map te lezen en te schrijven. Andere paden zijn beperkt.
Telkens wanneer er een script wordt uitgevoerd, wordt er een container opgestart in de cloudinfrastructuur van Workiva. Die container heeft linux geïnstalleerd en alle paden zijn beperkt, behalve /tmp (dat leeg is). In dat pad kunnen gegevens tijdelijk worden geschreven en gelezen. Zodra de run voorbij is, wordt de container weggegooid.
Kan ik globale variabelen definiëren om in meerdere scripts te gebruiken, à la Chains?
Op dit moment niet.
Kan ik bestanden als parameters verzenden?
Binairen kunnen als parameters worden verzonden zolang ze niet groter zijn dan 128KB en naar tekst worden gecodeerd (d.w.z. binair naar tekst codering).
Heb ik toegang tot org id, workspace id en regio in mijn scripts?
Ja, de organisatie-id, workspace-id en regio (VS, APAC, EU) zijn toegankelijk voor uw scriptcode via omgevingsvariabele. Bijvoorbeeld: os.getenv("WORKIVA_ORGANIZATION_ID").
| Variabel | Beschrijving |
|---|---|
| WORKIVA_ORGANISATIE_ID | De unieke ID van de Workiva organisatie waar het script wordt gehost |
| WORKIVA_ACCOUNT_ID | De unieke ID van de Workiva-werkruimte waar het script wordt gehost |
| WERKIVA_CLUSTER_DOMEIN | De Workiva-regio (VS, APAC of EU) van de productieomgeving waar het script wordt gehost |
| WORKIVA_SCRIPTING_SCRIPT_ID | De unieke ID van het script dat wordt uitgevoerd |
| WORKIVA_SCRIPTING_RUN_ID | De unieke ID van de huidige scriptrun |
| WORKIVA_SCRIPTING_GEHEUGENLIMIET | De maximale hoeveelheid RAM die beschikbaar is voor het script tijdens een enkele run |
| WORKIVA_SCRIPTING_SCHIJF_LIMIET | De maximale schijfruimte die het script kan gebruiken in de map /tmp tijdens een enkele run |
Kan ik code van een Workiva script gebruiken in een ander Workiva script?
Op dit moment is er geen manier om een Workiva script te verpakken als een bibliotheek en de code te hergebruiken in meerdere scripts. De beste optie op dit moment is om het herbruikbare stuk code te kopiëren en waar nodig in de scripts te plakken.
Scripts van automatiseringen gebruiken
Kan ik een script uitvoeren dat in een andere workspace, org of omgeving (APAC, EU, US) wordt gehost?
De functie automations in Workiva kan alleen scripts uitvoeren in dezelfde werkruimte waar het bestand zich bevindt. De Workiva Scripting connector of de Workiva Scripting API kunnen echter worden gebruikt om een script uit te voeren dat op een andere locatie wordt gehost.
Als u de Scripting API gebruikt, moet u een script maken en hosten in de hoofdwerkruimte met als enige doel de Scripting API aan te roepen en het script uit te voeren in de secundaire werkruimte.
Kan ik runtime-invoer/parameters verzenden tijdens het uitvoeren van het script?
Op dit moment staat de automatiseringsfunctie geen runtime-invoer toe die naar het script wordt verzonden wanneer het script wordt uitgevoerd.
Welke metagegevens worden vanuit een automatisering naar een scriptuitvoering gestuurd? Is de werkruimte-id verzonden?
Wanneer een script wordt uitgevoerd vanuit een automatisering, is de enige parameter die wordt verzonden de ID van het document waarin de automatisering is geconfigureerd.
Hoe krijg ik toegang tot referenties naar Workiva en niet-Workiva systemen vanuit de scriptuitvoering?
Wanneer een script vanuit een automatisering wordt uitgevoerd, is de enige optie om de referenties hard te coderen in de code zelf.
Kan hetzelfde script tegelijkertijd worden uitgevoerd vanuit twee of meer bestanden?
Ja, een script kan gelijktijdig worden uitgevoerd vanuit hetzelfde bestand of vanuit meerdere bestanden.
Scripts van ketens gebruiken
Kan ik een script uitvoeren dat in een andere workspace, org of omgeving (APAC, EU, US) wordt gehost?
Ja, een script dat in één werkruimte wordt gehost, kan worden uitgevoerd door een keten die in een andere werkruimte, organisatie of omgeving wordt gehost.
Hiervoor moet de Workiva Scripting connector die in de keten wordt gebruikt, worden ingesteld met een API-subsidie die in de host-workspace is gemaakt, en moeten de gebruikte scripting/IAM URL's overeenkomen met de juiste workspace.
Bekijk de onderstaande artikelen voor meer informatie:
Kan hetzelfde script tegelijkertijd vanaf twee knooppunten worden uitgevoerd?
Hetzelfde script kan tegelijkertijd worden uitgevoerd vanaf meerdere knooppunten binnen dezelfde Keten en/of meerdere Ketens.
Hoe gebruik ik de uitvoer van een script in een ander chain node?
Met de opdracht Run Script kunt u een voorbeeld payload invoeren voor elke uitvoer die JSON produceert, die vervolgens in andere knooppunten gebruikt kan worden.
Kan een tijdelijk bestand in een keten worden aangemaakt door parameters in het script?
U kunt binaries als parameters instellen zolang ze niet groter zijn dan 128KB.
API's en bibliotheken
Welke API's en bibliotheken worden ondersteund?
Workiva Scripting ondersteunt momenteel:
- Openbare API's van Workiva
- API's die niet van Werkiva zijn
- De standaardbibliotheek van Python
- De Python pakketindex (PyPI)
Ondersteuning voor andere talen wordt nog overwogen en zou in de toekomst geïmplementeerd kunnen worden.
Meer informatie: Ondersteunde Workiva Scripting bibliotheken en afhankelijkheden
Welke versie van Python wordt gebruikt in Workiva Scripting?
Workiva Scripting ondersteunt momenteel het gebruik van Python 3.9 en Python 3.13, met ondersteuning voor het gebruik van Python 3.9 die eindigt in maart 2026.
Meer informatie: Scripts migreren naar Python 3.13 in Workiva
Biedt Workiva API clients met populaire talen zoals Python of Java?
Wij bieden momenteel geen openbare SDK's voor Python of Java.
Wij bieden echter open API-specificaties voor Workiva API's, zodat u deze bibliotheken zelf kunt genereren. U kunt bijvoorbeeld het Workiva Platform API's OAS-bestand verkrijgen en een client library genereren.
Zijn er scriptspecifieke API's beschikbaar?
Scripting API eindpunten zijn beschikbaar als prototype eindpunten binnen de Workiva's Prototype Platform API.
Hoe creëer en bekijk ik API toekenningen voor de Workiva Openbare API's?
U moet een client-ID en secret verkrijgen door de instructies op hier te volgen.
Hoe autoriseer ik in de Workiva Openbare API's met behulp van Python?
Het volgende codefragment doet een aanroep naar de IAM-service om een toegangstoken te genereren dat vervolgens gebruikt wordt om te authenticeren op de eindpunten van het Scripting-prototype. Het zal een lijst krijgen van alle scripts waartoe de API grant (d.w.z. client) toegang heeft in de workspace waar de grant is aangemaakt.
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 = 'Bearer ' + json.loads(tokenResponse.text)['access_token'] dataRes = requests.get(SCRIPTING_API_URL, headers = {'Authorization': accessToken}) print(json.loads(dataRes.text))
Hoe werk ik het formaat van cellen bij met Python?
Het Update Sheet Content prototype eindpunt maakt het mogelijk om het formaat van cellen bij te werken met behulp van Python code.
Kan ik bestanden lezen/schrijven of uploaden die niet in Workiva zijn opgeslagen?
Op dit moment zijn er geen eindpunten beschikbaar voor het lezen/schrijven of uploaden van niet-Workiva bestanden die zijn opgeslagen in Workiva.
Kan ik automatiseringen programmatisch aanmaken en beheren?
Op dit moment zijn er geen eindpunten beschikbaar om automatiseringen programmatisch aan te maken of te beheren.