Python Script
De Python Script actiestap stelt je in staat om aangepaste Python-code uit te voeren met toegang tot je process mining gegevens. Dit biedt maximale flexibiliteit voor datatransformaties, aangepaste integraties en gespecialiseerde verwerking.
Overzicht
Wanneer je een Python Script actiestap configureert, doet het systeem het volgende:
- Verzamelt gegevens van al je geselecteerde analyses
- Maakt deze gegevens beschikbaar voor je Python-code
- Voert je script uit in een beveiligde omgeving
- Stelt je in staat om gegevens te verwerken, transformeren of overal naartoe te sturen
Dit is de krachtigste en meest flexibele actiestap, geschikt voor gevorderde gebruikers die aangepaste functionaliteit nodig hebben buiten de ingebouwde opties.
Wanneer Python Script te gebruiken
Gebruik Python Script wanneer je:
- Gegevens naar aangepaste API’s of webhooks wilt sturen
- Gegevens wilt transformeren voordat je ze exporteert naar andere systemen
- Integraties wilt maken met databases of datawarehouses
- Aangepaste bestandsformaten of rapporten wilt creëren
- Berekeningen wilt uitvoeren die niet beschikbaar zijn in standaard mindzieStudio-functionaliteiten
- Integraties met derde partijen wilt maken (Slack, Teams, Salesforce, etc.)
Vereisten
Voordat je Python Script gebruikt:
- Basiskennis van Python programmeren is vereist
- Selecteer analyseggegevens in de Data stap van de actiewizard
- Begrijp de datastructuren die beschikbaar zijn vanuit je analyses
Configuratie
Om een Python Script toe te voegen aan je actie, klik je op de + knop bij de sectie Actiestappen en selecteer je Python Script.
Script Editor
De Python Script dialoog biedt een code-editor waar je je Python-code schrijft. Het script heeft toegang tot:
- Alle gegevens van je geselecteerde analyses
- Standaard Python-bibliotheken
- Veelgebruikte databewerkingsbibliotheken (pandas, requests, etc.)
Beschikbare Gegevens
Je script ontvangt de geselecteerde analysegelding in gestructureerde formaten. Je kunt toegang krijgen tot:
- Ruwe event loggegevens
- Berekende metrics en statistieken
- Analyse-resultaten en tabellen
- Visualisatiegegevens
Voorbeeldscripts
Stuur Gegevens naar Webhook
import requests
import json
# Toegang tot de analysegelding
data = get_analysis_data()
# Verstuur naar een webhook
response = requests.post(
'https://your-webhook-url.com/endpoint',
json=data,
headers={'Content-Type': 'application/json'}
)
if response.status_code == 200:
print("Gegevens succesvol verzonden")
else:
print(f"Fout: {response.status_code}")
Exporteren naar Database
import pandas as pd
from sqlalchemy import create_engine
# Haal analysegelding op als DataFrame
df = get_analysis_dataframe()
# Verbinden met database
engine = create_engine('postgresql://user:pass@host:5432/database')
# Schrijf gegevens naar tabel
df.to_sql('process_metrics', engine, if_exists='replace', index=False)
print(f"{len(df)} rijen geëxporteerd naar database")
Verstuur Slack Notificatie
import requests
# Haal kernmetrics op
metrics = get_analysis_data()
avg_duration = metrics['average_duration']
case_count = metrics['case_count']
# Verstuur naar Slack
slack_message = {
"text": f"Dagelijkse Process Samenvatting: {case_count} cases verwerkt, gemiddelde duur: {avg_duration}"
}
requests.post(
'https://hooks.slack.com/services/YOUR/WEBHOOK/URL',
json=slack_message
)
Aangepaste CSV Export
import pandas as pd
from datetime import datetime
# Haal gegevens op
df = get_analysis_dataframe()
# Transformeer data
df['export_date'] = datetime.now().strftime('%Y-%m-%d')
df['source'] = 'mindzieStudio'
# Opslaan op aangepaste locatie
filename = f"process_export_{datetime.now().strftime('%Y%m%d')}.csv"
df.to_csv(f'/exports/{filename}', index=False)
print(f"Geëxporteerd naar {filename}")
Best Practices
Test scripts eerst handmatig: Ontwikkel en test je Python-code voordat je deze plant in een actie. Gebruik Python-notebooks om de logica te verifiëren.
Fouten netjes afhandelen: Voeg try/except-blokken toe om fouten op te vangen en te loggen. Mislukte scripts moeten nuttige foutmeldingen geven.
Log belangrijke stappen: Gebruik print-statements om de voortgang te volgen. Deze verschijnen in de actiegeschiedenis.
Hou inloggegevens veilig: Hardcode geen wachtwoorden of API-sleutels in scripts. Gebruik omgevingsvariabelen of beveiligde opslag.
Houd rekening met uitvoeringstijd: Acties hebben een time-out limiet. Optimaliseer scripts voor efficiëntie, vooral bij grote datasets.
Valideer gegevens vooraf: Controleer of verwachte gegevens aanwezig zijn voordat je ermee werkt. Ga netjes om met ontbrekende data.
Veelvoorkomende Patronen
Foutenafhandeling
try:
data = get_analysis_data()
process_data(data)
print("Succes")
except Exception as e:
print(f"Fout: {str(e)}")
# Optioneel een waarschuwing sturen
send_error_notification(str(e))
Data Validatie
data = get_analysis_data()
if not data or len(data) == 0:
print("Geen gegevens beschikbaar - export overgeslagen")
exit()
if 'required_column' not in data.columns:
print("Verplichte kolom ontbreekt")
exit()
# Verder met verwerking
Voorwaardelijke Verwerking
data = get_analysis_data()
# Alleen waarschuwing versturen indien drempel overschreden
if data['average_duration'] > 24: # uren
send_alert("Procesduur overschrijdt 24 uur!")
else:
print("Duur binnen acceptabele marge")
Probleemoplossing
Script voert niet uit
- Controleer de actiegeschiedenis op foutmeldingen
- Controleer of de actie is ingeschakeld en ingepland
- Controleer op correcte Python-syntaxis
Gegevens niet beschikbaar
- Controleer of analyses geselecteerd zijn in de Data stap
- Controleer of de analyses uitgevoerd zijn en data bevatten
- Controleer de methoden voor data-acces in je script
Script time-out
- Optimaliseer code voor betere performance
- Verwerk data in kleinere batches
- Overweeg zware verwerking extern uit te voeren
Fouten externe services
- Controleer API-eindpunten en inloggegevens
- Controleer netwerkconnectiviteit vanuit de uitvoeringomgeving
- Voeg retry-logica toe voor tijdelijke fouten
Importfouten
- Controleer of vereiste bibliotheken beschikbaar zijn
- Neem contact op met support als aanvullende pakketten nodig zijn
Beperkingen
- Scripts worden uitgevoerd in een sandbox-omgeving
- Sommige systeemniveau-operaties zijn beperkt
- Extern netwerkverkeer kan beperkt zijn door beveiligingsbeleid
- Uitvoeringstijd is beperkt om rondvliegende scripts te voorkomen
Gerelateerde Documentatie
Ondersteuning
Als je problemen ondervindt met Python Scripts:
- E-mail: support@mindzie.com
- Voeg je scriptcode toe (zonder gevoelige gegevens)
- Noteer foutmeldingen uit de actiegeschiedenis
- Beschrijf het verwachte versus de werkelijke gedrag