Workiva Scripting proporciona una plataforma flexible y segura para ejecutar código Python en el software Workiva. Al escribir scripts personalizados que ejecutan automáticamente procesos repetibles, puedes crear eficiencias a escala en múltiples informes, archivos y espacios de trabajo.
Nota: Actualmente, el script solo está disponible a través de Personalizar Workiva. Obtén más información.
Funciones y permisos
Los roles son una configuración de todo el sistema en Workiva, lo que significa que establecen un nivel estándar de acceso para cada script en un espacio de trabajo. Hay tres roles de Workiva Scripting que tu Administrador del Espacio de trabajo puede asignar a .
| Rol | Nivel de acceso |
|---|---|
| Ejecutor de script | Puede ejecutar scripts. |
| Lector de script | Puede ver scripts. |
| Editor de scripts | Puedes visualizar, crear y editar scripts. |
Consejo: En lugar de utilizar el rol de Ejecutor de scripts, recomendamos a la mayoría de los usuarios no técnicos que inicien los scripts a través de Automatizaciones integradas.
También puedes controlar el acceso por archivo asignando permisos a . Dado que los permisos sustituyen a los roles, los propietarios y creadores de guiones pueden conceder o restringir el acceso a archivos individuales.
| Permiso | Nivel de acceso |
|---|---|
| Lector | Puede ejecutar y ver scripts. |
| Editor | Puedes ejecutar, editar y visualizar scripts. |
| Propietario | Puedes ejecutar, editar, visualizar y crear scripts. |
Cómo utilizar los scripts de Workiva
Una vez habilitados en tu Espacio de trabajo, los guiones aparecerán en tu pantalla de inicio junto a las demás hojas de cálculo, documentos y presentaciones de tu sitio. Puedes crear un script nuevo o seleccionar uno existente de tu lista de archivos.
El editor de scripts es donde construirás, editarás y ejecutarás los scripts dentro de tu sitio.
Incluye lo siguiente:
- Un lienzo central donde compondrás el script
- Una sección de resultados en la parte inferior donde verás los resultados de la ejecución del script.
- Una barra de menú en la parte superior donde guardarás o ejecutarás el script.
- Un panel de propiedades a la derecha para gestionar las propiedades del script y el historial de ejecuciones.
- Un panel de Orígenes a la izquierda
Una vez construidos, los scripts pueden ejecutarse manualmente, mediante programación, a través de cadenas o desde dentro de un Archivo de Workiva.
Para ejecutar un script manualmente:
- Haz clic en Ejecutar Script en la barra de menús de la parte superior de la pantalla.
- Haz clic en + Añadir variable.
- Introduce los nombres y valores de las variables de entorno que se pasarán como parámetros.
- Haz clic en Ejecutar Script.
Para ejecutar un script mediante programación, realiza una solicitud HTTP POST al punto de conexión del prototipo Iniciar la ejecución de un script.
El ID de script se incluye en el punto de conexión: puedes pasar parámetros definiendo los nombres y valores de las variables del entorno en el cuerpo de la solicitud PUBLICAR.
Los resultados del script se registran como stderr y stdout, junto con algunas métricas de uso para controlar el estado del producto.
Para ejecutar un script a través de cadenas, tendrás que utilizar el conector de Workiva Scripting. Por hacer esto, un administrador de seguridad de la org debe habilitar el conector a través de la pantalla Configuraciones.
Consulta los siguientes artículos para obtener más información:
Para ejecutar un script dentro de un Archivo de Workiva, tendrás que seguir las etapas que se indican a continuación
En el panel Automatizaciones de un documento, hoja de cálculo o presentación, crea una nueva automatización y elige Ejecución manual como desencadenante.
Agrega una acción Ejecutar script, selecciona el script que quieres ejecutar y define opcionalmente qué usuarios o roles están autorizados a ejecutarlo.
Solo los usuarios especificados verán y podrán ejecutar la automatización dentro del archivo.
Más información: Ejecutar scripts con automatizaciones.
Crea un script de prácticas
Antes de crear scripts en vivo en tu sitio, te recomendamos que crees un script de práctica dentro del editor de scripts. Esto te ayudará a familiarizarte con el proceso antes de manejar datos en vivo.
Sigue estas etapas para crear un script sencillo que calcule el valor temporal del dinero:
- Desde: página principal, haz clic en Crear => Script.
- A la derecha, introduce un nombre y una breve descripción del script.
- Ve al editor de script que hay en medio de la pantalla y elimina cualquier código existente. Deberías tener un lienzo en blanco.
-
Pega este código en el editor:
import os, sys # https://www.investopedia.com/terms/t/timevalueofmoney.asp # Formula for Time Value of Money # FV = PV x [1 + (i / n)]^(n x t) # Assume a sum of $10,000 is invested for one year at 10% interest compounded annually. # The future value of that money 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("Cannot run the script. Investment is missing.") sys.exit() if 'INTEREST_RATE' not in os.environ: print("Cannot run the script. Interest rate is missing.") sys.exit() if 'COMPOUNDING_PERIOD' not in os.environ: print("Cannot run the script. Compounding period is missing.") sys.exit() if 'YEARS' not in os.environ: print("Cannot run the script. Number of years are missing.") sys.exit() compounding_period = os.getenv('COMPOUNDING_PERIOD') if compounding_period not in compounding_periods.keys(): print("Cannot run the script.", compounding_period," is not a valid period") 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("Assume a sum of",investment,"is invested for",years,"year(s) at",\ interest_rate,"% interest compounded on",compounding_period,"basis. ") print("The future value of that money is:") print(FV) - Haz clic en Ejecutar Script en la parte superior izquierda.
- Haz clic en +Agregar variable e introduce los parámetros que quieras utilizar.
- Haz clic en Ejecutar script para terminar.
Los resultados del script pueden verse ahora en el panel Resultado, en la parte inferior de la pantalla.
Cómo obtener asistencia con Workiva Scripting
Puedes ponerte en contacto con Soporte técnico de Workiva para cualquier pregunta sobre Workiva Scripting. Sin embargo, ten en cuenta que nuestros agentes solo pueden ayudarte con preguntas sobre la plataforma en sí, no podemos ayudarte a escribir o solucionar problemas de tu código.
También tenemos varias soluciones disponibles aquí, en el Centro de soporte:
- Bibliotecas de script y dependencias compatibles
- Muestra: Script para actualizar Hojas de cálculo
- Agregar, cargar y eliminar archivos de origen de secuencias de comandos.
- Ejecutar scripts con automatizaciones
- Almacena los resultados del script
- Límites de los scripts de Workiva
- Ejemplos de script
Estos recursos te ayudarán a empezar a utilizar Workiva Scripting. Si tienes preguntas relacionadas con el uso de las API públicas de Workiva para escribir tu código e interactuar con la plataforma Workiva mediante programación, utiliza nuestra comunidad de desarrolladores y API.
Preguntas frecuentes
¿Cómo se utilizan habitualmente los scripts?
Los scripts de Workiva pueden automatizar muchas tareas repetibles que requieren mucho tiempo y que, de otro modo, se realizarían a mano. Algunos casos de uso comunes son la supresión de filas cero, los diseños de informes y la aplicación de formatos personalizados a varios documentos.
Dicho esto, los script pueden adaptarse ampliamente a muchas necesidades empresariales. El código es tuyo; lo que hagas con él depende en mayor parte de tu desarrollador de script, configuración de espacio de trabajo y el número actual de procesos manuales de tu empresa.
¿Hay algún límite de scripts?
Sí, Workiva aplica una serie de límites tanto para Workiva Scripting como para la API de scripting.
Más información: Límites de script.
¿Cómo activo los scripts desde Cadenas?
Esto requiere el conector de Workiva Scripting.
Consulta los siguientes artículos para obtener más información:
¿Es Workiva Scripting compatible con Fedramp?
Totalmente. La seguridad es nuestra máxima prioridad en Workiva, y hemos creado una infraestructura que garantiza que tus ejecuciones de código sean seguras y eficaces.
¿Cómo puedo proteger el acceso a los script?
Hay varias formas de proteger tu Código para que no accedan a él usuarios no autorizados:
- Crear un espacio de trabajo o una organización exclusiva para usuarios autorizados: Crear un espacio de trabajo, o incluso una organización entera, de sólo usuarios autorizados es la opción más segura. Por ejemplo, los socios pueden crear un espacio de trabajo para Workiva Scripting en su organización y hacer que los clientes ejecuten scripts desde su propia org.
- Utiliza los roles: Los roles de scripting de Workiva (Visualizador de scripts, Ejecutor de scripts y Editor de scripts) están escalonados para que los usuarios tengan acceso solo a los scripts necesarios para su trabajo. El rol de Ejecutor de Script, por ejemplo, permite a los usuarios ejecutar scripts, pero no acceder a nada del código.
- Permisos de uso: Los archivos de script pueden restringirse a nivel de archivo para que solo determinados usuarios puedan editar o ver tu código.
Más información sobre los roles y permisos de scripting.
¿Existe una lista de IPs permitidas para el scripting?
Sí, se incluyen las IP permitidas para el programa de script aquí.
¿Hay alguna biblioteca de script disponible?
Hemos recopilado una serie de scripts de ejemplo para que los utilices. Estos script también pueden crearse manualmente utilizando los artículos vinculados en la pregunta anterior.
¿Cómo gestiono las versiones de script?
En este momento, Workiva solo almacena la última versión de un script.
Puedes crear copias de tus archivos de guión en Workiva y organizarlas en carpetas, pero te recomendamos que utilices un sistema de control de versiones independiente, sobre todo si tienes un sistema de control de versiones de empresa.
¿Cómo sincronizo el código de Workiva con un sistema empresarial de control de versiones (por ejemplo, GitHub)?
La API de scripts Workiva proporciona puntos finales de gestión de orígenes donde los usuarios pueden recuperar la última versión de un script o actualizar un script a una copia más reciente. Workiva no ofrece actualmente sincronización automatizada entre los archivos de scripts y el sistema de control de versiones de tu empresa (por ejemplo, Gitlab, Github, SVN).
¿Cómo accedo a las credenciales de los sistemas Workiva y no Workiva desde un script?
Hay dos formas de acceder a las credenciales de los sistemas Workiva y no Workiva:
- Enviar credenciales como entradas en tiempo de ejecución (preferido)
- Codifica las credenciales en el código
¿Por qué no se muestran los valores de las entradas del tiempo de ejecución del script en el resultado del registro durante la ejecución?
Se trata de una precaución de seguridad. Dado que los parámetros de entrada pueden contener datos sensibles, los eliminamos de los registros orientados al usuario.
¿Cómo puedo almacenar datos temporales durante las ejecuciones de script?
Los scripts de Workiva pueden utilizar la función Python Open (enlace externo) para leer y escribir archivos temporalmente en la carpeta /tmp. Otras vías están restringidas.
Cada vez que se ejecuta un script, se pone en marcha un contenedor en la infraestructura en la nube de Workiva. Ese contenedor tiene instalado linux, y todas las rutas están restringidas excepto /tmp (que está vacía). Los datos pueden escribirse y leerse temporalmente en esa ruta. Una vez finalizado el recorrido, el contenedor se desecha.
¿Puedo definir variables globales para utilizarlas en varios scripts, a lo Cadenas?
No en este momento.
¿Puedo enviar archivos como parámetros?
Los binarios pueden enviarse como parámetros siempre que no superen los 128 KB y estén codificados en texto (es decir, codificación de binario a texto).
¿Puedo acceder a la id de org, id de espacio de trabajo y región en mis scripts?
Sí, el identificador de la organización, el identificador del espacio de trabajo y la región (EE.UU., APAC, UE) son accesibles a tu código script a través de la variable de entorno. Por ejemplo, os.getenv("WORKIVA_ORGANIZATION_ID").
| Variable | Descripción |
|---|---|
| WORKIVA_ORGANIZATION_ID | El identificador único de la organización de Workiva donde está alojado el script |
| WORKIVA_ACCOUNT_ID | El ID único del Espacio de trabajo Workiva donde está alojado el script. |
| DOMINIO_CLUSTER_WORKIVA | La región Workiva (EE.UU., APAC o UE) del entorno de producción donde se aloja el script |
| WORKIVA_SCRIPTING_SCRIPT_ID | El ID único del script de Scripting que se está ejecutando |
| WORKIVA_SCRIPTING_RUN_ID | El ID único del script actual ejecutado |
| WORKIVA_SCRIPTING_LIMITE_MEMORIA | La cantidad máxima de RAM disponible para el script durante una sola ejecución |
| WORKIVA_SCRIPTING_LIMITE_DISCO | El almacenamiento máximo en disco que el script puede utilizar en el directorio /tmp durante una única ejecución. |
¿Puedo utilizar el código de un script de Workiva en otro script de Workiva?
En este momento, no hay forma de empaquetar un script de Workiva como una biblioteca y reutilizar el código en varios scripts. La mejor opción en este momento es copiar el trozo de código reutilizable y pegarlo en los scripts según sea necesario.