Skip to Content
EngineErweiterungenUser Task Assignment

User Task Assignment

Die User Task Assignment Extension ermoeglicht es, die Zuweisung von User Tasks an Benutzer durch eigene Logik zu steuern.

Funktionsweise

Standardmaessig uebernimmt die Engine die Zuweisung von User Tasks basierend auf BPMN-Lanes. Mit dieser Extension kann diese Logik ueberschrieben werden.

Grundlegendes Beispiel

import { Engine, UserTaskInstance } from '@5minds/processcube_engine_sdk'; export function onLoad(engineObject: Engine) { engineObject.registerUserTaskAssignmentResolver( (userTaskInstance: UserTaskInstance): Array<string> => { return ['defaultUser']; } ); }

Zuweisung basierend auf Prozessdaten

Der Resolver erhaelt die vollstaendige UserTaskInstance und kann anhand der Prozessdaten entscheiden:

import { Engine, UserTaskInstance } from '@5minds/processcube_engine_sdk'; export function onLoad(engineObject: Engine) { engineObject.registerUserTaskAssignmentResolver( (userTaskInstance: UserTaskInstance): Array<string> => { const processModelId = userTaskInstance.processModelId; const flowNodeId = userTaskInstance.flowNodeId; if (processModelId === 'Approval_Process' && flowNodeId === 'ManagerApproval') { return ['manager1', 'manager2']; } if (processModelId === 'Support_Process') { return ['support-team']; } return ['defaultUser']; } ); }

Zuweisung ueber externe Datenquelle

Fuer dynamische Zuweisungen kann der Resolver auch externe Datenquellen abfragen:

import { Engine, UserTaskInstance } from '@5minds/processcube_engine_sdk'; export function onLoad(engineObject: Engine) { engineObject.registerUserTaskAssignmentResolver( async (userTaskInstance: UserTaskInstance): Promise<Array<string>> => { const users = await engineObject.iam.getUsersForClaim( `can_handle:${userTaskInstance.flowNodeId}` ); return users.map((user) => user.id); } ); }

Der Resolver wird fuer jeden User Task aufgerufen. Stellen Sie sicher, dass die Logik performant ist, insbesondere bei externen Datenquellen.

Parameter

ParameterTypBeschreibung
userTaskInstance.processModelIdstringID des BPMN-Prozessmodells
userTaskInstance.flowNodeIdstringID des User Task FlowNodes
userTaskInstance.processInstanceIdstringID der Prozessinstanz
RueckgabeArray<string>Benutzernamen, die den Task bearbeiten duerfen