Skip to Content

User Tasks

User Tasks ermöglichen die Interaktion mit Benutzern in BPMN-Prozessen.

Grundlegendes Beispiel

import { Client } from '@processcube/client'; const client = new Client('http://localhost:8000'); async function handleUserTasks() { // Alle wartenden User Tasks abrufen const userTasks = await client.getUserTasks({ processKey: 'OrderProcess', state: 'suspended', }); const task = userTasks[0]; console.log(`User Task: ${task.id}`); console.log(`Name: ${task.name}`); console.log(`Form Fields: ${JSON.stringify(task.formFields)}`); // User Task abschließen const result = { approved: true, comment: 'Genehmigt durch Manager', }; await client.finishUserTask(task.id, result); console.log('User Task abgeschlossen'); } handleUserTasks().catch(console.error);

User Tasks abfragen

// Nach Prozess-Instanz filtern const tasksForInstance = await client.getUserTasks({ processInstanceId: 'instance-123', }); // Nach Prozess-Key filtern const tasksForProcess = await client.getUserTasks({ processKey: 'OrderProcess', state: 'suspended', });

Formular-Daten verarbeiten

const userTasks = await client.getUserTasks({ processKey: 'ApprovalProcess', }); const task = userTasks[0]; // Form Fields anzeigen task.formFields.forEach((field) => { console.log(`${field.id}: ${field.label} (${field.type})`); }); // Ergebnis erstellen const result = {}; task.formFields.forEach((field) => { result[field.id] = getValueFromUser(field); // Implementierung abhängig von UI }); await client.finishUserTask(task.id, result);

Best Practices

try { const tasks = await client.getUserTasks({ processKey: 'OrderProcess', }); if (tasks.length === 0) { console.log('Keine wartenden User Tasks'); return; } for (const task of tasks) { console.log(`Verarbeite Task: ${task.name}`); await processUserTask(task); } } catch (error) { console.error('Fehler bei User Tasks:', error.message); }

Nächste Schritte