In modernen SharePoint Online-Formularen ist das direkte Vorbefüllen von Feldern über URL-Parameter nicht mehr möglich. Früher konnte man beispielsweise durch Anhängen von ?Title=Test
an die URL eines Formulars das entsprechende Feld automatisch unter Verwendung von sputility ausfüllen lassen. Diese Methode funktioniert jedoch in der aktuellen SharePoint Online-Version nicht mehr.
Die empfohlene Alternative besteht darin, Power Apps zu verwenden, um benutzerdefinierte Formulare zu erstellen, die URL-Parameter verarbeiten können. Im Folgenden finden Sie eine umfassende Anleitung, wie Sie dies umsetzen können:
Hintergrund: Warum die klassische Methode nicht mehr funktioniert
In klassischen SharePoint-Formularen war es möglich, Felder durch URL-Parameter unter Verwendung von sputility (Github) vorab zu befüllen. Dies wurde häufig genutzt, um Benutzerinteraktionen zu vereinfachen. Mit der Einführung der modernen SharePoint-Oberfläche und der damit verbundenen Sicherheits- und Architekturänderungen wurde diese Funktionalität jedoch entfernt. Die moderne Benutzeroberfläche unterstützt keine direkte Manipulation von Formularfeldern über URL-Parameter mehr.
Lösung: Verwendung von Power Apps zur Verarbeitung von URL-Parametern
Power Apps bietet die Möglichkeit, benutzerdefinierte Formulare zu erstellen, die URL-Parameter verarbeiten und entsprechende Felder vorab ausfüllen können. Dies erfordert jedoch eine Anpassung des Formulars in Power Apps.
Schritt-für-Schritt-Anleitung:
1. Power Apps-Formular erstellen
- Navigieren Sie zu Ihrer SharePoint-Liste.
- Klicken Sie auf “Integrieren” > “Power Apps” > “Formular anpassen”.
- Power Apps wird geöffnet und zeigt das Formular an, das Sie anpassen können.
alternaitv:
- Einstellungen > Listeneinstellungen
- Formulareinstellungen
- Verwenden eines benutzerdefinierten Formulars, das in PowerApps erstellt wurde

2. Formularmodus basierend auf URL-Parameter festlegen
In diesem Schritt wird festgelegt, dass bei der Übergabe einer ID ein bestimmtes Listenelement geladen (EditForm) wird und bei anderen URL Parameter oder keinen Url-Parammeter ein leeres Formular (NewForm).
- Wählen Sie das Formular-Steuerelement aus (z. B.
SharePointForm1
). - Ändern Sie die Eigenschaft DefaultMode zu:
If(IsBlank(Param("ID")); FormMode.New; FormMode.Edit)
Dies bewirkt, dass das Formular im Bearbeitungsmodus geöffnet wird, wenn ein ID
-Parameter vorhanden ist, andernfalls im Erstellungsmodus.

- Ändern Sie die Eigenschaft Item zu:
If(IsBlank(Param("ID")); SharePointIntegration.Selected; LookUp('LISTENNAME'; ID = Value(Param("ID"))))
Ersetzen Sie 'LISTENNAME'
durch den tatsächlichen Namen Ihrer SharePoint-Liste.
3. Felder mit URL-Parametern vorbefüllen
In diesem Schritt geht es darum, beliebig viele Url-Parameter an die entsprechenden Felder zu übergeben. Das ist nur durch die maximale Länge von URLs limitiert, die derzeit bei 1024 Zeichen liegt.
Hierzu gehen sie bei jedem Feld, das automatisch befüllt werden soll und für das sie einen URL-Parameter definiere wollen folgendermaßen vor. Es müssen nicht immer alle Parameter übergeben werden, sondern nur diejenigen, die man auch befüllen möchte.
- Wählen Sie das Eingabefeld aus, das Sie vorbefüllen möchten (z. B. das Titel-Feld).
- Entsperren Sie das Feld, um Änderungen vornehmen zu können
- Ändern Sie die Eigenschaft Default zu:
If(IsBlank(Param("Title")); ThisItem.Title; Param("Title"))
Dies setzt den Feldwert auf den Title
-Parameter aus der URL, falls vorhanden.

