Script de Python

El paso de acción Script de Python te permite ejecutar código Python personalizado con acceso a tus datos de minería de procesos. Esto proporciona la máxima flexibilidad para la transformación de datos, integraciones personalizadas y procesamiento especializado.

Descripción general

Cuando configuras un paso de acción Script de Python, el sistema:

  1. Recopila datos de todos tus análisis seleccionados
  2. Pone estos datos a disposición de tu código Python
  3. Ejecuta tu script en un entorno seguro
  4. Te permite procesar, transformar o enviar datos a cualquier lugar

Este es el paso de acción más potente y flexible, adecuado para usuarios avanzados que necesitan funcionalidad personalizada más allá de las opciones integradas.

Cuándo usar Script de Python

Usa Script de Python cuando necesites:

  • Enviar datos a APIs personalizadas o webhooks
  • Transformar datos antes de exportarlos a otros sistemas
  • Integrarte con bases de datos o almacenes de datos
  • Crear formatos de archivo o informes personalizados
  • Realizar cálculos no disponibles en las funcionalidades estándar de mindzieStudio
  • Integrarte con servicios de terceros (Slack, Teams, Salesforce, etc.)

Requisitos previos

Antes de usar Script de Python:

  1. Se requiere conocimiento básico de programación en Python
  2. Selecciona datos de análisis en el paso Data del asistente de acciones
  3. Entiende las estructuras de datos disponibles de tus análisis

Configuración

Para agregar un Script de Python a tu acción, haz clic en el botón + en la sección Action Steps y selecciona Python Script.

Editor de Script

El diálogo de Script de Python proporciona un editor de código donde escribes tu código Python. El script tiene acceso a:

  • Todos los datos de tus análisis seleccionados
  • Bibliotecas estándar de Python
  • Bibliotecas comunes de procesamiento de datos (pandas, requests, etc.)

Datos disponibles

Tu script recibe los datos de análisis seleccionados en formatos estructurados. Puedes acceder a:

  • Datos brutos del log de eventos
  • Métricas y estadísticas calculadas
  • Resultados del análisis y tablas
  • Datos para visualización

Scripts de ejemplo

Enviar datos a un webhook

import requests
import json

# Access the analysis data
data = get_analysis_data()

# Send to a webhook
response = requests.post(
    'https://your-webhook-url.com/endpoint',
    json=data,
    headers={'Content-Type': 'application/json'}
)

if response.status_code == 200:
    print("Data sent successfully")
else:
    print(f"Error: {response.status_code}")

Exportar a base de datos

import pandas as pd
from sqlalchemy import create_engine

# Get analysis data as DataFrame
df = get_analysis_dataframe()

# Connect to database
engine = create_engine('postgresql://user:pass@host:5432/database')

# Write data to table
df.to_sql('process_metrics', engine, if_exists='replace', index=False)

print(f"Exported {len(df)} rows to database")

Enviar notificación a Slack

import requests

# Get key metrics
metrics = get_analysis_data()
avg_duration = metrics['average_duration']
case_count = metrics['case_count']

# Send to Slack
slack_message = {
    "text": f"Daily Process Summary: {case_count} cases processed, avg duration: {avg_duration}"
}

requests.post(
    'https://hooks.slack.com/services/YOUR/WEBHOOK/URL',
    json=slack_message
)

Exportación CSV personalizada

import pandas as pd
from datetime import datetime

# Get data
df = get_analysis_dataframe()

# Transform data
df['export_date'] = datetime.now().strftime('%Y-%m-%d')
df['source'] = 'mindzieStudio'

# Save to custom location
filename = f"process_export_{datetime.now().strftime('%Y%m%d')}.csv"
df.to_csv(f'/exports/{filename}', index=False)

print(f"Exported to {filename}")

Buenas prácticas

  1. Prueba los scripts manualmente primero: Desarrolla y prueba tu código Python antes de programarlo en una acción. Usa notebooks de Python para verificar la lógica.

  2. Maneja errores de forma adecuada: Incluye bloques try/except para capturar y registrar errores. Los scripts fallidos deben proporcionar mensajes de error útiles.

  3. Registra pasos importantes: Usa declaraciones print para rastrear el progreso de la ejecución. Estos aparecen en el historial de la acción.

  4. Mantén seguras las credenciales: No incluyas contraseñas o claves API en duro dentro de los scripts. Usa variables de entorno o almacenamiento seguro.

  5. Considera el tiempo de ejecución: Las acciones tienen límites de tiempo. Optimiza los scripts para eficiencia, especialmente con grandes conjuntos de datos.

  6. Valida los datos antes de procesar: Verifica que los datos esperados existan antes de intentar usarlos. Maneja datos faltantes de forma adecuada.

Patrones comunes

Manejo de errores

try:
    data = get_analysis_data()
    process_data(data)
    print("Success")
except Exception as e:
    print(f"Error: {str(e)}")
    # Optionally send alert
    send_error_notification(str(e))

Validación de datos

data = get_analysis_data()

if not data or len(data) == 0:
    print("No data available - skipping export")
    exit()

if 'required_column' not in data.columns:
    print("Missing required column")
    exit()

# Continue with processing

Procesamiento condicional

data = get_analysis_data()

# Only send alert if threshold exceeded
if data['average_duration'] > 24:  # hours
    send_alert("Process duration exceeds 24 hours!")
else:
    print("Duration within acceptable range")

Solución de problemas

Script no se ejecuta

  • Revisa el historial de la acción para mensajes de error
  • Verifica que la acción esté habilitada y programada
  • Asegúrate de que la sintaxis de Python sea correcta

Datos no disponibles

  • Confirma que los análisis están seleccionados en el paso Data
  • Verifica que los análisis se hayan ejecutado y contengan datos
  • Revisa los métodos de acceso a datos en tu script

Tiempo de espera del script

  • Optimiza el código para rendimiento
  • Procesa datos en lotes más pequeños
  • Considera mover procesos pesados a sistemas externos

Errores en servicios externos

  • Verifica los endpoints y credenciales de API
  • Revisa la conectividad de red desde el entorno de ejecución
  • Agrega lógica de reintento para fallas transitorias

Errores de importación

  • Verifica que las librerías requeridas estén disponibles
  • Contacta soporte si necesitas paquetes adicionales de Python

Limitaciones

  • Los scripts se ejecutan en un entorno sandbox
  • Algunas operaciones a nivel sistema están restringidas
  • El acceso a la red externa puede estar limitado por políticas de seguridad
  • El tiempo de ejecución está limitado para prevenir scripts sin control

Documentación relacionada

Soporte

Si tienes problemas con los Scripts de Python:

  • Correo: support@mindzie.com
  • Incluye el código de tu script (eliminando datos sensibles)
  • Anota cualquier mensaje de error del historial de acciones
  • Describe el comportamiento esperado vs. el real