Posts

SharePoint Notification: replacement for retired alerts

Bild
SharePoint Alerts will be discontinued on July 26, so I built a replacement solution to preserve similar notification functionality within SharePoint. The goal was to keep alerts simple and easy to use. For this I implemented a custom list view command to integrate my new notification interface directly into any SharePoint list or library. Users can create notifications by defining a meaningful title and managing multiple notifications, which can also be temporarily disabled. In case of E-Mail notification the users must choose recipients who should receive notifications about list or library changes. Notifications can be delivered via E-Mail or Microsoft Teams by selecting a specific team and channel. The system allows configuration of: Which changes trigger notifications (all updates, additions, or deletions) Whose changes should be tracked (anyone’s changes, changes affecting the user’s items, or changes within a specific view) Notification frequency (immediate, daily summary...

SharePoint & Copilot & Power-Automate: Rechnung KI-basiert analysieren in Excel protokollieren & in SharePoint bereitstellen

Bild
In vielen Unternehmen ist die Verarbeitung eingehender Rechnungen noch immer ein manueller Prozess: E-Mails werden geprüft, Anhänge gespeichert, Daten übertragen und Aufgaben verteilt. Der im Video gezeigte Ansatz demonstriert, wie sich dieser Ablauf mithilfe moderner Automatisierung innerhalb von Microsoft 365 und Copilot deutlich effizienter gestalten lässt. Das Beste daran: Die meisten haben bereits die geeigneten Lizenzen, um diesen Prozess abbilden zu können. Wenn keine Copilot-Lizenz vorliegt, kann auch ein flexibles Abrechnungsmodell für die KI-Funktionen verwendet werden. Ausgangssituation Rechnungen treffen typischerweise über ein gemeinsames E-Mail-Postfach ein. Diese Dokumente müssen geprüft, archiviert und den zuständigen Personen zugewiesen werden. Ohne Automatisierung entsteht dabei ein hoher Zeitaufwand sowie ein erhöhtes Fehlerrisiko. Die automatisierte Lösung im Überblick Die in meinen Video vorgestellte Lösung automatisiert die komplette Verarbeitung ei...

SharePoint Online: Automatische Erstellung von Word und PDF-Dokument auf Basis einer Word-Vorlage

Bild
In vielen Unternehmen existieren zahlreiche Word-Vorlagen. Oft werden diese auch für Antragsformulare verwendet. Ebenfalls werden Word-Vorlagen für vorgefertigte Dokumente, wie z. B. für Verträge, hinterlegt. Diese Vorlagen enthalten oft Platzhalter für konkrete Kunden- und Stammdaten, die bei jeder Dokumentenerstellung entsprechend mit den konkreten Daten ersetzt werden müssen. Um diesen Ablauf in Zukunft zu erleichtern, wird in SharePoint Bibliotheken eine neue KI-basierte Unterstützung names "Generierung strukturierter Dokumente in einer SharePoint-Dokumentbibliothek" eingeführt. Mit der strukturierten Dokumentgenerierung können Word Dokumentvorlagen in intelligente, KI-gestützte Formulare umgewandelt werden. Wenn ein Benutzer ein Formular absendet, wird automatisch ein neues Dokument aus der Vorlage generiert, wobei die übermittelten Werte in den entsprechenden Feldern zusammengeführt werden. Dadurch werden jedes Mal konsistente, kontrollierte Dokumente erstellt, ohne da...

SPFx development: Use the this.context.pageContext

Bild
When I build solutions with the SharePoint Framework (SPFx), one of the most valuable objects I rely on is this.  context.pageContext . It gives me rich, contextual information about where my web part or extension is running—without requiring additional API calls. The following image shows the possible information that you can get. Overview about the pageContext In this post, I’ll walk through how I use this.context.pageContext in my day-to-day development, and how it helps me access detailed information about the current site, web, list, list item, user, and tenant. I’ll also share a couple of practical examples using isInitialized and cultureInfo . Understanding this.context.pageContext In SPFx, every component (web part or extension) gets access to a context object. Inside that, pageContext provides metadata about the current page and its environment. console.log(this.context.pageContext); This object is structured into several sub-properties, each representing a differe...

SharePoint SPFx & integration: Choosing the right user identifier for external system relationships

Bild
User attribute mapping for an external system relationship When building SharePoint-integrated applications—such as a Shop system embedded via SPFx in SharePoint — we often face a subtle but critical challenge: how to reliably link a user to data stored in an external system. A typical example is assigning orders to the user who created them. At first glance, this seems straightforward— until user properties start changing . 😒 In SharePoint Framework (SPFx), the current user is available via this.context.pageContext.user . This object exposes several properties like displayName , email , id , and loginName . However, not all of these are suitable for use as a stable foreign key in an external database. Properties such as displayName and email are mutable. If an administrator updates these values in Entra ID or SharePoint, the changes will eventually propagate—but not instantly. Synchronization delays and site-specific caching (via the User Information List) can lead to temporary inc...

SharePoint Online: SharePoint Alerts reborn - Custom Notification System (CNS^SP)

Bild
I think a lot of SharePoint users are already informed about the upcoming retirement of the SharePoint built-in feature Alerts 😔. Retired Alert feature in SharePoint As you can see in the screenshot, the alert feature will be switched off in July 2026. This means you cannot use this feature anymore. That's why I decided to implement a custom solution to rescue this function. Let me first give you a quick overview of the solution. My custom solution is based on the following pieces: A custom ListView Command Set to integrate a button to each list or library in SharePoint. Webhooks to listen for changes. To access SharePoint data, my solution needs an Entra app registration. I use an on-behalf-flow for the client app and an app-only flow for the background system. To provide the necessary functionality, I use multiple Azure functions to provide REST endpoints and to realize the notification system based on a scheduler trigger. And I use an SQL server to store all ...

SPFx: BaseDialog from microsoft/sp-dialog and lost focus issue

Bild
I had a strange issue while developing a new SPFx List command extension. My custom list command opens a dialog to enter some data. The dialog works perfectly for the first time. But after I had closed and opened the dialog again, I was unable to enter data in any input fields. Other UI components, like toggle or radio buttons, were not affected, and I could use them without any issue. After digging around and inspecting the source HTML code, I discovered an iframe with id = o365shellwcssframe, as you can see in the image below. iframe issue This iframe has an initial CSS display style set to "block", but after reopening the dialog, the value changes to "none". I just changed the value back to block and after this, the dialog started to work as expected. I made the adjustment during the event "BeforeOpen" inside my custom dialog component. export class AlertDialog extends BaseDialog { ... protected onBeforeOpen(): Promise<void> { con...