4. Formular speichern und veröffentlichen
Der letzte Schritt in PowerApps besteht darin, dass man
- Fügen Sie einen Button zum Formular hinzu, um die Daten zu speichern.
- Setzen Sie die OnSelect-Eigenschaft des Buttons auf:
SubmitForm(SharePointForm1)
- Optional können Sie nach dem Speichern zu einer bestimmten Seite navigieren:
Launch("https://tenant.sharepoint.com/sites/IhreSeite/")
- Speichern und veröffentlichen Sie das Formular in Power Apps.
alternativ zur Navigation zu einer bestimmten Seite, könnte man auch eine Meldung ausgeben.
SubmitForm(SharePointForm1);
Notify("Ihre Daten wurden erfolgreich übermittelt. Sie können dieses Fenster nun schließen.", NotificationType.Success);
5. Benutzerdefinierte URL erstellen
Nachdem Sie das Formular veröffentlicht haben, können Sie eine URL erstellen, die Parameter enthält, um Felder vorab auszufüllen:
https://apps.powerapps.com/play/providers/Microsoft.PowerApps/apps/APP_ID?Title=Beispieltext&ID=123
Ersetzen Sie APP_ID
durch die tatsächliche App-ID Ihres Power Apps-Formulars.
Wichtiger Hinweis
Wenn Sie ein Power Apps-Formular verwenden, beachten Sie, dass Änderungen an der SharePoint-Liste (z. B. Hinzufügen neuer Spalten) nicht automatisch im Power Apps-Formular reflektiert werden. Sie müssen das Formular manuell aktualisieren, um neue Felder hinzuzufügen oder Änderungen zu übernehmen.
Verbesserungen
Oftmals kenne man die ID nicht, aber weißt dass der Titel eindeutig ist. In diesem Fall möchte man folgendes. Anhand mehrere Übergabeparameter soll der Titel befüllt werden, anders als bei anderen Feldern nicht anhand eines bestimmten Übergabeparameters, sondern aus einer Kombination unterschiedlicher Felder.
Hierzu ermittelt man die Übergabeparmeter, die man verbinden möchte und speichert sie als Variablen. Dies trägt man bei FormScreen1 – OnVisible ein.
Set(varFiscalPeriod; Param("FiscalPeriod"));;
Set(varAccount; Param("Account"));;
Set(varCompany; Param("Company"))
Nun soll noch die Variable Titel als Kombination der 3 Variablen gespeichert werden:
Set(varFiscalPeriod; Param("FiscalPeriod"));;
Set(varAccount; Param("Account"));;
Set(varCompany; Param("Company"));;
Set(varTitle; Concatenate(varFiscalPeriod; "_"; varAccount; "_"; varCompany))
Als nächstes möchte ich, dass wenn in der Liste ein Eintag mit dem Titel existiert, dieser angezeigt wird, wenn dies nicht der Fall ist soll ein neues Element erstellt werden und die Felder mit den Übergabeparametern befüllt werden. Dazu müssen die Attribute von “SharePointForm1” entsprechend geändert werden:
Hierfür erweitern wir die OnVisible Eigenschaft mit dem varItem, das der nachgeschlagene Wert für den entsprechenden Titel ist.
Set(varFiscalPeriod; Param("FiscalPeriod"));;
Set(varAccount; Param("Account"));;
Set(varCompany; Param("Company"));;
Set(varTitle; Concatenate(varFiscalPeriod; "_"; varAccount; "_"; varCompany));;
Set(varItem; LookUp(FIBU_KontoFehler; Title = varTitle))
- DefaultMode
- vorher: If(IsBlank(Param(“ID”)); FormMode.New; FormMode.Edit)
- nachher: If(IsBlank(varItem); FormMode.New; FormMode.Edit)
- Item
- vorher: If(IsBlank(Param(“ID”)); SharePointIntegration.Selected; LookUp(FIBU_KontoFehler; ID = Value(Param(“ID”))))
- nachher: varItem
Darüberhinaus muss der Default-Wert von Title mit dem zusammengesetzten String befüllt werden:
If(
SharePointForm1.Mode = FormMode.New;
varTitle;
ThisItem.Title
)
In der usprünglichen Version gab es zwei Konstallationen: Übergabe der ID, um den richtigen Datensatz zu finden oder Übergabe der einzelnen Feldwerte. Nun werden aber immer alle Parameter übergeben, da sie zum Zusammenbau des Titels verwendet werden. Somit muss die Befüllung der Felder auch angepasst werden. Befindet sich das Formular im New-Modus, dann sollen die Felder anhand der Übergabeparameter befüllt werden. Befildet sich das Formular im Editiermodus, dann sollen die Werte von ThisItem verwendet werden. Somit muss der Default Wert entsprechend angepasst werden.
If(
SharePointForm1.Mode = FormMode.New;
varFiscalPeriod;
ThisItem.FiscalPeriod
)