Script Python
L'étape d'action Script Python vous permet d'exécuter du code Python personnalisé avec accès à vos données de process mining. Cela offre une flexibilité maximale pour la transformation des données, les intégrations personnalisées et le traitement spécialisé.
Vue d'ensemble
Lorsque vous configurez une étape d'action Script Python, le système :
- Récupère les données de toutes vos analyses sélectionnées
- Met ces données à disposition de votre code Python
- Exécute votre script dans un environnement sécurisé
- Vous permet de traiter, transformer ou envoyer des données n'importe où
C'est l'étape d'action la plus puissante et flexible, adaptée aux utilisateurs avancés nécessitant des fonctionnalités personnalisées au-delà des options intégrées.
Quand utiliser Script Python
Utilisez Script Python lorsque vous devez :
- Envoyer des données à des API personnalisées ou webhooks
- Transformer les données avant export vers d’autres systèmes
- Intégrer avec des bases de données ou data warehouses
- Créer des formats de fichiers ou rapports personnalisés
- Effectuer des calculs non disponibles dans les fonctionnalités standards de mindzieStudio
- Intégrer avec des services tiers (Slack, Teams, Salesforce, etc.)
Prérequis
Avant d’utiliser Script Python :
- Des connaissances de base en programmation Python sont nécessaires
- Sélectionner les données d’analyse dans l’étape Données de l’assistant d’action
- Comprendre les structures de données disponibles à partir de vos analyses
Configuration
Pour ajouter un Script Python à votre action, cliquez sur le bouton + dans la section Étapes d’Action et sélectionnez Python Script.
Éditeur de script
La boîte de dialogue Script Python fournit un éditeur de code où écrire votre code Python. Le script a accès à :
- Toutes les données de vos analyses sélectionnées
- Les bibliothèques Python standard
- Les bibliothèques courantes de traitement de données (pandas, requests, etc.)
Données disponibles
Votre script reçoit les données des analyses sélectionnées sous des formats structurés. Vous pouvez accéder à :
- Données brutes du journal d’événements
- Métriques et statistiques calculées
- Résultats d’analyse et tableaux
- Données de visualisation
Exemples de scripts
Envoyer des données à un webhook
import requests
import json
# Accéder aux données d’analyse
data = get_analysis_data()
# Envoyer à un webhook
response = requests.post(
'https://your-webhook-url.com/endpoint',
json=data,
headers={'Content-Type': 'application/json'}
)
if response.status_code == 200:
print("Données envoyées avec succès")
else:
print(f"Erreur : {response.status_code}")
Exporter vers une base de données
import pandas as pd
from sqlalchemy import create_engine
# Obtenir les données d’analyse sous forme de DataFrame
df = get_analysis_dataframe()
# Connexion à la base de données
engine = create_engine('postgresql://user:pass@host:5432/database')
# Écrire les données dans la table
df.to_sql('process_metrics', engine, if_exists='replace', index=False)
print(f"{len(df)} lignes exportées vers la base de données")
Envoyer une notification Slack
import requests
# Obtenir les métriques clés
metrics = get_analysis_data()
avg_duration = metrics['average_duration']
case_count = metrics['case_count']
# Envoyer à Slack
slack_message = {
"text": f"Résumé quotidien du process : {case_count} cas traités, durée moyenne : {avg_duration}"
}
requests.post(
'https://hooks.slack.com/services/YOUR/WEBHOOK/URL',
json=slack_message
)
Export CSV personnalisé
import pandas as pd
from datetime import datetime
# Obtenir les données
df = get_analysis_dataframe()
# Transformer les données
df['export_date'] = datetime.now().strftime('%Y-%m-%d')
df['source'] = 'mindzieStudio'
# Sauvegarder à un emplacement personnalisé
filename = f"process_export_{datetime.now().strftime('%Y%m%d')}.csv"
df.to_csv(f'/exports/{filename}', index=False)
print(f"Exporté vers {filename}")
Bonnes pratiques
- Tester les scripts manuellement avant : développez et testez votre code Python avant de le planifier dans une action. Utilisez des notebooks Python pour vérifier la logique.
- Gérer les erreurs avec soin : incluez des blocs try/except pour capturer et consigner les erreurs. Les scripts échoués doivent fournir des messages d’erreur utiles.
- Consigner les étapes importantes : utilisez des instructions print pour suivre l’avancement de l’exécution. Celles-ci apparaissent dans l’historique des actions.
- Sécuriser les identifiants : ne codez pas en dur mots de passe ou clés API dans les scripts. Utilisez des variables d’environnement ou un stockage sécurisé.
- Prendre en compte le temps d’exécution : les actions ont des limites de délai. Optimisez les scripts pour l’efficacité, surtout avec de gros jeux de données.
- Valider les données avant traitement : vérifiez que les données attendues existent avant d’essayer de les utiliser. Gérez proprement les données manquantes.
Modèles courants
Gestion des erreurs
try:
data = get_analysis_data()
process_data(data)
print("Succès")
except Exception as e:
print(f"Erreur : {str(e)}")
# Optionnel : envoyer une alerte
send_error_notification(str(e))
Validation des données
data = get_analysis_data()
if not data or len(data) == 0:
print("Aucune donnée disponible - export ignoré")
exit()
if 'required_column' not in data.columns:
print("Colonne requise manquante")
exit()
# Continuer le traitement
Traitement conditionnel
data = get_analysis_data()
# Envoyer une alerte uniquement si le seuil est dépassé
if data['average_duration'] > 24: # heures
send_alert("La durée du process dépasse 24 heures !")
else:
print("Durée dans la plage acceptable")
Dépannage
Script ne s’exécute pas
- Vérifiez l’historique des actions pour des messages d’erreur
- Assurez-vous que l’action est activée et planifiée
- Vérifiez la syntaxe Python
Données non disponibles
- Confirmez que les analyses sont sélectionnées dans l’étape Données
- Vérifiez que les analyses ont été exécutées et contiennent des données
- Contrôlez les méthodes d’accès aux données dans votre script
Timeout du script
- Optimisez le code pour les performances
- Traitez les données en petites batches
- Envisagez de déléguer les traitements lourds à des systèmes externes
Erreurs de services externes
- Vérifiez les points d’accès API et les identifiants
- Contrôlez la connectivité réseau depuis l’environnement d’exécution
- Ajoutez une logique de retry pour les échecs temporaires
Erreurs d’importation
- Vérifiez que les bibliothèques requises sont disponibles
- Contactez le support si vous avez besoin de packages Python supplémentaires
Limitations
- Les scripts s’exécutent dans un environnement sandbox
- Certaines opérations systèmes sont restreintes
- L’accès réseau externe peut être limité par la politique de sécurité
- Le temps d’exécution est limité pour éviter des scripts incontrôlés
Documentation associée
Support
Si vous rencontrez des problèmes avec les Scripts Python :
- Email : support@mindzie.com
- Incluez votre code script (sans données sensibles)
- Indiquez les messages d’erreur de l’historique des actions
- Décrivez le comportement attendu vs. observé