Smarter Business Solutions Logo
SMARTER Business Solutions
SharePoint Entwicklung SharePoint Lösungen & Produkte

SharePoint-Benachrichtigung für neue Bibliothekseinträge

Unsere SharePoint-App erkennt neue Bibliothekseinträge, signalisiert offene Aufgaben per Badge und verschlankt REST-Abfragen im fünfminütigen Rhythmus.

5 Min Read

Im vorigen Beitrag zu unserer Dokumentenverwaltung-Applikation Suchfunktionalität für SharePoint Dokumentenverwaltung Applikation haben wir euch einen Einblick in unsere Lösung für die einfache Verwaltung von SharePoint-Bibliotheken gegeben. In diesem Beitrag stellen wir ein spezielles Feature vor: eine automatisierte Benachrichtigung, die neue Einträge in einer SharePoint-Bibliothek sofort sichtbar macht.

Benachrichtigung für neue Einträge in SharePoint-Bibliotheken

In unserer Dokumentenverwaltungs-App listen wir alle Einträge der angebundenen SharePoint-Bibliotheken auf. Eine davon bündelt die offenen Aufgaben für einzelne Benutzer. Damit niemand neue Aufgaben übersieht, zeigt ein rotes Badge direkt im Interface die Anzahl der offenen Tasks an. So erkennt der Benutzer auf den ersten Blick, welche Aufgaben noch auf Bearbeitung warten.

Benachrichtigung für neue Einträge einer SharePoint Bibliothek

Automatische Aktualisierung der Benachrichtigung

Bei Änderungen der offenen Aufgaben aktualisieren wir die Benachrichtigung automatisch in einem vordefinierten Intervall. Kommt etwa eine neue Aufgabe hinzu oder schließt der Benutzer eine Aufgabe ab, wird das Badge ohne manuellen Refresh aktualisiert. Dafür verwenden wir die JavaScript-Methode setInterval, die den Abruf alle 300.000 Millisekunden (fünf Minuten) ausführt.

JavaScript-Intervall für Badge-Updates

private loadOpenTasksCount() {
  // First call without delay
  this.executeLoadOpenTasksCountCommand();

  // Check open tasks every five minutes
  this.interval = setInterval(this.executeLoadOpenTasksCountCommand, 300000);
}

Abfrage der Einträge der Liste

Für die Benachrichtigung führen wir eine REST-Abfrage auf SharePoint aus. Um die Performance hochzuhalten, selektieren wir nur die Feld-ID, filtern auf den angemeldeten Benutzer sowie den Aufgabenstatus und geben anschließend die Anzahl der Treffer an das Badge zurück.

REST-Abfrage mit Filterkriterien

public static getOpenTasksCount(): Promise<number> {
  const service: SPRestService = SPServiceProvider.GetCurrentSPService();
  const selectQuery = 'Id';
  const filterQuery = `AssignedToId eq ${AppContext.currentUser.id} and Status eq 'In Progress'`;

  return service
    .getListItemsByFilter(AppContext.taskList, selectQuery, filterQuery)
    .then(items => (items && items.value ? items.value.length : 0));
}

Service-Aufruf der SharePoint-Bibliothek

public getListItemsByFilter(list: IList, selectQuery?: string, filterQuery?: string) {
  const restAPI = `${this.context.pageContext.web.absoluteUrl}/_api/web/Lists(guid'${list.Id}')/items?${
    selectQuery !== null && selectQuery !== undefined ? `$select=${selectQuery}` : ''
  }${
    filterQuery !== null && filterQuery !== undefined ? `&$filter=${filterQuery}` : ''
  }`;

  return this.context.spHttpClient
    .get(restAPI, SPHttpClient.configurations.v1)
    .then(response => response.json());
}

Fazit

Die Kombination aus visueller Benachrichtigung und effizienter REST-Abfrage stellt sicher, dass Benutzer neue Aufgaben sofort sehen und trotzdem eine performante SharePoint-Erfahrung behalten. So bleibt die Steuerung der offenen Aufgaben transparent und reaktionsschnell.

Schlagwörter

#Dokumentenmanagement #JavaScript #SharePoint

Bereit, Ihr SharePoint zu transformieren?

Lassen Sie unsere Experten Ihnen helfen, die in diesem Artikel besprochenen Lösungen umzusetzen.