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:

  1. Verzamelt gegevens van al je geselecteerde analyses
  2. Maakt deze gegevens beschikbaar voor je Python-code
  3. Voert je script uit in een beveiligde omgeving
  4. 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:

  1. Basiskennis van Python programmeren is vereist
  2. Selecteer analyseggegevens in de Data stap van de actiewizard
  3. 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

  1. 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.

  2. Fouten netjes afhandelen: Voeg try/except-blokken toe om fouten op te vangen en te loggen. Mislukte scripts moeten nuttige foutmeldingen geven.

  3. Log belangrijke stappen: Gebruik print-statements om de voortgang te volgen. Deze verschijnen in de actiegeschiedenis.

  4. Hou inloggegevens veilig: Hardcode geen wachtwoorden of API-sleutels in scripts. Gebruik omgevingsvariabelen of beveiligde opslag.

  5. Houd rekening met uitvoeringstijd: Acties hebben een time-out limiet. Optimaliseer scripts voor efficiëntie, vooral bij grote datasets.

  6. 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