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:
- Recopila datos de todos tus análisis seleccionados
- Pone estos datos a disposición de tu código Python
- Ejecuta tu script en un entorno seguro
- 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:
- Se requiere conocimiento básico de programación en Python
- Selecciona datos de análisis en el paso Data del asistente de acciones
- 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
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.
Maneja errores de forma adecuada: Incluye bloques try/except para capturar y registrar errores. Los scripts fallidos deben proporcionar mensajes de error útiles.
Registra pasos importantes: Usa declaraciones print para rastrear el progreso de la ejecución. Estos aparecen en el historial de la acción.
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.
Considera el tiempo de ejecución: Las acciones tienen límites de tiempo. Optimiza los scripts para eficiencia, especialmente con grandes conjuntos de datos.
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