Ir al contenido principal

Herramientas de Darwin: Código Python

S
Escrito por Support Team

Esta nueva herramienta te permite ejecutar tu propio código personalizado. Esta funcionalidad es útil para realizar cálculos, generar valores o interactuar con consultas y componentes. Este paso ejecuta tu código Python en un entorno aislado y pasa los resultados a las siguientes etapas del flujo de trabajo. Si prefieres trabajar con JavaScript, utiliza la herramienta de código JavaScript disponible.


Cómo funciona la herramienta

Paso 1: Agregar la herramienta al flujo

Abre el Constructor de Automatizaciones, haz clic en el botón + para añadir una acción y selecciona la herramienta Python.

Paso 2: Configurar los datos de entrada

En la sección Input Data defines las variables que recibirás desde los pasos anteriores y que usarás dentro del código.

Para cada variable debes especificar:

  • Nombre: el identificador que usarás en el script.

  • Tipo de dato: string, number, boolean, etc.

  • Valor: selecciona el dato de un paso anterior que se asignará a esta variable.

    Puedes agregar tantas variables como necesites usando el botón Add field. También puedes eliminar las que no utilices.

A continuación, configura Output Data. Aquí, especificas manualmente el nombre y el tipo de las variables que deseas obtener como resultado. En los siguientes pasos de tu automatización, podrás usar los campos que definiste en esta sección.

Configurar los datos de salida es obligatorio, incluso si no creaste ninguna variable nueva en el código.

Paso 3: Escribir el código y configurar la salida

En el editor de código escribe el script en Python utilizando las variables declaradas en los datos de entrada. Puedes crear nuevas variables o modificar las existentes.

En la sección Output Data defines las variables que expondrás como resultado. Es obligatorio configurar este apartado, incluso si no creas nuevas variables en el código. Para cada variable de salida indicas un nombre y un tipo de dato.

Cuando hay campos definidos en Output Data, tu código debe incluir una asignación a la variable Outputdata con un diccionario cuyas claves coincidan exactamente con los nombres declarados. Por ejemplo:


python

Outputdata = {"resultado": valor, "otro_campo": otro_valor}

Si esta asignación no está presente, el paso fallará.

Después de eso, puedes escribir cualquier código Python utilizando las variables que has declarado o crear otras nuevas a partir de ellas.

El código se ejecuta en un entorno aislado.

Para garantizar una ejecución segura, hemos restringido las solicitudes externas y las operaciones de red. Por ejemplo, no se pueden usar las bibliotecas utilizadas para **solicitudes HTTP**.

Una vez configurado el código, abre el paso siguiente de la automatización. En los campos donde necesites insertar los valores de salida, selecciona las variables definidas en Output Data desde la lista de campos disponibles. Guarda los cambios e inicia la automatización.

Limitaciones y seguridad

  • Versión de Python: 3.11

  • Zona horaria del entorno: UTC

  • Límite de memoria: 512 MB

  • Tiempo máximo de ejecución: 10 segundos por paso

  • Entorno aislado: el código se ejecuta en un sandbox sin acceso a la red. No están permitidas las peticiones HTTP ni las operaciones de red (por ejemplo, las librerías requests, urllib, socket).

  • Módulos disponibles: solo se pueden importar módulos de una lista aprobada. Entre ellos se incluyen: string, re, math, cmath, statistics, random, datetime, calendar, collections, collections.abc, functools, itertools, operator, heapq, bisect, array, copy, json, numpy, csv, base64, binascii, hashlib, hmac, pprint, textwrap, uuid, typing, dataclasses, traceback, decimal, fractions.

Errores y diagnósticos

Si el paso falla:

  • Compruebe que los datos de salida estén configurados correctamente y que los nombres de las variables de salida coincidan con los nombres que ha asignado en su código.

  • Verifique los datos de entrada: asegúrese de que la estructura o el número de líneas sea suficiente. Muchos errores ocurren después de la división cuando la cadena de entrada no contiene las líneas esperadas.

  • Asegúrese de no estar utilizando módulos restringidos ni realizando solicitudes de red.

Ejemplos de uso

  • Calcular la diferencia en minutos entre dos fechas

Devuelve la duración en minutos a partir de dos marcas de tiempo, útil para calcular tiempos de procesamiento, llamadas o reuniones.

python

from datetime import datetime date_start = datetime.fromisoformat(date_start)  # or another format in which the string arrives date_end   = datetime.fromisoformat(date_end) dif_minutes = (date_end - date_start).total_seconds() / 60
phytoncode7.png

  • Separar fecha y hora y eliminar segundos

Convierte una fecha y hora completas en dos campos independientes (fecha y hora) y descarta los segundos.

python

from datetime import datetime date_time_str = date_time.strip()  # input is ALWAYS a string if date_time_str.isdigit():     dt = datetime.fromtimestamp(int(date_time_str) / 1000) else:     try:         dt = datetime.fromisoformat(date_time_str)     except ValueError:         dt = datetime.strptime(date_time_str, "%Y-%m-%d %H:%M:%S") def date_edit(arr):     return [(f"0{el}" if el < 10 else str(el)) for el in arr] date_str = ".".join(date_edit([dt.day, dt.month, dt.year])) time_str = ":".join(date_edit([dt.hour, dt.minute]))
phytoncode10.png
  • Limpiar etiquetas HTML de un texto

Elimina las etiquetas HTML, saltos de línea y espacios múltiples del cuerpo de un correo o notificación.

python

import re regexp = re.compile(r'<(\/?[^>]+)>|(\n)|(\s{4,})', flags=re.MULTILINE) clean_text = regexp.sub('', html).strip() Outputdata = {"clean_text": clean_text}
phytoncode8.png
¿Ha quedado contestada tu pregunta?