Skip to Content
AppSDKBeispieleÜbersicht

Beispiele

Vollständige Beispiele und Use Cases für das App-SDK.

Das AppTemplate enthält ein vollständiges Starter-Projekt mit Engine, Authority, BPMN-Prozessen und AppSDK-Beispielen. Besonders empfehlenswert:

Quick Examples

User Task Liste mit Server Component

app/tasks/page.tsx
import { getWaitingUserTasks } from '@5minds/processcube_app_sdk/server'; import Link from 'next/link'; export default async function TasksPage() { const { userTasks } = await getWaitingUserTasks(); return ( <div> <h1>Meine Aufgaben</h1> {userTasks.length === 0 ? ( <p>Keine wartenden Aufgaben</p> ) : ( <ul> {userTasks.map((task) => ( <Link key={task.flowNodeInstanceId} href={`/tasks/${task.flowNodeInstanceId}`}> <li> <strong>{task.flowNodeName}</strong> — {task.processName} </li> </Link> ))} </ul> )} </div> ); }

Prozess starten mit Server Action

app/start/page.tsx
import { startProcess } from '@5minds/processcube_app_sdk/server'; import { redirect } from 'next/navigation'; export default function StartPage() { async function handleStart(formData: FormData) { 'use server'; const result = await startProcess({ processModelId: 'OrderProcess', startEventId: 'StartEvent_1', initialToken: { orderId: formData.get('orderId') }, }); redirect(`/processes/${result.correlationId}`); } return ( <form action={handleStart}> <input name="orderId" placeholder="Bestell-Nr." required /> <button type="submit">Prozess starten</button> </form> ); }

External Task Handler

app/send_email/external_task.ts
import { ExternalTaskConfig } from '@5minds/processcube_app_sdk/server'; export const config: ExternalTaskConfig = { lockDuration: 5000, maxTasks: 3, }; interface EmailPayload { recipient: string; subject: string; body: string; } export default async function sendEmail(payload: EmailPayload) { await fetch('https://api.example.com/send', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); return { success: true, sentAt: new Date().toISOString() }; }

Authority Client in External Task

app/onboarding/external_task.ts
import { AuthorityClient } from '@5minds/processcube_app_sdk/server'; export default async function onboardUser(payload: { email: string; role: string }) { const authority = new AuthorityClient(); await authority.addGroup(payload.email, 'Registered-Users'); await authority.addScope(payload.email, 'app_access'); await authority.updateClaim(payload.email, 'role', payload.role); return { onboarded: true }; }

Weiterführende Dokumentation