Dataset Creatie
Nieuwe Datasets Aanmaken
Maak datasets aan vanuit CSV-bestanden, ZIP-pakketten of binaire bestanden. Elk formaat vereist specifieke kolommappingen voor proces mining analyse.
Connectiviteit Testen
Ongeautoriseerde Ping
GET /api/{tenantId}/{projectId}/dataset/unauthorized-ping
Testendpoint dat geen authenticatie vereist.
Respons
Ping Geslaagd
Geauthenticeerde Ping
GET /api/{tenantId}/{projectId}/dataset/ping
Geauthenticeerd ping-endpoint om API-toegang te verifiëren.
Respons (200 OK)
Ping Geslaagd (tenant id: {tenantId})
Alle Datasets Lijst
GET /api/{tenantId}/{projectId}/dataset
Haalt alle datasets op binnen het opgegeven project.
Respons (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"
}
]
}
Dataset Aanmaken vanuit CSV
POST /api/{tenantId}/{projectId}/dataset/csv
Maakt een nieuwe dataset aan op basis van een CSV-bestand upload met kolommappingen.
Verzoek (multipart/form-data)
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
file |
bestand | Ja | CSV-bestand om te uploaden (max 1GB) |
datasetName |
string | Ja | Naam voor de nieuwe dataset |
caseIdColumn |
string | Ja | Kolomnaam die case-ID's bevat |
activityNameColumn |
string | Ja | Kolomnaam die activiteiten bevat |
activityTimeColumn |
string | Ja | Kolomnaam die tijdstempels bevat |
resourceColumn |
string | Nee | Kolomnaam die resource/uitvoerder bevat |
startTimeColumn |
string | Nee | Kolomnaam voor activiteit starttijden |
cultureInfo |
string | Nee | Cultuur voor parsing (standaard: "en-US") |
Respons (200 OK)
{
"datasetId": "550e8400-e29b-41d4-a716-446655440000",
"caseCount": 5200,
"eventCount": 150000,
"invalidValueCount": 0,
"skippedRowsCount": 0,
"errors": [],
"rowIssues": [],
"statusCode": 200
}
Fout Respons (422 Unprocessable Entity)
{
"errors": ["Kolom 'CaseID' niet gevonden in CSV-bestand"],
"statusCode": 422
}
Dataset Aanmaken vanuit ZIP-pakket
POST /api/{tenantId}/{projectId}/dataset/package
Maakt een nieuwe dataset aan uit een ZIP-pakket dat databestanden bevat.
Verzoek (multipart/form-data)
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
file |
bestand | Ja | ZIP-pakket bestand (max 1GB) |
datasetName |
string | Ja | Naam voor de nieuwe dataset |
cultureInfo |
string | Nee | Cultuur voor parsing (standaard: "en-US") |
Respons (200 OK)
{
"datasetId": "550e8400-e29b-41d4-a716-446655440000",
"caseCount": 5200,
"eventCount": 150000,
"invalidValueCount": 0,
"skippedRowsCount": 0,
"errors": [],
"rowIssues": [],
"statusCode": 200
}
Dataset Aanmaken vanuit Binary
POST /api/{tenantId}/{projectId}/dataset/binary
Maakt een nieuwe dataset aan uit een binaire bestand met kolommappingen.
Verzoek (multipart/form-data)
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
file |
bestand | Ja | Binaire bestand om te uploaden (max 1GB) |
datasetName |
string | Ja | Naam voor de nieuwe dataset |
caseIdColumn |
string | Ja | Kolomnaam die case-ID's bevat |
activityNameColumn |
string | Ja | Kolomnaam die activiteiten bevat |
activityTimeColumn |
string | Ja | Kolomnaam die tijdstempels bevat |
resourceColumn |
string | Nee | Kolomnaam die resource/uitvoerder bevat |
startTimeColumn |
string | Nee | Kolomnaam voor activiteit starttijden |
Respons (200 OK)
Zelfde structuur als CSV creatie respons.
Implementatie Voorbeelden
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 Pakket 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'):
"""Maak dataset aan vanuit CSV-bestand."""
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 mislukt: {response.text}')
def create_from_package(self, file_path, dataset_name, culture='en-US'):
"""Maak dataset aan vanuit ZIP-pakket."""
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 mislukt: {response.text}')
def list_datasets(self):
"""Lijst alle datasets in het project."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dataset'
response = requests.get(url, headers=self.headers)
return response.json()
# Gebruik
uploader = DatasetUploader('your-auth-token')
# Aanmaken vanuit CSV
result = uploader.create_from_csv(
'event_log.csv',
'Purchase Order Process',
'CaseID',
'Activity',
'Timestamp',
resource_col='User'
)
print(f"Dataset aangemaakt: {result['datasetId']}")
print(f"Cases: {result['caseCount']}, Events: {result['eventCount']}")
# Alle datasets lijst
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 mislukt: ${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();
}
}
// Gebruik (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,
'Mijn Dataset',
'CaseID',
'Activity',
'Timestamp',
{ resourceColumn: 'User' }
);
console.log(`Aangemaakt: ${result.datasetId}`);
console.log(`Cases: ${result.caseCount}, Events: ${result.eventCount}`);
});
Respons Velden
| Veld | Type | Beschrijving |
|---|---|---|
datasetId |
GUID | ID van de aangemaakte dataset |
caseCount |
integer | Aantal unieke geïmporteerde cases |
eventCount |
integer | Totaal aantal geïmporteerde events |
invalidValueCount |
integer | Aantal foutieve waarden tegengekomen |
skippedRowsCount |
integer | Aantal rijen overgeslagen vanwege fouten |
errors |
array | Lijst met foutmeldingen |
rowIssues |
array | Gedetailleerde informatie over rijniveau problemen |
statusCode |
integer | HTTP statuscode |
Best Practices
- Valideer Kolomnamen: Zorg dat kolomnamen exact overeenkomen (case-sensitive)
- Controleer Cultuurinstellingen: Gebruik passende cultuur voor datum-/getalformaten
- Omgaan met Grote Bestanden: Monitor upload voortgang bij bestanden tot 1GB
- Bekijk Rij Problemen: Controleer
rowIssuesarray voor data kwaliteitsproblemen - Unieke Dataset Namen: Dataset namen moeten uniek zijn binnen een project