Blocktypen
Kategorien von Analyseblöcken
Entdecken Sie verschiedene Blocktypen, darunter Filter, Rechner und Alarmkonfigurationen. Erfahren Sie mehr über die Fähigkeiten, Konfigurationsmöglichkeiten und Erstellungsendpunkte jedes Typs.
Filterblöcke
POST /api/{tenantId}/{projectId}/block/filter
Filterblöcke wenden Datenfilterkriterien auf Datensätze an und reduzieren Daten durch Bedingungen wie Datumsbereiche, Wertefilter oder logische Ausdrücke. Sie bilden die Grundlage für fokussierte Analysen auf bestimmte Teilmengen von Daten.
Fähigkeiten
- Datumsbereichsfilter: Filterung von Daten innerhalb bestimmter Zeiträume
- Aktivitätsfilter: Ein- oder Ausschluss spezifischer Prozessaktivitäten
- Fallattributfilter: Filterung basierend auf Fall-Eigenschaften und Metadaten
- Wertebereichsfilter: Anwendung numerischer und textlicher Wertbedingungen
- Komplexe Logik: Kombination mehrerer Filter mit UND/ODER-Verknüpfungen
Anfrageinhalt
{
"notebookId": "660e8400-e29b-41d4-a716-446655440000",
"blockTitle": "Datumsbereichsfilter",
"blockDescription": "Filtert Prozessdaten der letzten 30 Tage"
}
Konfigurationsbeispiele
// Konfiguration Datumsbereichsfilter
{
"filterType": "dateRange",
"startDate": "2024-01-01T00:00:00Z",
"endDate": "2024-01-31T23:59:59Z",
"dateField": "timestamp"
}
// Konfiguration Aktivitätsfilter
{
"filterType": "activity",
"include": ["Order Created", "Payment Processed"],
"exclude": ["System Log"]
}
// Konfiguration Fallattributfilter
{
"filterType": "caseAttribute",
"attribute": "customerType",
"operator": "equals",
"value": "Premium"
}
Rechnerblöcke
POST /api/{tenantId}/{projectId}/block/calculator
Rechnerblöcke führen mathematische Operationen und analytische Berechnungen auf Datensätzen durch. Sie ermitteln Kennzahlen, Aggregationen, statistische Maße und abgeleitete Werte für die Prozessmining-Analyse.
Fähigkeiten
- Dauerberechnungen: Prozesszykluszeiten und Durchlaufzeiten
- Häufigkeitsanalyse: Auftretensraten und Muster von Aktivitäten
- Leistungskennzahlen: Durchsatz, Effizienz und Auslastung
- Statistische Analyse: Mittelwerte, Mediane, Perzentile und Verteilungen
- Benutzerdefinierte Formeln: Komplexe mathematische Ausdrücke und KPIs
Anfrageinhalt
{
"notebookId": "660e8400-e29b-41d4-a716-446655440000",
"blockTitle": "Berechnung der Prozessdauer",
"blockDescription": "Berechnet durchschnittliche Falldauer und Zykluszeiten"
}
Konfigurationsbeispiele
// Konfiguration Dauerberechnung
{
"calculationType": "duration",
"startActivity": "Order Created",
"endActivity": "Order Completed",
"unit": "hours",
"aggregation": "average"
}
// Konfiguration Häufigkeitsberechnung
{
"calculationType": "frequency",
"groupBy": "activity",
"timeWindow": "daily",
"metric": "count"
}
// Konfiguration benutzerdefinierte KPI-Berechnung
{
"calculationType": "custom",
"formula": "(completedCases / totalCases) * 100",
"resultUnit": "percentage",
"name": "Fertigstellungsrate"
}
Alarmblöcke
POST /api/{tenantId}/{projectId}/block/alert
Alarmblöcke überwachen Datenbedingungen und lösen Benachrichtigungen aus, wenn bestimmte Kriterien erfüllt sind. Sie bieten automatisiertes Monitoring und Ausnahmeerkennung für Prozessmining-Workflows und Compliance-Anforderungen.
Fähigkeiten
- Schwellenwertüberwachung: Alarm bei Überschreitung definierter Grenzwerte
- Musterdetektion: Erkennung ungewöhnlicher Prozessverhaltensmuster
- Compliance-Überwachung: Überwachung der Einhaltung von Geschäftsregeln
- Leistungsalarme: Überwachung von SLA-Verstößen und Leistungsabfällen
- Echtzeitbenachrichtigungen: Sofortige Alarme bei kritischen Zuständen
Anfrageinhalt
{
"notebookId": "660e8400-e29b-41d4-a716-446655440000",
"blockTitle": "SLA-Verstoß-Alarm",
"blockDescription": "Alarmiert, wenn Falldauer SLA-Grenzwert überschreitet"
}
Konfigurationsbeispiele
// Konfiguration Schwellenwert-Alarm
{
"alertType": "threshold",
"metric": "caseDuration",
"operator": "greaterThan",
"threshold": 48,
"unit": "hours",
"severity": "high"
}
// Konfiguration Musterabweichungs-Alarm
{
"alertType": "patternDeviation",
"baselinePattern": "Order -> Payment -> Fulfillment",
"deviationTolerance": 0.1,
"minOccurrences": 10
}
// Konfiguration Compliance-Alarm
{
"alertType": "compliance",
"rule": "approvalRequired",
"condition": "amount > 1000",
"requiredActivity": "Manager Approval"
}
Vergleich der Blocktypen
Wählen Sie den passenden Blocktyp für Ihre Analyseanforderungen:
| Blocktyp | Hauptzweck | Eingabe | Ausgabe | Anwendungsfälle |
|---|---|---|---|---|
| Filter | Datenreduktion und Fokussierung | Gesamter Datensatz | Gefilterter Datensatz | Zeitraumanalyse, spezifische Prozesspfade |
| Rechner | Berechnung von Kennzahlen und KPIs | Datensatz (gefiltert oder ganz) | Berechnete Werte/Kennzahlen | Leistungsbewertung, statistische Analyse |
| Alarm | Monitoring und Benachrichtigungen | Kennzahlen oder Datensatz | Alarmbedingungen/Benachrichtigungen | SLA-Überwachung, Ausnahmeerkennung |
Beispiel: Vollständiger Block-Workflow
Dieses Beispiel zeigt die Erstellung verschiedener Blocktypen für eine umfassende Analyse:
// Erstellen eines Filterblocks zur Fokussierung auf aktuelle Daten
const createDateFilter = async (notebookId) => {
const response = await fetch(`/api/${tenantId}/${projectId}/block/filter`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
notebookId: notebookId,
blockTitle: 'Filter letzte 30 Tage',
blockDescription: 'Fokussiert die Analyse auf aktuelle Prozessdaten'
})
});
return await response.json();
};
// Erstellen eines Rechnerblocks zur Berechnung von Kennzahlen
const createDurationCalculator = async (notebookId) => {
const response = await fetch(`/api/${tenantId}/${projectId}/block/calculator`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
notebookId: notebookId,
blockTitle: 'Durchschnittlicher Dauerrechner',
blockDescription: 'Berechnet durchschnittliche Bearbeitungszeit pro Fall'
})
});
return await response.json();
};
// Erstellen eines Alarmblocks zur Überwachung
const createSLAAlert = async (notebookId) => {
const response = await fetch(`/api/${tenantId}/${projectId}/block/alert`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
notebookId: notebookId,
blockTitle: 'SLA-Verstoß-Alarm',
blockDescription: 'Überwacht SLA-Verletzungen'
})
});
return await response.json();
};
// Aufbau des vollständigen Analyse-Workflows
const buildAnalysisWorkflow = async (notebookId) => {
try {
// 1. Daten auf aktuellen Zeitraum filtern
const filterBlock = await createDateFilter(notebookId);
console.log('Filterblock erstellt:', filterBlock.blockId);
// 2. Leistungskennzahlen berechnen
const calculatorBlock = await createDurationCalculator(notebookId);
console.log('Rechnerblock erstellt:', calculatorBlock.blockId);
// 3. Überwachungsalarme einrichten
const alertBlock = await createSLAAlert(notebookId);
console.log('Alarmblock erstellt:', alertBlock.blockId);
return {
filter: filterBlock,
calculator: calculatorBlock,
alert: alertBlock
};
} catch (error) {
console.error('Fehler beim Aufbau des Workflows:', error);
throw error;
}
};
Python-Implementierung
import requests
from typing import Dict, Any
class BlockTypeManager:
def __init__(self, base_url: str, tenant_id: str, project_id: str, token: str):
self.base_url = base_url
self.tenant_id = tenant_id
self.project_id = project_id
self.headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
def create_filter_block(self, notebook_id: str, title: str, description: str) -> Dict[str, Any]:
"""Erstellt einen Filterblock zur Datenreduktion"""
url = f"{self.base_url}/api/{self.tenant_id}/{self.project_id}/block/filter"
payload = {
'notebookId': notebook_id,
'blockTitle': title,
'blockDescription': description
}
response = requests.post(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def create_calculator_block(self, notebook_id: str, title: str, description: str) -> Dict[str, Any]:
"""Erstellt einen Rechnerblock zur Berechnung von Kennzahlen"""
url = f"{self.base_url}/api/{self.tenant_id}/{self.project_id}/block/calculator"
payload = {
'notebookId': notebook_id,
'blockTitle': title,
'blockDescription': description
}
response = requests.post(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def create_alert_block(self, notebook_id: str, title: str, description: str) -> Dict[str, Any]:
"""Erstellt einen Alarmblock zur Überwachung"""
url = f"{self.base_url}/api/{self.tenant_id}/{self.project_id}/block/alert"
payload = {
'notebookId': notebook_id,
'blockTitle': title,
'blockDescription': description
}
response = requests.post(url, json=payload, headers=self.headers)
response.raise_for_status()
return response.json()
def create_analysis_pipeline(self, notebook_id: str) -> Dict[str, Any]:
"""Erstellt eine vollständige Analyse-Pipeline mit allen Blocktypen"""
pipeline = {}
# Erstelle Filterblock
pipeline['filter'] = self.create_filter_block(
notebook_id,
'Datenfilter',
'Filtert Datensatz für Analyseumfang'
)
# Erstelle Rechnerblock
pipeline['calculator'] = self.create_calculator_block(
notebook_id,
'Leistungsrechner',
'Berechnet wichtige Leistungskennzahlen'
)
# Erstelle Alarmblock
pipeline['alert'] = self.create_alert_block(
notebook_id,
'Leistungsalarm',
'Überwacht Leistungsgrenzen'
)
return pipeline
# Beispielhafte Verwendung
block_manager = BlockTypeManager(
'https://your-mindzie-instance.com',
'tenant-guid',
'project-guid',
'your-auth-token'
)
# Erstelle vollständige Analyse-Pipeline
pipeline = block_manager.create_analysis_pipeline('notebook-guid')
print(f"Pipeline mit {len(pipeline)} Blöcken erstellt")
Wichtige Hinweise
Blockabhängigkeiten: Blöcke können miteinander verknüpft werden, wobei Filterblöcke Daten einschränken, Rechnerblöcke Kennzahlen berechnen und Alarmblöcke die Ergebnisse auf Ausnahmen überwachen.
Best Practice: Beginnen Sie mit Filterblöcken zur Eingrenzung des Datenumfangs, verwenden Sie dann Rechnerblöcke für die Analyse und ergänzen Sie abschließend Alarmblöcke für die kontinuierliche Überwachung und Benachrichtigung.