Beispielprozess: Greeting
Der BPMN-Prozess SampleWithAppSDK_Process demonstriert den vollständigen Ablauf einer AppSDK-Anwendung: Benutzereingabe, serverseitige Verarbeitung und Ergebnisanzeige.
Prozessablauf
Start → UserTask (Eingabe) → External Task (Verarbeitung) → UserTask (Ergebnis) → EndeDetaillierter Durchlauf
Schritt für Schritt
1. Prozess starten
Der Benutzer klickt “Prozess starten” — die Server Action startet eine neue Prozessinstanz:
await engine().processModels.startProcessInstance({
processModelId: 'SampleWithAppSDK_Process',
startEventId: 'StartEvent_1',
initialToken: {},
});2. UserTask: Begrüßung eingeben
Die Engine erstellt einen UserTask. Das Frontend erkennt ihn per Polling (alle 3 Sekunden) und zeigt eine Task-Karte an. Der Benutzer klickt auf den Task und sieht ein Formular mit dem Feld greeting.
Nach Eingabe und Klick auf “Abschließen”:
await engine().userTasks.finishUserTask(flowNodeInstanceId, {
greeting: 'Hallo ProcessCube!'
});3. External Task: Verarbeitung
Die Engine erstellt einen External Task mit Topic appsdk_greeting. Der automatisch registrierte Worker verarbeitet ihn:
export default async function handleExternalTask(payload: any) {
const greeting = payload?.greeting || 'Hallo';
return {
greeting_back: `Antwort auf "${greeting}": Schoen, von dir zu hoeren!`
};
}4. UserTask: Ergebnis anzeigen
Die Engine erstellt einen zweiten UserTask mit dem Ergebnis. Das Feld greeting_back ist vorausgefüllt. Der Benutzer sieht die Antwort und schließt den Task ab.
5. Prozess beendet
Nach dem zweiten UserTask erreicht der Prozess das End Event.
BPMN-Elemente
| Element | ID | Beschreibung |
|---|---|---|
| Start Event | StartEvent_1 | Prozess-Einstieg |
| UserTask 1 | — | Begrüßung eingeben (Feld: greeting) |
| Service Task | — | External Task (Topic: appsdk_greeting) |
| UserTask 2 | — | Ergebnis anzeigen (Feld: greeting_back) |
| End Event | — | Prozess-Ende |
Nächste Schritte
- BPMN-Prozesse — Alle mitgelieferten Beispielprozesse
- UserTasks — UserTask-Implementierung im Detail
- External Tasks — Worker-Entwicklung im Detail