Datensatz Erstellung
Neue Datensätze Erstellen
Erstellen Sie Datensätze aus CSV-Dateien, ZIP-Paketen oder Binärdateien. Jedes Format erfordert spezifische Spaltenzuordnungen für die Process Mining Analyse.
Verbindungstest
Unautorisierter Ping
GET /api/{tenantId}/{projectId}/dataset/unauthorized-ping
Test-Endpunkt, der keine Authentifizierung benötigt.
Antwort
Ping Successful
Authentifizierter Ping
GET /api/{tenantId}/{projectId}/dataset/ping
Authentifizierter Ping-Endpunkt zur Überprüfung des API-Zugriffs.
Antwort (200 OK)
Ping Successful (tenant id: {tenantId})
Alle Datensätze Auflisten
GET /api/{tenantId}/{projectId}/dataset
Ruft alle Datensätze innerhalb des angegebenen Projekts ab.
Antwort (200 OK)
{
"datasets": [
{
"datasetId": "550e8400-e29b-41d4-a716-446655440000",
"datasetName": "Purchase Order Process",
"datasetDescription": "Event log from SAP",
"projectId": "660e8400-e29b-41d4-a716-446655440000",
"caseIdColumnName": "CaseID",
"activityColumnName": "Activity",
"timeColumnName": "Timestamp",
"resourceColumnName": "Resource",
"beginTimeColumnName": null,
"expectedOrderColumnName": null,
"useDateOnlySorting": false,
"useOnlyEventColumns": false,
"dateCreated": "2024-01-15T10:30:00Z",
"dateModified": "2024-01-15T14:45:00Z",
"createdBy": "user@example.com",
"modifiedBy": "user@example.com"
}
]
}
Datensatz aus CSV Erstellen
POST /api/{tenantId}/{projectId}/dataset/csv
Erstellt einen neuen Datensatz durch Hochladen einer CSV-Datei mit Spaltenzuordnungen.
Anfrage (multipart/form-data)
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
file |
Datei | Ja | CSV-Datei zum Hochladen (max. 1GB) |
datasetName |
String | Ja | Name des neuen Datensatzes |
caseIdColumn |
String | Ja | Spaltenname mit den Case-IDs |
activityNameColumn |
String | Ja | Spaltenname mit den Aktivitätsnamen |
activityTimeColumn |
String | Ja | Spaltenname mit Zeitstempeln |
resourceColumn |
String | Nein | Spaltenname mit Ressource/Ausführer |
startTimeColumn |
String | Nein | Spaltenname für Aktivitäts-Startzeiten |
cultureInfo |
String | Nein | Kultur für Parsing (Standard: "en-US") |
Antwort (200 OK)
{
"datasetId": "550e8400-e29b-41d4-a716-446655440000",
"caseCount": 5200,
"eventCount": 150000,
"invalidValueCount": 0,
"skippedRowsCount": 0,
"errors": [],
"rowIssues": [],
"statusCode": 200
}
Fehlerantwort (422 Unprocessable Entity)
{
"errors": ["Column 'CaseID' not found in CSV file"],
"statusCode": 422
}
Datensatz aus ZIP-Paket Erstellen
POST /api/{tenantId}/{projectId}/dataset/package
Erstellt einen neuen Datensatz aus einem ZIP-Paket mit Datendateien.
Anfrage (multipart/form-data)
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
file |
Datei | Ja | ZIP-Paket Datei (max. 1GB) |
datasetName |
String | Ja | Name des neuen Datensatzes |
cultureInfo |
String | Nein | Kultur für Parsing (Standard: "en-US") |
Antwort (200 OK)
{
"datasetId": "550e8400-e29b-41d4-a716-446655440000",
"caseCount": 5200,
"eventCount": 150000,
"invalidValueCount": 0,
"skippedRowsCount": 0,
"errors": [],
"rowIssues": [],
"statusCode": 200
}
Datensatz aus Binärdatei Erstellen
POST /api/{tenantId}/{projectId}/dataset/binary
Erstellt einen neuen Datensatz aus einer Binärdatei mit Spaltenzuordnungen.
Anfrage (multipart/form-data)
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
file |
Datei | Ja | Binärdatei zum Hochladen (max. 1GB) |
datasetName |
String | Ja | Name des neuen Datensatzes |
caseIdColumn |
String | Ja | Spaltenname mit den Case-IDs |
activityNameColumn |
String | Ja | Spaltenname mit den Aktivitätsnamen |
activityTimeColumn |
String | Ja | Spaltenname mit Zeitstempeln |
resourceColumn |
String | Nein | Spaltenname mit Ressource/Ausführer |
startTimeColumn |
String | Nein | Spaltenname für Aktivitäts-Startzeiten |
Antwort (200 OK)
Gleiche Struktur wie die Antwort bei der Erstellung aus CSV.
Implementierungsbeispiele
cURL - CSV Upload
curl -X POST "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dataset/csv" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@event_log.csv" \
-F "datasetName=Purchase Orders" \
-F "caseIdColumn=CaseID" \
-F "activityNameColumn=Activity" \
-F "activityTimeColumn=Timestamp" \
-F "resourceColumn=User" \
-F "cultureInfo=en-US"
cURL - ZIP-Paket Upload
curl -X POST "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dataset/package" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@data_package.zip" \
-F "datasetName=SAP Export" \
-F "cultureInfo=en-US"
Python
import requests
TENANT_ID = '12345678-1234-1234-1234-123456789012'
PROJECT_ID = '87654321-4321-4321-4321-210987654321'
BASE_URL = 'https://your-mindzie-instance.com'
class DatasetUploader:
def __init__(self, token):
self.headers = {'Authorization': f'Bearer {token}'}
def create_from_csv(self, file_path, dataset_name, case_id_col, activity_col, time_col,
resource_col=None, start_time_col=None, culture='en-US'):
"""Erstellt einen Datensatz aus einer CSV-Datei."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dataset/csv'
with open(file_path, 'rb') as f:
files = {'file': (file_path, f, 'text/csv')}
data = {
'datasetName': dataset_name,
'caseIdColumn': case_id_col,
'activityNameColumn': activity_col,
'activityTimeColumn': time_col,
'cultureInfo': culture
}
if resource_col:
data['resourceColumn'] = resource_col
if start_time_col:
data['startTimeColumn'] = start_time_col
response = requests.post(url, headers=self.headers, files=files, data=data)
if response.ok:
return response.json()
else:
raise Exception(f'Upload fehlgeschlagen: {response.text}')
def create_from_package(self, file_path, dataset_name, culture='en-US'):
"""Erstellt einen Datensatz aus einem ZIP-Paket."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dataset/package'
with open(file_path, 'rb') as f:
files = {'file': (file_path, f, 'application/zip')}
data = {
'datasetName': dataset_name,
'cultureInfo': culture
}
response = requests.post(url, headers=self.headers, files=files, data=data)
if response.ok:
return response.json()
else:
raise Exception(f'Upload fehlgeschlagen: {response.text}')
def list_datasets(self):
"""Listet alle Datensätze im Projekt auf."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dataset'
response = requests.get(url, headers=self.headers)
return response.json()
# Verwendung
uploader = DatasetUploader('your-auth-token')
# Erstellung aus CSV
result = uploader.create_from_csv(
'event_log.csv',
'Purchase Order Process',
'CaseID',
'Activity',
'Timestamp',
resource_col='User'
)
print(f"Erstellter Datensatz: {result['datasetId']}")
print(f"Fälle: {result['caseCount']}, Ereignisse: {result['eventCount']}")
# Alle Datensätze auflisten
datasets = uploader.list_datasets()
for ds in datasets['datasets']:
print(f"- {ds['datasetName']} ({ds['datasetId']})")
JavaScript/Node.js
const TENANT_ID = '12345678-1234-1234-1234-123456789012';
const PROJECT_ID = '87654321-4321-4321-4321-210987654321';
const BASE_URL = 'https://your-mindzie-instance.com';
class DatasetUploader {
constructor(token) {
this.token = token;
}
async createFromCsv(file, datasetName, caseIdCol, activityCol, timeCol, options = {}) {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/dataset/csv`;
const formData = new FormData();
formData.append('file', file);
formData.append('datasetName', datasetName);
formData.append('caseIdColumn', caseIdCol);
formData.append('activityNameColumn', activityCol);
formData.append('activityTimeColumn', timeCol);
formData.append('cultureInfo', options.culture || 'en-US');
if (options.resourceColumn) {
formData.append('resourceColumn', options.resourceColumn);
}
if (options.startTimeColumn) {
formData.append('startTimeColumn', options.startTimeColumn);
}
const response = await fetch(url, {
method: 'POST',
headers: { 'Authorization': `Bearer ${this.token}` },
body: formData
});
if (response.ok) {
return await response.json();
} else {
throw new Error(`Upload fehlgeschlagen: ${await response.text()}`);
}
}
async listDatasets() {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/dataset`;
const response = await fetch(url, {
headers: { 'Authorization': `Bearer ${this.token}` }
});
return await response.json();
}
}
// Verwendung (Browser)
const uploader = new DatasetUploader('your-auth-token');
const fileInput = document.getElementById('csvFile');
fileInput.addEventListener('change', async (e) => {
const file = e.target.files[0];
const result = await uploader.createFromCsv(
file,
'Mein Datensatz',
'CaseID',
'Activity',
'Timestamp',
{ resourceColumn: 'User' }
);
console.log(`Erstellt: ${result.datasetId}`);
console.log(`Fälle: ${result.caseCount}, Ereignisse: ${result.eventCount}`);
});
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
datasetId |
GUID | ID des erstellten Datensatzes |
caseCount |
Integer | Anzahl der importierten eindeutigen Fälle |
eventCount |
Integer | Gesamtanzahl der importierten Ereignisse |
invalidValueCount |
Integer | Anzahl der ungültigen Werte |
skippedRowsCount |
Integer | Anzahl der wegen Fehler übersprungenen Zeilen |
errors |
Array | Liste der Fehlermeldungen |
rowIssues |
Array | Detaillierte Informationen zu Zeilenproblemen |
statusCode |
Integer | HTTP-Statuscode |
Best Practices
- Spaltennamen validieren: Stellen Sie sicher, dass die Spaltennamen exakt übereinstimmen (Groß- und Kleinschreibung beachten)
- Kultureinstellungen prüfen: Verwenden Sie die passende Kultur für Datums- und Zahlenformate
- Große Dateien handhaben: Überwachen Sie den Upload-Fortschritt bei Dateien bis zu 1GB
- Zeilenprobleme prüfen: Kontrollieren Sie das
rowIssues-Array auf Datenqualitätsprobleme - Eindeutige Datensatznamen: Datensatznamen müssen innerhalb eines Projekts eindeutig sein