Prozesse auflisten
Diese Seite zeigt, wie Sie alle deployten Prozessmodelle aus der ProcessCube® Engine abrufen können.
Grundlegendes Beispiel
import { Client } from '@processcube/client';
const client = new Client('http://localhost:8000');
async function listProcesses() {
console.log('Rufe alle verfügbaren Prozessmodelle ab');
const processes = await client.getProcesses();
processes.forEach((processModel) => {
console.log('Prozessmodell:', processModel.name, processModel.key);
});
console.log('Gesamt:', processes.length, 'Prozesse');
}
listProcesses()
.then(() => console.log('Fertig!'))
.catch((error) => console.log('Fehler aufgetreten:', error.message));Rückgabewerte
Die getProcesses() Methode gibt ein Array von Prozessmodellen zurück. Jedes Prozessmodell enthält:
| Feld | Typ | Beschreibung |
|---|---|---|
key | string | Der eindeutige Prozess-Key (z.B. "OrderProcess") |
name | string | Der Anzeigename des Prozesses |
description | string | Beschreibung des Prozesses (optional) |
version | number | Die Version des Prozessmodells |
xml | string | Der BPMN-XML-Inhalt |
createdAt | Date | Erstellungszeitpunkt |
Prozessmodelle filtern
Sie können die Liste der Prozessmodelle nach verschiedenen Kriterien filtern:
Nach Process Key
const processes = await client.getProcesses();
// Einen bestimmten Prozess finden
const orderProcess = processes.find((p) => p.key === 'OrderProcess');
if (orderProcess) {
console.log(`Gefunden: ${orderProcess.name} (Version ${orderProcess.version})`);
}Nach Namen
const processes = await client.getProcesses();
// Prozesse nach Namen filtern
const matchingProcesses = processes.filter((p) =>
p.name.toLowerCase().includes('order')
);
matchingProcesses.forEach((process) => {
console.log(process.name);
});Nach Erstellungsdatum
const processes = await client.getProcesses();
// Prozesse der letzten 24 Stunden
const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000);
const recentProcesses = processes.filter((p) => p.createdAt > yesterday);
console.log(`${recentProcesses.length} Prozesse in den letzten 24 Stunden deployed`);Prozessmodell-Details anzeigen
const processes = await client.getProcesses();
processes.forEach((process) => {
console.log('─────────────────────────────');
console.log(`Name: ${process.name}`);
console.log(`Key: ${process.key}`);
console.log(`Version: ${process.version}`);
console.log(`Beschreibung: ${process.description || 'Keine Beschreibung'}`);
console.log(`Erstellt: ${process.createdAt.toLocaleString()}`);
});Best Practices
Caching von Prozesslisten
Wenn Sie die Prozessliste häufig benötigen, können Sie sie cachen:
class ProcessCache {
private processes: ProcessModel[] = [];
private lastUpdate: Date | null = null;
private cacheTimeout = 5 * 60 * 1000; // 5 Minuten
async getProcesses(client: Client): Promise<ProcessModel[]> {
const now = new Date();
if (
!this.lastUpdate ||
now.getTime() - this.lastUpdate.getTime() > this.cacheTimeout
) {
this.processes = await client.getProcesses();
this.lastUpdate = now;
}
return this.processes;
}
invalidate() {
this.lastUpdate = null;
}
}
const cache = new ProcessCache();
// Prozesse aus Cache abrufen
const processes = await cache.getProcesses(client);
// Nach Deployment Cache invalidieren
await client.deployProcess(bpmnXml);
cache.invalidate();Fehlerbehandlung
try {
const processes = await client.getProcesses();
if (processes.length === 0) {
console.log('Keine Prozesse deployed');
return;
}
processes.forEach((p) => console.log(p.name));
} catch (error) {
console.error('Fehler beim Abrufen der Prozesse:', error.message);
throw error;
}Prozessliste formatieren
const processes = await client.getProcesses();
// Als Tabelle ausgeben
console.table(
processes.map((p) => ({
Name: p.name,
Key: p.key,
Version: p.version,
Erstellt: p.createdAt.toLocaleDateString(),
}))
);Praktische Anwendungen
Verfügbarkeit prüfen
Prüfen Sie, ob ein bestimmter Prozess deployed ist:
async function isProcessDeployed(client: Client, processKey: string): Promise<boolean> {
const processes = await client.getProcesses();
return processes.some((p) => p.key === processKey);
}
if (await isProcessDeployed(client, 'OrderProcess')) {
console.log('OrderProcess ist deployed');
} else {
console.log('OrderProcess muss erst deployed werden');
}CLI-Tool zum Auflisten
import { Client } from '@processcube/client';
import * as Table from 'cli-table3';
async function listProcessesCli() {
const client = new Client(process.env.ENGINE_URL || 'http://localhost:8000');
const processes = await client.getProcesses();
const table = new Table({
head: ['Name', 'Key', 'Version', 'Erstellt'],
colWidths: [30, 30, 10, 20],
});
processes.forEach((p) => {
table.push([
p.name,
p.key,
p.version.toString(),
p.createdAt.toLocaleDateString(),
]);
});
console.log(table.toString());
console.log(`\nGesamt: ${processes.length} Prozesse`);
}
listProcessesCli().catch(console.error);Tipp: Verwenden Sie getProcesses() vor dem Starten eines Prozesses, um sicherzustellen, dass der Prozess deployed ist.
Nächste Schritte
- Prozesse deployen - BPMN-Diagramme zur Engine hochladen
- Prozesse starten - Neue Prozess-Instanzen erstellen
- Getting Started - Client erstellen und konfigurieren