Workiva ondersteunt zowel de standaardbibliotheek van Python als de Python Package Index (PyPI). Afhankelijkheden kunnen automatisch worden gegenereerd met behulp van de ingebouwde scripteditor of handmatig worden aangemaakt op uw lokale machine.
Workiva 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.
Ondersteunde bibliotheken
Workiva -scripts ondersteunen de standaardbibliotheek van Python direct ; u kunt de module eenvoudig in uw code importeren en ermee aan de slag gaan. Deze bibliotheek bevat ingebouwde modules die toegang bieden tot systeemfunctionaliteit zoals bestands-I/O, evenals vele gestandaardiseerde oplossingen voor veelvoorkomende programmeerproblemen.
Naast de standaardbibliotheek is er een groeiende verzameling componenten beschikbaar via de Python Package Index. Je moet de afhankelijkheden, inclusief de PyPI-componenten die je wilt gebruiken, in je script genereren.
Een van de PyPI-componenten die we vaak gebruiken, is de component "requests", waarmee je via deopenbare Workiva API's met het Workiva-platform kunt communiceren.
Opmerking: PyPI-componenten die aanvullende installaties vereisen, worden mogelijk niet ondersteund.
Genereer afhankelijkheden met de scripteditor.
De scripteditor kan uw afhankelijkheden automatisch compileren.
Zo doe je dat:
- Vanuit Home, open een scriptbestand (of maak een nieuw bestand aan).
- Ga naar het paneel Bronnen aan de linkerkant, klik met de rechtermuisknop in de lege ruimte net onder de huidige bronnen en selecteer + Bronbestand toevoegen.
- Maak een nieuwe bron met de naam: requirements.txt.
- Voeg in het midden van het canvas een regel toe waarin de te installeren bibliotheek en versie worden gespecificeerd. (Dit is de regel requests==2.28.1 in onze voorbeeldafbeelding.)
- Klik op Opslaan linksboven.
- Vernieuw je scherm. Sla deze stap niet over!
Na het opslaan en vernieuwen genereert Workiva automatisch een afhankelijkheidsbundel met de naam dependencies.zip. Je kunt de bibliotheek nu in je code gebruiken.
Genereer afhankelijkheden vanaf uw lokale machine.
Om handmatig afhankelijkheden aan te maken, moet u lokaal een pakket bouwen en dit uploaden naar de scripteditor. U kunt bijvoorbeeld een project hebben dat toegang nodig heeft tot de bibliotheek "requests" om een script uit te voeren:
import requests print (requests.get('https://api.github.com').text) Dit kan gedaan worden met behulp van eenpip -compatibele pakketbeheerder:
-
Definieer de versie van de
requestsbibliotheek waartoe toegang moet worden verkregen in een pip-compatibel formaat; deze moet worden opgeslagen als een.txtbestand:echo requests==2.28.1 > requirements.txt
-
Installeer de afhankelijkheid in een nieuwe dependencies map:
pip3 install --target ./dependencies --requirement requirements.txt
-
Maak een
dependencies.zipbestand aan:cd dependencies
zip -r ../dependencies.zip .
cd ..
-
Vraag een toegangstoken aan:
curl -X POST https://api.app.wdesk.com/iam/v1/oauth2/token \ -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \ -H 'Accept: application/json' \ -d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&grant_type=client_credentials"
Haal de
access_tokenuit het antwoord en gebruik deze als$BEARER_TOKENhieronder. -
Maak in je Workiva Scripting-project een nieuwe bron aan voor
dependencies.zip:curl -X POST https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /sources \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "Authorization: Bearer $BEARER_TOKEN" \ -H "X-Version: 2022-01-01" \ -d '{"path":"dependencies.zip"}'Het antwoord retourneert de nieuwe bron, inclusief de bijbehorende ID:
{"id<sourceId> pad dependencies.zip"} -
Om een lijst van de bron-ID's in je script te krijgen, doe een GET-verzoek:
curl -X GET https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /sources \ -H "Accept: application/json" \ -H "Authorization: Bearer $BEARER_TOKEN" \ -H "X-Version: 2022-01-01"
-
Start een contentupload voor die bron en plaats vervolgens het
bestanddependencies.zip op de geretourneerde uploadUrl:curl -X POST https://api.app.wdesk.com/prototype/platform/scripts/<scriptId> /bronnen/<sourceId> /contentUpload \ -H "Accepteren: application/json" \ -H "Autorisatie: Bearer $BEARER_TOKEN" \ -H "X-versie: 2022-01-01"
Het antwoord geeft de uploadbestemming terug:
{"uploadUrl"<uploadUrl> "}Upload vervolgens het binaire bestand naar die URL:
curl -X PUT "<uploadUrl> " \ -H "Authorization: Bearer $BEARER_TOKEN" \ --data-binary @dependencies.zip
-
Om de
requestsbibliotheek te testen, voert u een script uit met de volgende code:import requests print(requests.get('https://api.github.com').text)
veelgestelde vragen|FAQ
Welke API's en bibliotheken worden ondersteund?
Workiva Scripting ondersteunt momenteel:
- Workiva openbare API's
- Niet-Workiva API's
- De standaardbibliotheek van Python
- De Python Package Index (PyPI)
Workiva Scripting ondersteunt momenteel alleen Python.
Meer informatie: Ondersteunde Workiva-scriptbibliotheken en -afhankelijkheden
Welke versie van Python wordt gebruikt in Workiva Scripting?
Nieuwe scripts draaien op Python 3.13. Workiva Scripting ondersteunt nog steeds bestaande Python 3.9-scripts, maar de ondersteuning voor Python 3.9 eindigt in oktober 2027. Het is daarom raadzaam om alle Python 3.9-scripts zo snel mogelijk te migreren naar Python 3.13.
Meer informatie: Scripts migreren naar Python 3.13 in Workiva
Biedt Workiva API-clients aan die populaire programmeertalen zoals Python of Java ondersteunen?
We bieden momenteel geen openbare SDK's aan voor Python of Java.
We bieden echter open API-specificaties voor Workiva API's, zodat u deze bibliotheken zelf kunt genereren. U kunt bijvoorbeeld het OAS-bestand van de Workiva Platform API verkrijgen en een clientbibliotheek genereren.
Zijn er scriptspecifieke API's beschikbaar?
Ja. Scripting API-eindpunten zijn momenteel beschikbaar als prototype-eindpunten binnen Workiva's Prototype Platform API.
Openbare API-eindpunten voor scripting zullen beschikbaar zijn in de zomer van 2026. Zodra ze beschikbaar zijn, wordt van u verwacht dat u overstapt naar de openbare eindpunten. De ondersteuning voor de niet-openbare eindpunten van Workiva Scripting (inclusief het prototype) eindigt in oktober 2027.
Hoe kan ik API-toestemmingen voor de openbare Workiva API's aanmaken en bekijken?
Je moet een client-ID en -geheim verkrijgen door de instructies hierte volgen.
Hoe krijg ik toegang tot de openbare Workiva API's met Python?
Het volgende codefragment roept de IAM-service aan om een toegangstoken te genereren, dat vervolgens wordt gebruikt om te authenticeren bij de eindpunten van het Scripting-prototype. Hiermee wordt een lijst verkregen van alle scripts waartoe de API-toestemming (oftewel de client) toegang heeft in de werkruimte waar de toestemming is verleend.
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 kan ik de opmaak van cellen bijwerken met Python?
Je kunt de celopmaak vanuit een script bijwerken door het eindpuntUpdate sheet contentvan de Workiva Platform API aan te roepen (POST /spreadsheets/{spreadsheetId}/sheets/{sheetId}/update). Gebruik het veldapplyFormatsom opmaak zoals vetgedrukt, getal- en valutaopmaak en arcering toe te passen, enapplyBordersom randen toe te passen. Bundel meerdere opmaakbewerkingen in één verzoek — elk veld accepteert een reeks bewerkingen en het eindpunt heeft een snelheidslimiet — in plaats van één verzoek per bereik te verzenden.
Meer informatie:Inhoud van het werkblad bijwerkenen de handleiding voor spreadsheetgegevens.
Kan ik bestanden die niet van Workiva zijn, maar wel in Workiva zijn opgeslagen, lezen/schrijven of uploaden?
Ja. Met behulp van de Files Management API's van Workiva kunt u bestanden die niet van Workiva zijn – zoals pdf's, afbeeldingen of andere willekeurige bestandstypen – uploaden naar het platform alsOndersteunende documenten, waarbij het originele bestand ongewijzigd blijft. Om er een te uploaden, gebruikt u het importbestand-eindpunt metkindingesteld opSupportingDocument. Ondersteunende documenten verschijnen naast uw andere Workiva-bestanden en kunnen, net als elk ander bestand, worden weergegeven, verplaatst, gekopieerd, geëxporteerd (gedownload) en verwijderd.
Meer informatie:Inleiding tot API's voor bestandsbeheer
Kan ik programmatisch automatiseringen aanmaken en beheren?
Op dit moment zijn er geen eindpunten beschikbaar om programmatisch automatiseringen te creëren of te beheren.