Prozess-Verwaltung
Der TypeScript Client bietet umfassende Funktionen zur Verwaltung von BPMN-Prozessen in der ProcessCube® Engine. Diese Seite gibt einen Überblick über die verfügbaren Funktionen.
Überblick
Mit dem TypeScript Client können Sie:
- Prozesse auflisten - Alle deployten Prozessmodelle abrufen
- Prozesse deployen - BPMN-Diagramme zur Engine hochladen
- Prozesse starten - Neue Prozess-Instanzen erstellen
- Prozess-Instanzen abfragen - Laufende und beendete Instanzen suchen
- Prozess-Instanzen beenden - Laufende Instanzen terminieren
- Prozess-Instanzen neu starten - Terminierte Instanzen wiederholen
Workflow
Ein typischer Workflow mit dem Client sieht so aus:
1. Prozess deployen
import { Client } from '@processcube/client';
import * as fs from 'fs';
const client = new Client('http://localhost:8000');
// BPMN-Diagramm laden
const bpmnXml = fs.readFileSync('./my-process.bpmn', 'utf-8');
// Zur Engine deployen
await client.deployProcess(bpmnXml, { overwriteExisting: true });2. Prozess starten
// Prozess starten mit Eingabeparametern
const result = await client.startProcess('MyProcessKey', {
customerName: 'Max Mustermann',
orderAmount: 1500,
});
console.log(`Prozess-Instanz ID: ${result.processInstanceId}`);3. Prozess-Instanz überwachen
// Prozess-Instanz abfragen
const instances = await client.getProcessInstances({
processKey: 'MyProcessKey',
state: 'running',
});
instances.forEach((instance) => {
console.log(`Instanz ${instance.processInstanceId}: ${instance.state}`);
});Wichtige Konzepte
Prozessmodell vs. Prozess-Instanz
- Prozessmodell: Das BPMN-Diagramm, das zur Engine deployed wird (die “Vorlage”)
- Prozess-Instanz: Eine konkrete Ausführung eines Prozessmodells (die “Ausführung”)
Ein Prozessmodell kann mehrmals gestartet werden, wodurch jeweils eine neue Prozess-Instanz erstellt wird.
Process Key vs. Process Model ID
- Process Key: Der eindeutige Name des Prozesses (z.B.
"OrderProcess") - Process Model ID: Die technische ID in der Engine (z.B.
"OrderProcess_abc123")
In der Regel verwenden Sie den Process Key zum Starten von Prozessen.
Prozess-Status
Prozess-Instanzen können verschiedene Status haben:
running- Prozess läuft aktuellfinished- Prozess wurde erfolgreich beendetterminated- Prozess wurde manuell beendeterror- Prozess ist in einem Fehlerzustand
Best Practices
Fehlerbehandlung
Behandeln Sie Fehler beim Starten und Verwalten von Prozessen:
try {
const result = await client.startProcess('MyProcess');
console.log(`Prozess gestartet: ${result.processInstanceId}`);
} catch (error) {
if (error.code === 'PROCESS_NOT_FOUND') {
console.error('Prozess existiert nicht');
} else {
console.error('Fehler beim Starten:', error.message);
}
}Prozess-Instanzen filtern
Nutzen Sie Query-Parameter, um gezielt nach Instanzen zu suchen:
// Nur laufende Instanzen eines bestimmten Prozesses
const runningInstances = await client.getProcessInstances({
processKey: 'OrderProcess',
state: 'running',
});
// Instanzen nach Zeitraum filtern
const recentInstances = await client.getProcessInstances({
startedAfter: new Date('2025-01-01'),
startedBefore: new Date(),
});Deployment-Strategien
Überschreiben erlauben
await client.deployProcess(bpmnXml, { overwriteExisting: true });Dies überschreibt das existierende Prozessmodell mit der gleichen Version.
Neue Version erstellen
await client.deployProcess(bpmnXml, { overwriteExisting: false });Dies erstellt eine neue Version des Prozessmodells.
Empfehlung: Verwenden Sie overwriteExisting: true nur in Entwicklungsumgebungen. In Produktion sollten Sie neue Versionen erstellen.
Nächste Schritte
- Prozesse auflisten - Alle deployten Prozesse anzeigen
- Prozesse deployen - BPMN-Diagramme hochladen
- Prozesse starten - Neue Instanzen erstellen
- FlowNode-Instanzen - Detaillierte Ausführungshistorie anzeigen
- Events senden - Mit laufenden Prozessen kommunizieren