Workiva Scripting biedt een flexibele en veilige omgeving voor het uitvoeren van Python-code op het Workiva-platform. Door aangepaste scripts te schrijven die automatisch herhaalbare processen uitvoeren, kunt u op grote schaal efficiëntieverbeteringen realiseren voor meerdere rapporten, bestanden en werkruimtes. En naarmate meer werk door AI wordt ondersteund, biedt scripting een betrouwbare, gestructureerde basis om op voort te bouwen – waarbij flexibiliteit wordt gecombineerd met de controle die nodig is om automatisering om te zetten in herhaalbare resultaten waarop u kunt vertrouwen.
Scripting is inbegrepen bij Customize Workiva. Om scripting te gebruiken, moet de optie 'Workiva/Scripting aanpassen' in uw werkruimte zijn ingeschakeld en moeten gebruikers de juiste scriptingrol(len) en bestandsrechten hebben.
Rollen en machtigingen
Rollen zijn een systeemwijde instelling in Workiva, wat betekent dat ze een standaard toegangsniveau vaststellen voor elk script in een werkruimte. Er zijn drie Workiva Scripting-rollen die door uw Workspace-beheerder kunnen wordentoegewezen .
| Rol | Toegangsniveau |
|---|---|
| Scriptcoördinator | Kan scripts uitvoeren. |
| Scriptviewer | Scripts kunnen worden bekeken. |
| Scriptredacteur | Scripts kunnen worden bekeken, gemaakt en bewerkt. |
Voor meer informatie, zie de pagina Scriptingrollen en -machtigingen Ondersteuning.
Hoe Workiva-scripting te gebruiken
Zodra scripts in uw werkruimte zijn ingeschakeld, verschijnen ze op uw startscherm naast de andere spreadsheets, documenten en presentaties op uw site. Je kunt een nieuw script aanmaken of een bestaand script selecteren uit je bestandenlijst.
De scripteditor is de plek waar je de scripts voor je website kunt maken, bewerken en uitvoeren.
Het omvat:
- Een centraal canvaswaarop je het script zult schrijven
- Een uitvoergedeelte onderaan waar u de resultaten van de scriptuitvoering kunt bekijken
- Een menubalk bovenaan waar je het script kunt opslaan of uitvoeren
- Een eigenschappenpaneel aan de rechterkant om scripteigenschappen en de uitvoeringsgeschiedenis te beheren
- Een bronnenpaneel aan de linkerkant
Eenmaal gemaakt, kunnen scripts handmatig, programmatisch, via ketens of vanuit een Workiva-bestand worden uitgevoerd.
Om een script handmatig uit te voeren:
- Klik op Script uitvoeren in de menubalk bovenaan het scherm.
- Klik op + Variabele toevoegen.
- Voer de namen en waarden in van de omgevingsvariabelen die als parameters moeten worden doorgegeven.
- Klik op Script uitvoeren.
Om een script programmatisch uit te voeren, verstuur je een HTTP POST-verzoek naar het prototype-eindpunt Initiate a script execution .
De script-ID is opgenomen in het eindpunt; u kunt parameters doorgeven door de namen en waarden van de omgevingsvariabelen in de body van het POST-verzoek te definiëren.
Scriptuitvoer wordt als stderr en stdout gelogd, samen met enkele gebruiksstatistieken om de status van het product te bewaken.
Om een script via ketens uit te voeren:
Je moet hiervoor de Workiva Scripting-connector gebruiken. Voordat dit kan, moet een beveiligingsbeheerder van de organisatie de connector inschakelen via het configuratiescherm.
Lees de onderstaande artikelen voor meer informatie:
Om een script in een Workiva-bestand uit te voeren, moet u de onderstaande stappen volgen:
Maak in het paneel Automatiseringen van een document, spreadsheet of presentatie een nieuwe automatisering aan en kies Handmatige uitvoering als trigger.
Voeg een Script uitvoeren actie toe, selecteer het script dat u wilt uitvoeren en definieer eventueel welke gebruikers of rollen gemachtigd zijn om het uit te voeren.
Opmerking: Alleen de opgegeven gebruikers kunnen de automatisering in het bestand zien en uitvoeren.
Leer meer over Scripts uitvoeren met automatiseringen.
Maak een oefenscript
Voordat u live scripts op uw site maakt, raden we u aan eerst een testscript te maken in de scripteditor. Dit helpt u vertrouwd te raken met het proces voordat u met live data gaat werken.
Volg deze stappen om een eenvoudig script te maken dat de tijdswaarde van geld berekent:
- Klik vanuit het startscherm op + Maken => Script.
- Voer aan de rechterkant een naam en een korte beschrijving voor het script in.
- Ga naar de scripteditor in het midden van het scherm en verwijder alle bestaande code. Je moet een blanco canvas hebben.
-
Plak deze code in de editor:
import os, sys # https://www.investopedia.com/terms/t/timevalueofmoney.asp # Formule voor de tijdswaarde van geld # FV = PV x [1 + (i / n)]^(nxt) # Stel dat een bedrag van $10.000 gedurende één jaar wordt belegd tegen 10% rente, jaarlijks samengesteld. # De toekomstige waarde van dat geld is: # FV = $10.000 x [1 + (10% / 1)] ^ (1 x 1) = $11.000 compounding_periods = {"annual" : 1, "monthly" : 12, "quarterly" : 4, "daily" :365} if 'INVESTMENT' not in os.environ: print("Het script kan niet worden uitgevoerd.") "Investering ontbreekt.") sys.exit() if 'INTEREST_RATE' not in os.environ: print("Het script kan niet worden uitgevoerd. "Rentepercentage ontbreekt.") sys.exit() if 'COMPOUNDING_PERIOD' not in os.environ: print("Het script kan niet worden uitgevoerd. "Samengestelde periode ontbreekt.") sys.exit() if 'YEARS' not in os.environ: print("Het script kan niet worden uitgevoerd. "Aantal jaren ontbreekt.") sys.exit() compounding_period = os.getenv('COMPOUNDING_PERIOD') if compounding_period not in compounding_periods.keys(): print("Het script kan niet worden uitgevoerd.", compounding_period," is geen geldige periode") 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("Stel dat een bedrag van ", investment," wordt geïnvesteerd gedurende ", years," jaar(en) tegen ", interest_rate," % rente, samengesteld op basis van ", compounding_period," basis. ") print("De toekomstige waarde van dat geld is:") print(FV) - Klik op Script uitvoeren linksboven.
- Klik op + Variabele toevoegen en voer de gewenste parameters in.
- Klik op Script uitvoerenom te voltooien.
De resultaten van het script kunnen nu worden bekeken in het paneel Outputonderaan het scherm.
Hoe krijg je ondersteuning bij Workiva Scripting?
Voor vragen over Workiva Scripting kunt u contact opnemen met Workiva Support. Houd er echter rekening mee dat onze medewerkers alleen vragen over het platform zelf kunnen beantwoorden; we kunnen u niet helpen met het schrijven van code of het oplossen van problemen.
Je kunt ook de sectieWorkiva Scriptingin het Support Center raadplegen voor meer informatie, waaronder de basisprincipes van scripting, het maken en beheren van scripts, voorbeelden, probleemoplossing en best practices.
Deze hulpmiddelen helpen je op weg met Workiva Scripting. Voor vragen over het gebruik van de Workiva Public API's om code te schrijven waarmee u programmatisch met het Workiva-platform kunt communiceren, kunt u terecht bij onze Developers & APIs Community.
veelgestelde vragen|FAQ
Hoe worden scripts doorgaans gebruikt?
Workiva Scripting kan veel herhalende, tijdrovende taken automatiseren die anders handmatig zouden worden uitgevoerd. Enkele veelvoorkomende toepassingen zijn het onderdrukken van lege rijen, rapportindelingen en het toepassen van aangepaste opmaak op meerdere documenten.
In bredere zin kunnen scripts worden aangepast aan uw specifieke bedrijfsbehoeften, waardoor u workflows kunt afstemmen op en schalen naar de manier waarop uw organisatie werkt, met een gecontroleerde uitvoering waarop u kunt vertrouwen. De code is van jou; wat je ermee doet, hangt grotendeels af van je scriptontwikkelaar, de configuratie van je werkplek en het huidige aantal handmatige processen binnen je bedrijf. En naarmate meer werk door AI wordt ondersteund, biedt scripting dat werk een betrouwbare, herhaalbare basis om op voort te bouwen.
Zijn er beperkingen aan het aantal scripts?
Ja, Workiva hanteert een aantal beperkingen voor zowel Workiva Scripting als de scripting-API.
Meer informatie over Workiva Scripting-limieten.
Hoe activeer ik scripts vanuit Chains?
Hiervoor is de Workiva Scripting-connector nodig.
Lees de onderstaande artikelen voor meer informatie:
Voldoet Workiva Scripting aan de Fedramp-standaard?
Absoluut. Bij Workiva staat veiligheid voorop en we hebben een infrastructuur gebouwd die garandeert dat uw code zowel veilig als qua prestaties wordt uitgevoerd. Je scripts worden uitgevoerd op een door Workiva beheerde, FedRAMP-compatibele infrastructuur — binnen hetzelfde vertrouwde platform, met dezelfde machtigingen en governance als de rest van je Workiva-werk.
Hoe kan ik de toegang tot scripts beveiligen?
Er zijn verschillende manieren om uw code te beschermen tegen toegang door onbevoegde gebruikers:
- Maak een aparte werkruimte of organisatie aan voor geautoriseerde gebruikers: Het aanmaken van een werkruimte, of zelfs een complete organisatie, uitsluitend voor geautoriseerde gebruikers is de veiligste optie. Partners kunnen bijvoorbeeld een werkruimte voor Workiva Scripting in uw organisatie aanmaken, waarna klanten scripts vanuit hun eigen organisatie kunnen uitvoeren.
- Gebruik rollen: De Workiva Scripting-rollen (Script Editor, Script Viewer en Script Runner) zijn gelaagd, zodat gebruikers alleen toegang hebben tot de scripts die nodig zijn voor hun werk. De rol 'Script Runner' stelt gebruikers bijvoorbeeld in staat scripts uit te voeren, maar niet om de code ervan te bekijken.
- Gebruikersrechten: Scriptbestanden kunnen op bestandsniveau worden beperkt, zodat alleen specifieke gebruikers uw code kunnen bewerken of bekijken.
Lees meer over Workiva Scripting-rollen en -machtigingen.
Is er een lijst met toegestane IP-adressen voor scripting?
Ja, de toegestane IP-adressen voor het scriptprogramma zijn hier opgenomen .
Is er een scriptbibliotheek beschikbaar?
Ja. We hebben een aantal voorbeeldscripts verzameld die u kunt gebruiken. Je kunt ook je eigen scripts maken met behulp van de handleidingen in het gedeelteScripts maken en beherenvan het Supportcentrum.
Hoe beheer ik scriptversies?
Op dit moment bewaart Workiva alleen de meest recente versie van een script.
Je kunt kopieën van je scriptbestanden in Workiva maken en ze in mappen ordenen, maar we raden aan om een apart versiebeheersysteem te gebruiken — vooral als je een versiebeheersysteem voor je hele organisatie hebt, zieWorkiva Scripting: Best Practices voor het ontwikkelingsproces.
Hoe synchroniseer ik Workiva-code met een versiebeheersysteem voor bedrijven (bijvoorbeeld GitHub)?
De Workiva Scripting API biedt eindpunten voor broncodebeheer waarmee gebruikers de nieuwste versie van een script kunnen ophalen of een script kunnen bijwerken naar een nieuwere versie. Workiva biedt momenteel geen automatische synchronisatie tussen scriptbestanden en uw versiebeheersysteem (bijv. GitLab, GitHub, SVN).
Hoe krijg ik vanuit een script toegang tot inloggegevens voor Workiva- en niet-Workiva-systemen?
Er zijn twee manieren om toegang te krijgen tot inloggegevens voor Workiva- en niet-Workiva-systemen:
- Verzend inloggegevens als runtime-input (voorkeur)
- Zet de inloggegevens vast 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 logboeken die voor gebruikers zichtbaar zijn.
Hoe kan ik tijdelijke gegevens opslaan tijdens de uitvoering van scripts?
Workiva-scripts kunnen de Python Open-functie( externe link) gebruiken om tijdelijk bestanden te lezen en te schrijven in de map /tmp. Andere routes zijn afgesloten.
Telkens wanneer een script wordt uitgevoerd, wordt er een container opgestart in de cloudinfrastructuur van Workiva. Op die container is Linux geïnstalleerd en alle paden zijn beperkt, behalve /tmp (dat leeg is). In dat pad kunnen tijdelijk gegevens worden geschreven en gelezen. Zodra de rit voorbij is, wordt de container weggegooid.
Kan ik globale variabelen definiëren die ik in meerdere scripts kan gebruiken, zoals in Chains?
Niet op dit moment. Als uw script echter onderdeel uitmaakt van een Chains-workflow, kunt u Chains-variabelen gebruiken en hun waarden als runtime-inputs aan het script doorgeven.
Kan ik bestanden als parameters meesturen?
Binaire bestanden kunnen als parameters worden verzonden, zolang ze niet groter zijn dan 128 KB en gecodeerd zijn naar tekst (d.w.z. binaire naar tekstcodering).
Kan ik in mijn scripts toegang krijgen tot de organisatie-ID, de werkruimte-ID en de regio?
Ja, de organisatie-ID, de werkruimte-ID en de regio (VS, APAC, EU) zijn toegankelijk voor uw scriptcode via omgevingsvariabelen. Bijvoorbeeld: os.getenv("WORKIVA_ORGANIZATION_ID").
| Variabele | 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. |
| WORKIVA_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 scriptuitvoering. |
| WORKIVA_SCRIPTING_GEHEUGENLIMIT | De maximale hoeveelheid RAM-geheugen die het script tijdens één enkele uitvoeringssessie ter beschikking staat. |
| WORKIVA_SCRIPTING_SCHIJFQUOTA | De maximale schijfruimte die het script in de /tmp map kan gebruiken tijdens één enkele uitvoering. |
Kan ik code uit het ene Workiva-script gebruiken in een ander Workiva-script?
Je kunt geen Workiva-script rechtstreeks importeren of vanuit een ander Workiva-script aanroepen. Een klein stukje herbruikbare code kun je kopiëren en plakken in elk script dat het nodig heeft.
Voor code die je in meerdere scripts hergebruikt, is het beter om deze als een gedeelde afhankelijkheid te verpakken. Je kunt eendependencies.zipbundel maken die je gedeelde bibliotheken bevat — en zelfs clientcode die is gegenereerd op basis van deWorkiva openbare API-specificatie— en vervolgens diezelfde bundel uploaden naar elk script dat deze nodig heeft. Hierdoor kunt u veelgebruikte code op één plek bewaren en in verschillende scripts hergebruiken, in plaats van deze naar elk script te kopiëren.
Voor instructies over het bouwen en uploaden van afhankelijkheden, zieOndersteunde scriptbibliotheken en afhankelijkheden.