Skip to Content

Server Actions

Server Actions sind für den Aufruf aus Client Components oder Formularen gedacht.

import { startProcess, finishUserTask, finishManualTask, finishUntypedTask, finishTask, navigateToUrl, } from '@5minds/processcube_app_sdk/server';

Verfügbare Actions

ActionBeschreibung
startProcess(...)Startet eine Prozessinstanz (Argumente wie Engine-Client)
finishUserTask(flowNodeInstanceId, result, identity?)Schließt eine User Task ab
finishManualTask(flowNodeInstanceId, identity?)Schließt eine Manual Task ab
finishUntypedTask(flowNodeInstanceId, identity?)Schließt eine generische bpmn:Task ab
finishTask(flowNodeInstanceId, flowNodeType)Universelle Finish-Funktion (erkennt Task-Typ)
navigateToUrl(url)Server-seitige Weiterleitung via Next.js redirect()

Beispiel: Server Action in einem Formular

app/tasks/page.tsx
import { finishUserTask, getWaitingUserTasks } from '@5minds/processcube_app_sdk/server'; import { revalidatePath } from 'next/cache'; export default async function TasksPage() { const { userTasks } = await getWaitingUserTasks(); async function handleFinish(flowNodeInstanceId: string) { 'use server'; await finishUserTask(flowNodeInstanceId, { approved: true }); revalidatePath('/tasks'); } return ( <ul> {userTasks.map((task) => ( <li key={task.flowNodeInstanceId}> {task.flowNodeName} <form action={handleFinish.bind(null, task.flowNodeInstanceId)}> <button type="submit">Abschließen</button> </form> </li> ))} </ul> ); }

Unterschied zu direkten Funktionen

Server Actions (startProcess, finishUserTask, …) sind Wrapper um die direkten Funktionen (getWaitingUserTasks, getProcessInstanceById, …), die speziell für den Aufruf aus Client Components optimiert sind:

  • Sie nutzen 'use server' intern
  • Sie können direkt in <form action={...}> verwendet werden
  • Sie behandeln die Identity automatisch