Skip to Content
DocsClientsTypeScriptProcessesProzess-Verwaltung

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:

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 aktuell
  • finished - Prozess wurde erfolgreich beendet
  • terminated - Prozess wurde manuell beendet
  • error - 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