Workiva supporta sia la libreria standard di Python che il Python Package Index (PyPI). Le dipendenze possono essere generate automaticamente utilizzando l'editor di script integrato o create manualmente sul tuo computer locale.
Nota: Al momento lo scripting è disponibile solo attraverso Customize Workiva. Per saperne di più.
Requisiti
- Workiva Scripting deve essere abilitato per il tuo workspace. Scopri di più su Workiva Scripting.
- Il ruolo Script Editor è necessario per creare o modificare gli script.
Librerie supportate
Gli script di Workiva supportano la libreria standard di Python in modo immediato; puoi semplicemente importare il modulo nel tuo codice e iniziare a usarlo. Questa libreria contiene moduli integrati che forniscono l'accesso a funzionalità di sistema come l'I/O dei file, oltre a molte soluzioni standardizzate per problemi di programmazione comuni.
Oltre alla libreria standard, c'è una collezione crescente di componenti disponibili all'indirizzo Python Package Index. Dovrai generare nel tuo script le dipendenze che includono i componenti PyPI che vuoi utilizzare.
Uno dei componenti PyPI che utilizziamo comunemente è il componente "requests", che ti permette di interagire con la piattaforma Workiva attraverso le API pubbliche di Workiva.
Nota: I componenti PyPI che richiedono installazioni aggiuntive potrebbero non essere supportati.
Generare le dipendenze con l'editor di script
L'editor di script può creare automaticamente le tue dipendenze.
Ecco come fare:
- Da Home, apri un file di script (o creane uno nuovo).
- Vai al pannello Sources sul lato sinistro, clicca con il tasto destro del mouse nello spazio vuoto appena sotto le fonti correnti e seleziona + Add Source File.
- Crea un nuovo sorgente chiamato: requirements.txt.
- Nell'area di disegno centrale, aggiungi una riga che specifichi la libreria e la versione da installare. (Questa è la riga requests==2.28.1 nella nostra immagine di esempio).
- Clicca su Salva in alto a sinistra.
- Ricarica la schermata. Non saltare questo passaggio!
Una volta salvato e aggiornato, Workiva genera automaticamente un bundle di dipendenze chiamato dependencies.zip. Ora puoi utilizzare la libreria nel tuo codice.
Generare le dipendenze dal computer locale
Per creare manualmente le dipendenze, devi creare un pacchetto in locale e caricarlo nell'editor di script. Ad esempio, potresti avere un progetto che ha bisogno di accedere alla libreria "requests" per eseguire uno script:
import requests print (requests.get('https://api.github.com').text) Questo può essere fatto cone un gestore di pacchetti compatibile con pip:
- Definisci la versione della libreria "requests" a cui accedere in un formato compatibile con pip; deve essere salvata come file .TXT:
echo requests==2.26.0 > requirements.txt
- Installa la dipendenza in una nuova directory Dependencies:
pip3 install --target ./dependencies --requirement requirements.txt
- Creare un file dependencies.zip:
cd dependencies
zip -r ../dependencies.zip .
cd ...
- Nel tuo progetto Workiva Scripting, crea un file dependencies.zip vuoto:
curl -k -v -X POST \
-H 'Content-type: 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 - Per ottenere il link dell'endpoint, clicca su Run Link nel menu in alto nell'editor di script:
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
Dovresti ottenere la seguente risposta. Puoi prendere l'Id del file da lì.
-H "Content-Type: application/json" -H "Authorization: Bearer $BEARER_TOKEN" \
-d '{"path": "dependencies.zip"}'
{"id":"<file-id>", "path": "dependencies.zip"} - Per ottenere un elenco degli ID dei file nello script, effettua una richiesta GET:
curl -X GET https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
-H "Content-Type:application/json" \
-H "Authorization: Bearer $BEARER_TOKEN" - Carica il file dependencies.zip nel nuovo ID file:
curl -X PUT https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files/<file-id> \
-H "Authorization: Bearer $BEARER_TOKEN" --data-binary @dipendenze.zip - Per testare la libreria "requests", esegui uno script con il seguente codice:
import requests print (requests.get('https://api.github.com').text)
DOMANDE FREQUENTI
Quali API e librerie sono supportate?
Workiva Scripting supporta attualmente:
- API pubbliche Workiva
- API non Workiva
- Libreria standard di Python
- Indice dei pacchetti Python (PyPI)
Il supporto per altri linguaggi è ancora in fase di studio e potrebbe essere implementato in futuro.
Per saperne di più: Librerie e dipendenze di Workiva Scripting supportate
Quale versione di Python viene utilizzata in Workiva Scripting?
Workiva Scripting supporta attualmente Python 3.9 e Python 3.13, ma il supporto all'uso di Python 3.9 terminerà nel marzo 2026.
Per saperne di più: Migrazione degli script a Python 3.13 in Workiva
Workiva fornisce client API per linguaggi popolari come Python o Java?
Al momento non forniamo SDK pubblici per Python o Java.
Tuttavia, forniamo specifiche API aperte per le API di Workiva in modo che tu possa generare queste librerie da solo. Ad esempio, puoi ottenere il file OAS di Workiva Platform API e generare una libreria client.
Sono disponibili API specifiche per lo scripting?
Gli endpoint delle API di scripting sono disponibili come endpoint prototipo all'interno della piattaforma Prototype API di Workiva .
Come si creano e si visualizzano le sovvenzioni API per le API pubbliche di Workiva?
Devi ottenere un ID cliente e un segreto seguendo le istruzioni qui.
Come faccio ad autorizzare le API pubbliche di Workiva utilizzando Python?
Il seguente frammento di codice effettua una chiamata al servizio IAM per generare un token di accesso che viene poi utilizzato per autenticarsi negli endpoint del prototipo Scripting. Otterrà un elenco di tutti gli script a cui la concessione API (cioè il cliente) ha accesso nell'area di lavoro in cui è stata creata la concessione.
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))
Come posso aggiornare il formato delle celle utilizzando Python?
Il prototipo Update Sheet Content permette di aggiornare il formato delle celle utilizzando il codice Python.
Posso leggere/scrivere o caricare file non Workiva archiviati in Workiva?
Al momento non sono disponibili endpoint per leggere/scrivere o caricare file non Workiva archiviati in Workiva.
Posso creare e gestire le automazioni in modo programmatico?
Al momento non sono disponibili endpoint per creare o gestire le automazioni in modo programmatico.