Skip to Content

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:

FeldTypBeschreibung
keystringDer eindeutige Prozess-Key (z.B. "OrderProcess")
namestringDer Anzeigename des Prozesses
descriptionstringBeschreibung des Prozesses (optional)
versionnumberDie Version des Prozessmodells
xmlstringDer BPMN-XML-Inhalt
createdAtDateErstellungszeitpunkt

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