Notebook API Übersicht

Notebooks sind Container für Analyseblöcke, die Prozess-Mining-Workflows innerhalb von Untersuchungen definieren. Verwenden Sie die Notebook API, um Analyse-Workflows programmatisch zu erstellen, zu verwalten und auszuführen.

Wichtige Konzepte

Was sind Notebooks?

Notebooks enthalten geordnete Sequenzen von Analyseblöcken:

  • Filter: Eingrenzung der Daten auf bestimmte Fälle oder Ereignisse
  • Berechner: Berechnung von Metriken, Dauern und abgeleiteten Werten
  • Insights: Erzeugung von Visualisierungen und statistischen Analysen
  • Dashboards: Erstellung von teilbaren Berichten

Die Blöcke werden der Reihe nach ausgeführt, wobei jeder Block Daten vom übergeordneten Block erhält.

Notebook-Typen

Typ Wert Beschreibung
Standard 0 Reguläres Analyse-Notebook
Template 1 Auf Vorlagen basierendes Notebook
BaseKnowledge 2 Grundlagen-Notebook

Automatisches Laden

Notebook-CRUD-Operationen laden das Projekt automatisch in den gemeinsamen Cache. Es ist nicht erforderlich, vor dem Erstellen, Aktualisieren oder Löschen von Notebooks /project/{id}/load explizit aufzurufen.

# Rufen Sie die Operation einfach direkt auf - das Projekt lädt automatisch
response = requests.post(
    f"{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/notebook/investigation/{investigation_id}",
    json={"name": "Neues Notebook"},
    headers=headers
)

Optimistisches Sperren

Update-Operationen unterstützen eine optionale Konflikterkennung mit DateModified:

# DateModified einfügen, um gleichzeitige Änderungen zu erkennen
response = requests.put(
    f"{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/notebook/{notebook_id}",
    json={
        "name": "Aktualisierter Name",
        "dateModified": "2024-01-15T10:30:00Z"  # Von Ihrem letzten GET
    },
    headers=headers
)

# Wenn ein anderer Nutzer das Notebook geändert hat, wird 409 Conflict zurückgegeben

API-Endpunkte

Notebook CRUD

Methode Endpunkt Beschreibung
GET /api/{tenantId}/{projectId}/notebook/investigation/{investigationId} Notebooks in Untersuchung auflisten
POST /api/{tenantId}/{projectId}/notebook/investigation/{investigationId} Notebook erstellen
POST /api/{tenantId}/{projectId}/notebook/investigation/{investigationId}/from-template Aus Vorlage erstellen
GET /api/{tenantId}/{projectId}/notebook/{notebookId} Notebook-Details abrufen
PUT /api/{tenantId}/{projectId}/notebook/{notebookId} Notebook aktualisieren
DELETE /api/{tenantId}/{projectId}/notebook/{notebookId} Notebook löschen
POST /api/{tenantId}/{projectId}/notebook/{notebookId}/copy Notebook kopieren

Block-Operationen

Methode Endpunkt Beschreibung
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks Blöcke auflisten
POST /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks Block erstellen
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks/order Block-Reihenfolge abrufen
PUT /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks/order Blöcke neu anordnen

Dienstprogramm

Methode Endpunkt Beschreibung
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/url Teilbare URL generieren
GET /api/{tenantId}/{projectId}/notebook/ping Authentifizierter Verbindungstest
GET /api/{tenantId}/{projectId}/notebook/unauthorized-ping Öffentlicher Verbindungstest

Schnellstart

Notebooks in einer Untersuchung auflisten

curl -X GET "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}" \
  -H "Authorization: Bearer YOUR_API_KEY"

Ein Notebook erstellen

curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Meine Analyse", "description": "Prozessanalyse-Workflow"}'

Aus Vorlage erstellen

curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}/from-template" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "name": "Meine Analyse"}'

Antwortstruktur

Notebook-Antwort

{
  "notebookId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "investigationId": "11111111-2222-3333-4444-555555555555",
  "name": "Hauptanalyse",
  "description": "Primärer Prozessanalyse-Workflow",
  "dateCreated": "2024-01-15T10:30:00Z",
  "dateModified": "2024-01-20T14:45:00Z",
  "createdBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "modifiedBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "notebookType": 0,
  "notebookOrder": 1.0,
  "lastExecutionDuration": 2.5,
  "blockCount": 12
}

Antwortfelder

Feld Typ Beschreibung
notebookId GUID Eindeutige Notebook-ID
investigationId GUID Übergeordnete Untersuchungs-ID
name string Notebook-Name
description string Notebook-Beschreibung
dateCreated datetime Erstellungszeitpunkt
dateModified datetime Letzter Änderungszeitpunkt
createdBy GUID ID des Erstellers
modifiedBy GUID ID des letzten Änderers
notebookType integer Typ (0=Standard, 1=Template, 2=BaseKnowledge)
notebookOrder dezimal Anzeige-Reihenfolge innerhalb der Untersuchung
lastExecutionDuration double Letzte Ausführungsdauer in Sekunden
blockCount integer Anzahl der Blöcke im Notebook

Was kommt als Nächstes?