RegisterParticipant
Kernflow für die Teilnehmer-Anmeldung
Beschreibung
Der RegisterParticipant-Flow ist das Herzstück des Anmeldeprozesses. Er verarbeitet alle neuen Teilnehmeranmeldungen, die über die Power App eingehen, und entscheidet basierend auf der verfügbaren Kapazität, ob ein Teilnehmer registriert oder auf die Warteliste gesetzt wird.
Was dieser Flow macht
- Queue verarbeiten: Neue Anmeldungen werden zunächst in einer Queue-Liste erfasst und dann vom Flow verarbeitet
- Kapazität prüfen: Vergleicht die aktuelle Teilnehmerzahl mit der maximalen Kapazität des Events
- Registrierung durchführen: Bei freien Plätzen wird der Teilnehmer mit Status "Registered" eingetragen
- Warteliste verwalten: Bei ausgebuchten Events wird der Teilnehmer auf die Warteliste gesetzt
- Kommunikation auslösen: Sendet Bestätigungsmail und erstellt Outlook-Kalendereintrag (nur bei Registrierung)
Entscheidungslogik:
Anmeldung eingetroffen → Kapazität prüfen →
Ja: Platz frei → Status "Registered" → E-Mail + Kalender
Nein: Event voll → Status "Waitlist" → Wartelisten-Info
Anmeldung eingetroffen → Kapazität prüfen →
Ja: Platz frei → Status "Registered" → E-Mail + Kalender
Nein: Event voll → Status "Waitlist" → Wartelisten-Info
Auslöser und Timing
- Der Flow wird durch einen SharePoint-Trigger alle 5 Minuten ausgelöst
- Er prüft die Anmeldungs-Queue auf neue Einträge
- Mehrere Anmeldungen werden sequentiell verarbeitet (FIFO-Prinzip)
Actions im Detail
Der Flow besteht aus 14 Actions, die in 4 logische Cluster unterteilt sind:
1. Initialisierung & Datenabfrage
Vorbereitung der Verarbeitung und Laden aller benötigten Daten:
- Arbeitsvariablen werden initialisiert für Item-ID, User-Listen-ID und Status
- Die Event-Details werden aus SharePoint geladen (Kapazität, aktuelle Teilnehmerzahl)
- Die aktuelle Anzahl registrierter Teilnehmer wird gezählt
- Diese Daten bilden die Grundlage für die Kapazitätsentscheidung
| Action | Typ | Beschreibung |
|---|---|---|
| Initialize_Mail_Loeschen | InitializeVariable | Flag für E-Mail-Verarbeitung |
| Initialize_varItemID | InitializeVariable | Speichert ID des Eintrags |
| Initialize_variable-_varUserListId | InitializeVariable | Speichert User-Listen-ID |
| Initialize_variable-varRegisteredColumn | InitializeVariable | Speichert Registrierungsstatus |
| Get_item | SharePoint GetItem | Lädt Event-Details (Kapazität etc.) |
| Get_items | SharePoint GetItems | Zählt aktuelle Registrierungen |
2. Kapazitätsprüfung & Entscheidung
Die zentrale Geschäftslogik des Flows - Entscheidung über Registrierung oder Warteliste:
- Die Anzahl registrierter Teilnehmer wird mit der maximalen Kapazität verglichen
- Ist Kapazität verfügbar (Registrierte < Maximum), wird der Teilnehmer registriert
- Ist das Event ausgebucht, wird der Teilnehmer auf die Warteliste gesetzt
- Der Status wird entsprechend als "Registered" oder "Waitlist" gespeichert
| Action | Typ | Beschreibung |
|---|---|---|
| Condition (Kapazität) | If | Prüft: Registrierte < Kapazität? |
| Update_item (Registered) | SharePoint PatchItem | Erstellt Eintrag mit Status "Registered" |
| Update_item (Waitlist) | SharePoint PatchItem | Erstellt Eintrag mit Status "Waitlist" |
3. E-Mail & Kalender-Integration
Benachrichtigung des Teilnehmers und Outlook-Integration (nur bei erfolgreicher Registrierung):
- Bei Registrierung wird der Child Flow für Outlook-Kalender aufgerufen
- Der Teilnehmer wird zum bestehenden Event-Termin hinzugefügt
- Eine Bestätigungsmail wird über die Shared Mailbox versendet
- Bei Warteliste erhält der Teilnehmer eine andere E-Mail mit seiner Position
| Action | Typ | Beschreibung |
|---|---|---|
| Run_a_Child_Flow (Outlook) | Workflow | Ruft RegisterOutlookEventParticipant auf |
| Run_a_Child_Flow (Mail) | Workflow | Ruft SendMailSharedMailbox auf |
4. Batch-Verarbeitung & Fehlerbehandlung
Strukturierung für mehrere gleichzeitige Anmeldungen und robuste Fehlerbehandlung:
- Eine Apply_to_each-Schleife verarbeitet alle neuen Anmeldungen in der Queue
- Scope-Blöcke gruppieren zusammengehörige Actions für bessere Fehlerbehandlung
- Bei Fehlern in einem Durchlauf werden andere Anmeldungen nicht beeinträchtigt
- Jede Anmeldung wird unabhängig voneinander verarbeitet
| Action | Typ | Beschreibung |
|---|---|---|
| Apply_to_each | Foreach | Iteriert über alle neuen Anmeldungen |
| Scope | Scope | Gruppiert Actions für Fehlerbehandlung |
Abhängigkeiten
| Ruft auf | Wird aufgerufen von |
|---|---|
|
|
Zusammenspiel mit anderen Flows
| Szenario | Beteiligte Flows |
|---|---|
| Normale Anmeldung | RegisterParticipant → RegisterOutlookEventParticipant → SendMailSharedMailbox |
| Warteliste + Nachrücken | RegisterParticipant (Waitlist) → DeregisterParticipant (anderer User) → RegisterParticipant (Promote) |