Workiva es compatible tanto con la biblioteca estándar de Python como con el índice de paquetes de Python (PyPI). Las Dependencias pueden generarse automáticamente utilizando el editor de script incorporado o crearse manualmente en tu máquina local.
Nota: Actualmente, el script solo está disponible a través de Personalizar Workiva. Obtén más información.
Requisitos
- Workiva Scripting debe estar activado para tu espacio de trabajo. Más información: sobre Workiva Scripting.
- El rol Editor de scripts es necesario para crear o editar scripts.
Bibliotecas admitidas
Los scripts de Workiva son compatibles con la biblioteca estándar de Python lista para usar; solo tienes que importar el módulo en tu código y empezar a utilizarlo. Esta biblioteca contiene módulos incorporados que proporcionan acceso a funciones del sistema como la E/S de archivos, así como muchas soluciones normalizadas para problemas comunes de programación.
Además de la biblioteca estándar, hay una creciente colección de componentes disponibles en el índice de paquetes de Python . Tendrás que generar las dependencias en tu script que incluyan los componentes PyPI que quieras utilizar.
Uno de los componentes de PyPI que utilizamos habitualmente es el componente "solicitudes", que te permite interactuar con la plataforma Workiva a través de las API públicas de Workiva.
Nota: Es posible que no se admitan los componentes de PyPI que requieran instalaciones adicionales.
Generar dependencias con el editor de script
El editor de scripts puede crear automáticamente tus dependencias.
He aquí cómo:
- Desde Inicio, abre un archivo de secuencia de comandos (o crea uno nuevo).
- Ve al panel Orígenes en el lado izquierdo, haz clic con el botón derecho del ratón en el espacio en blanco justo debajo de los orígenes actuales y selecciona + Agregar archivo de origen.
- Crea un nuevo origen llamado: requirements.txt.
- En el lienzo central, añade una línea especificando la biblioteca y la versión a instalar. (Esta es la línea requests==2.28.1 de nuestra imagen de ejemplo).
- Haz clic en Guardar en la parte superior izquierda.
- Recarga la pantalla. ¡No omitas este paso!
Una vez guardado y actualizado, Workiva genera automáticamente un paquete de dependencias llamado dependencies.zip. Ahora puedes utilizar la biblioteca en tu código.
Generar dependencias desde tu máquina local
Para crear dependencias manualmente, debes crear un paquete localmente y subirlo al editor de scripts. Por ejemplo, puedes tener un proyecto que necesite acceder a la biblioteca de "Solicitudes" para ejecutar un script:
import requests print (requests.get('https://api.github.com').text) Esto puede hacerse con un gestor de paquetes compatible con pip:
- Define la versión de la biblioteca "solicitudes" a la que acceder como formato compatible con pip; debe guardarse como archivo .TXT:
echo requests==2.26.0 > requirements.txt
- Instala la dependencia en un nuevo directorio Dependencias:
pip3 install --target ./dependencies --requirement requirements.txt
- Crea un archivo dependencies.zip:
cd dependencies
zip -r ../dependencies.zip .
cd ..
- En tu proyecto de Workiva Scripting, crea un archivo vacío dependencies.zip:
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 - Para obtener el enlace del punto final, haz clic en Ejecutar enlace en el menú de la parte superior del editor de scripts:
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
Deberías obtener la siguiente respuesta. Puedes recoger el Id del archivo desde allí.
-H "Content-Type: application/json" -H "Autorización: Bearer $BEARER_TOKEN" \
-d '{"ruta": "dependencias.zip"}'
{"id":"<file-id>", "path": "dependencias.zip"} - Para obtener una lista de los ID de archivo de tu script, haz una petición GET:
curl -X GET https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
-H "Content-Type:application/json" \
-H "Autorización: Bearer $BEARER_TOKEN" - Sube el archivo dependencies.zip al nuevo ID del archivo:
curl -X PUT https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files/<file-id> \
-H "Authorization: Bearer $BEARER_TOKEN" --data-binary @dependencies.zip - Para evaluar la biblioteca "requests", ejecuta un script con el código siguiente:
import requests print (requests.get('https://api.github.com').text).
Preguntas frecuentes
¿Qué APIs y Bibliotecas son compatibles?
Workiva Scripting soporta actualmente:
- API públicas de Workiva
- API no de Workiva
- La biblioteca estándar de Python
- El índice de paquetes de Python (PyPI)
Todavía se está estudiando la posibilidad de admitir otros Idiomas, que podrían implementarse en el futuro.
Más información:: Bibliotecas y Dependencias de Workiva Scripting compatibles
¿Qué versión de Python se utiliza en Workiva Scripting?
Workiva Scripting admite actualmente el uso de Python 3.9 y Python 3.13, y la compatibilidad con Python 3.9 finalizará en marzo de 2026.
Más información: Migrar scripts a Python 3.13 en Workiva
¿Proporciona Workiva Clientes API con lenguajes populares como Python o Java?
Actualmente no proporcionamos SDK públicos para Python o Java.
Sin embargo, proporcionamos especificaciones de API abiertas para las API de Workiva, de modo que puedas generar estas bibliotecas tú mismo. Por ejemplo, puedes obtener el archivo OAS de la API de la plataforma Workiva y generar una biblioteca de cliente.
¿Existen API específicas de script?
Los puntos de conexión de API de scripts están disponibles como puntos de conexión prototipo en la API de plataforma prototipo de Workiva.
¿Cómo creo y visualizo las concesiones de API para las API públicas de Workiva?
Tendrás que obtener un identificador y un secreto de cliente siguiendo las instrucciones de aquí.
¿Por qué tengo que autorizarme en las API públicas de Workiva utilizando Python?
El siguiente fragmento de código realiza una llamada al servicio IAM para generar un token de acceso que luego se utiliza para autenticarse en los puntos finales del prototipo Scripting. Obtendrá una lista de todos los scripts a los que tiene acceso la concesión de API (es decir, el cliente) en el espacio de trabajo donde se creó la concesión.
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))
¿Cómo actualizo el formato de las celdas utilizando Python?
El punto final del prototipo Actualizar contenido de la hoja permite actualizar el formato de las celdas utilizando código Python.
¿Puedo leer/escribir o cargar archivos que no sean de Workiva almacenados en Workiva?
En este momento, no hay puntos finales disponibles para leer/escribir o cargar archivos que no sean de Workiva almacenados en Workiva.
¿Puedo crear y gestionar automatizaciones mediante programación?
En este momento, no hay puntos finales disponibles para crear o gestionar automatizaciones mediante programación.