Zum Inhalt springen
SharePoint Lösungen & Produkte

SharePoint-Warteliste für Veranstaltungen in der Buchungsapp

So haben wir die Warteliste in Smarter Event Booking umgesetzt: automatisches Nachrücken, E-Mail-Benachrichtigungen und einfache Verwaltung in SharePoint.

Wir haben euch bereits unsere Applikation für Veranstaltungs‑Buchungen vorgestellt. Sind bereits alle Plätze für einen Termin einer Veranstaltung vergeben, haben wir nun die Funktionalität für eine Warteliste hinzugefügt. In diesem Beitrag möchten wir euch genauere Einblicke in die Umsetzung von Smarter Event Booking geben.

Anmelden zur Veranstaltungs-Warteliste

Ein Benutzer hat die Möglichkeit, sich zu einem Termin einer Veranstaltung anzumelden. Jeder Termin hat jedoch eine fixe Teilnehmerzahl. Wurden bereits alle Plätze gebucht, stellen wir dies mit einem Hinweis beim Termin dar. Ein Benutzer hat dann die Möglichkeit, sich auf eine Warteliste für diesen Termin setzen zu lassen. Dafür klickt er einfach auf den Button „Auf die Warteliste“.

SharePoint-Veranstaltungs-Warteliste: Alle Plätze belegt – Hinweis im Termin

Wenn sich dann ein Benutzer, welcher den Termin gebucht hat, abmeldet, rückt der nächste Benutzer von der Warteliste automatisch nach. Er ist damit für den Termin angemeldet und wird per E-Mail verständigt.

Außerdem hat ein Benutzer die Möglichkeit, sich wieder von der Warteliste abzumelden.

SharePoint-Veranstaltungs-Warteliste: Abmelden vom Eintrag auf der Warteliste

Technische Umsetzung

Für die Warteliste haben wir ein neues Feld „Warteliste“ vom Typ „Mehrere Textzeilen“ in der Terminliste hinzugefügt. Dort speichern wir die ID, den Namen und die E‑Mail‑Adresse der Benutzer für die Warteliste im JSON‑Format.

Beispiel:

[{"id":13,"title":"Verena Schönleitner","email":"verena@openinnovationhub.onmicrosoft.com"}]

Meldet sich ein Benutzer für die Warteliste an, fügen wir ihn in das Feld „Warteliste“ ein.

let waitingList: IAttendee[] = listItem.Warteliste 
  ? (JSON.parse(listItem.Warteliste) as IAttendee[])
  : [];

const updatedListItem = await sp.web.lists
  .getByTitle(this.eventDateList)
  .items.getById(eventDate.id)
  .update({
    Warteliste: this.serializeWaitingList([...waitingList, attendee]),
  });

Meldet sich ein Benutzer ab, der den Termin gebucht hat, lesen wir die Warteliste aus. Wir entfernen den ersten Benutzer der Warteliste und fügen ihn zu den Teilnehmern hinzu. Den Benutzer informieren wir darüber per E‑Mail.

let existingAttendeeIds = listItem.Teilnehmer !== undefined 
  ? listItem.Teilnehmer.filter((t) => t.Id !== attendee.id)
  : [];

const waitingList: IAttendee[] = listItem.Warteliste !== undefined 
  ? (JSON.parse(listItem.Warteliste) as IAttendee[])
  : [];

// Moves the first attendee from waiting list up
let waitingListAttendeeElevated = false;
let waitingListAttendee: IAttendee | undefined;
if (waitingList && waitingList.length > 0) {
  waitingListAttendee = waitingList.shift();
  existingAttendeeIds = [...existingAttendeeIds, waitingListAttendee.id];
  waitingListAttendeeElevated = true;
}

const updatedListItem = await sp.web.lists
  .getByTitle(this.eventDateList)
  .items.getById(eventDate.id)
  .update({
    TeilnehmerId: { results: [...existingAttendeeIds] },
    Warteliste: this.serializeWaitingList(waitingList),
  });

// Send mail if attendee moves up from waiting list
if (waitingListAttendeeElevated && waitingListAttendee) {
  await this.sendEmailToAttendee(event, updatedEventDate, waitingListAttendee);
}

Fazit

Die integrierte Warteliste sorgt dafür, dass freie Plätze automatisch nachbesetzt werden und alle Beteiligten informiert bleiben. Habt ihr Interesse an weiteren Details zu unserer SharePoint‑Veranstaltungs‑Warteliste? Dann nehmt gerne Kontakt mit uns auf.

Kontakt aufnehmen

  • JavaScript
  • O365
  • SharePoint
  • Smarter Event Booking
  • Veranstaltungsmanagement

Ähnliche Beiträge

Smarter Image Map jetzt im Microsoft Marketplace
Interaktive Prozesslandkarte mit fünf verknüpften Prozessschritten in Smarter Image Map

Smarter Image Map jetzt im Microsoft Marketplace

Smarter Image Map macht Prozesslandkarten, Lagepläne und Diagramme in SharePoint interaktiv – mit Hotspots, Tooltips und visuellen Drilldowns.

Weiterlesen
SharePoint-Projekte archivieren: Abnahme und Rollout
Archive Workspace mit SharePoint-Sites, Archivstatus, Dateimengen und Reports

SharePoint-Projekte archivieren: Abnahme und Rollout

So werden abgeschlossene SharePoint-Projekte fachlich freigegeben, im eigenen Azure archiviert, kontrolliert abgenommen und sicher ausgerollt.

Weiterlesen
SharePoint-Archivierung: 7 Engineering-Learnings
Archive Workspace mit SharePoint-Sites, Archivstatus, Dateimengen und Reports

SharePoint-Archivierung: 7 Engineering-Learnings

Was wir bei der Entwicklung eines kundenkontrollierten SharePoint-Archivs über Discovery, Retries, Parallelität, Integrität und Reports gelernt haben.

Weiterlesen

Fragen zu diesem Thema?

Wir unterstützen Sie gerne bei der Umsetzung in Ihrer Umgebung.