Skip to Content

User Tasks

Funktionen zur Abfrage, Reservierung und Abschluss von User Tasks.

Blocking vs. Non-Blocking: Einige Funktionen blocken, bis ein Event eintritt:

FunktionBlockiert?Use-Case
waitForUserTask()JaServer-seitig auf nächsten Task warten (Event-Sub)
getWaitingUserTasks()NeinPolling, UI-Abfragen, Server Components
getUserTasks()NeinAllgemeine Abfrage mit vollem Query-Objekt
import { getWaitingUserTasks, getUserTasks, getWaitingUserTasksByProcessInstanceId, getWaitingUserTaskByFlowNodeInstanceId, waitForUserTask, finishUserTaskAndGetNext, reserveUserTask, cancelReservedUserTask, } from '@5minds/processcube_app_sdk/server';

getWaitingUserTasks

Gibt alle wartenden User Tasks zurück.

const { userTasks, totalCount } = await getWaitingUserTasks();

getWaitingUserTasksByProcessInstanceId

Filtert wartende User Tasks nach Prozessinstanz.

const { userTasks } = await getWaitingUserTasksByProcessInstanceId('process-instance-id'); // Auch mit Array von IDs const { userTasks: multiple } = await getWaitingUserTasksByProcessInstanceId([ 'id-1', 'id-2', ]);

getWaitingUserTaskByFlowNodeInstanceId

Gibt eine einzelne wartende User Task nach FlowNode-Instanz-ID zurück (oder null).

const userTask = await getWaitingUserTaskByFlowNodeInstanceId('flow-node-instance-id');

waitForUserTask

Wartet auf die nächste wartende User Task. Falls bereits eine existiert, wird sie sofort zurückgegeben.

// Auf beliebige User Task warten const userTask = await waitForUserTask(); // Mit Filter const filtered = await waitForUserTask({ processInstanceId: 'process-instance-id', flowNodeId: 'UserTask_Approve', });

finishUserTaskAndGetNext

Schließt eine User Task ab und gibt die nächste wartende User Task zurück (falls vorhanden).

const nextTask = await finishUserTaskAndGetNext( 'flow-node-instance-id', { processInstanceId: 'process-instance-id' }, { approved: true } );

reserveUserTask / cancelReservedUserTask

Reserviert eine User Task für einen bestimmten Benutzer oder hebt die Reservierung auf.

import { reserveUserTask, cancelReservedUserTask, getIdentity, } from '@5minds/processcube_app_sdk/server'; const identity = await getIdentity(); await reserveUserTask(identity, 'flow-node-instance-id'); // Reservierung aufheben await cancelReservedUserTask(identity, 'flow-node-instance-id');

Weitere Funktionen

FunktionBeschreibung
getUserTasks(query, options?)Generische Abfrage mit vollem Query-Objekt
getWaitingUserTasksByFlowNodeId(flowNodeId, options?)Filter nach BPMN-FlowNode-ID
getWaitingUserTasksByCorrelationId(correlationId, options?)Filter nach Correlation-ID
getReservedUserTasksByIdentity(identity?, options?)Vom aktuellen User reservierte Tasks
getAssignedUserTasksByIdentity(identity?, options?)Dem aktuellen User zugewiesene Tasks

Identity-Parameter

Alle User-Task-Funktionen unterstützen einen identity-Parameter:

WertVerhalten
true (Default)Nutzt die implizite User-Identity aus der NextAuth-Session
falseAnonymer Zugriff — kein Auth-Header. Voraussetzung: Engine muss allowAnonymousRootAccess: true haben.
Identity-ObjektExplizite Identity (z.B. von getServerIdentity() oder getIdentity())

Ein Praxis-Beispiel für User Tasks mit dem AppTemplate findest du unter AppTemplate → UserTasks.