User Tasks anzeigen und abschließen
Eine UserTaskInstance ist eine konkrete Aufgabe im laufenden Prozess. Für eine Oberfläche brauchst du die ausgewertete userTaskConfig und die flowNodeInstanceId der Aufgabe.
Alle Felder, verschachtelten Konfigurationen und das JSON Schema stehen im öffentlichen UserTaskInstance-Vertrag.
1. Wartende Aufgaben laden
import { DataModels, EngineClient } from '@5minds/processcube_engine_client';
const client = new EngineClient('http://localhost:10560');
const { userTasks, totalCount } = await client.userTasks.query({
processInstanceId: 'pi-1042',
state: DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended,
});
const task = userTasks[0];UserTaskList enthält userTasks und totalCount. Der folgende JSON-Ausschnitt zeigt nur die für das Beispiel relevanten Felder einer Aufgabe; eine echte Instanz enthält weitere gemeinsame FlowNodeInstance-Felder:
{
"flowNodeInstanceId": "task-1042",
"processInstanceId": "pi-1042",
"state": "suspended",
"userTaskConfig": {
"description": "Bestellung prüfen",
"formFields": [
{ "id": "freigabe", "type": "boolean", "label": "Freigeben?" }
]
}
}flowNodeInstanceId brauchst du beim Abschluss. userTaskConfig.formFields enthält die verfügbaren Eingabefelder mit id, type, label und optional defaultValue, enumValues oder Formular-Konfiguration. actualOwnerId ist nur gesetzt, wenn die Aufgabe reserviert ist. assignedUserIds kann die zugewiesenen Benutzer enthalten.
2. Formularwerte senden
if (!task) throw new Error('Keine wartende User Task gefunden');
const result: DataModels.FlowNodeInstances.UserTaskResult = {
freigabe: true,
};
await client.userTasks.finishUserTask(task.flowNodeInstanceId, result);Die Schlüssel im UserTaskResult sind die IDs der Formularfelder, hier freigabe. Die Werte stammen aus deiner Oberfläche. finishUserTask gibt Promise<void> zurück; es liefert kein aktualisiertes Task-Objekt. Wenn du den neuen Zustand brauchst, frage die Instanz danach erneut ab.
Wenn eine Aufgabe vor dem Abschluss übernommen werden soll, stellt der Client reserveUserTaskInstance(identity, flowNodeInstanceId, actualOwnerId) und cancelUserTaskInstanceReservation(identity, flowNodeInstanceId) bereit. Diese Aufrufe benötigen eine Identität; siehe Authentifizierung.
Modell und Laufzeit nicht verwechseln
userTaskConfigModel enthält die modellierte Konfiguration. userTaskConfig enthält die Konfiguration nach Auswertung der Ausdrücke. Für die Anzeige einer wartenden Aufgabe beginne mit userTaskConfig; die BPMN-Modellstruktur beschreibt eine andere Ebene.
Sprachspezifische Aufrufe: TypeScript, Python, .NET.