Fehlerhafte Nachschlagen-Spalte reparieren

Fehlerhafte Nachschlagen-Spalte reparieren

Wenn Ihre SharePoint-Liste eine Nachschlagen-Spalte enthält, die mit einer gelöschten Liste verknüpft war, wird in der Feldkonfiguration ein leerer Wert für „Informationen abrufen von:“ angezeigt. In diesem Fall können Sie in SharePoint über die Benutzeroberfläche keine neue Quellliste auswählen.

In dieser Anleitung wird beschrieben, wie Sie ein fehlerhaftes Nachschlagen beheben können, indem Sie ein Skript in den Entwicklertools des Browsers ausführen.

Führen Sie dazu die folgenden Schritte aus:
1. Um sicherzustellen, dass das Skript ordnungsgemäß ausgeführt wird, muss SP.ClientContext verfügbar sein. Dazu können Sie eine der folgenden Optionen verwenden:

  1. Öffnen Sie ein beliebiges benutzerdefiniertes Formular (Neu, Bearbeiten oder Anzeigen) auf der Website.
  2. Wechseln Sie zu "Websiteinhalte" und dann zur klassischen Ansicht.
  3. Navigieren Sie zu: <web-url>/_layouts/15/user.aspx

2. Öffnen Sie die Entwicklertools (F12) und wechseln Sie zur Registerkarte „Konsole“.

3. Fügen Sie das folgende Skript in die Registerkarte „Konsole“ ein. Bevor Sie es ausführen, ersetzen Sie die folgenden Variablen im Skript und klicken Sie auf „Enter“:

  1. listWithLookupUrl – URL der Liste mit Lookup
  2. lookupFieldName - Lookup-Name der Spalte
  3. lookupSourceListUrl - URL der neuen Quellliste, die verbinden möchten

Sobald das Skript erfolgreich ausgeführt wurde, wird Ihre Nachschlagen-Spalte mit der neuen Liste verbunden, und Sie sehen die richtige Quelle in den Spalteneinstellungen.

(function updateLookupFieldSchema() {
const listWithLookupUrl = 'https://m365x46891638.sharepoint.com/sites/ContractManagement/Lists/Contracts';
const lookupFieldName = 'LookupToAccounts';
const lookupSourceListUrl = 'https://m365x46891638.sharepoint.com/sites/ContractManagement/Lists/Accounts';

const targetUrlObj = new URL(listWithLookupUrl);
const sourceUrlObj = new URL(lookupSourceListUrl);
const targetListSR = targetUrlObj.pathname;
const sourceListSR = sourceUrlObj.pathname;

const targetWebUrl = extractSiteUrl(listWithLookupUrl);
const sourceWebUrl = extractSiteUrl(lookupSourceListUrl);

const ctxTarget = new SP.ClientContext(targetWebUrl);
const webTarget = ctxTarget.get_web();
const listTarget = webTarget.getList(targetListSR);
const field = listTarget.get_fields().getByInternalNameOrTitle(lookupFieldName);

ctxTarget.load(field, 'SchemaXml', 'Id');
ctxTarget.executeQueryAsync(onFieldLoaded, onError.bind(null, 'Load field'));

function onFieldLoaded() {
const xmlDoc = new DOMParser().parseFromString(field.get_schemaXml(), 'application/xml');
const fieldNode = xmlDoc.getElementsByTagName('Field')[0];

const ctxSrc = (sourceWebUrl === targetWebUrl)
? ctxTarget
: new SP.ClientContext(sourceWebUrl);
const webSource = ctxSrc.get_web();
const listSource = webSource.getList(sourceListSR);

ctxSrc.load(listSource, 'Id');
if (sourceWebUrl !== targetWebUrl) {
ctxSrc.load(webSource, 'Id');
}

ctxSrc.executeQueryAsync(function () {
const listIdBraced = '{' + listSource.get_id().toString().toUpperCase() + '}';
fieldNode.setAttribute('List', listIdBraced);

if (sourceWebUrl !== targetWebUrl) {
fieldNode.setAttribute('WebId', webSource.get_id().toString().toUpperCase());
} else {
if (fieldNode.hasAttribute('WebId')) {
fieldNode.removeAttribute('WebId');
}
}

// fieldNode.setAttribute('ShowField', 'InternalNameOfYourColumn');

const newSchema = new XMLSerializer().serializeToString(xmlDoc);
field.set_schemaXml(newSchema);
field.update();

ctxTarget.executeQueryAsync(
() => console.log('✅ Lookup field schema updated.'),
onError.bind(null, 'Update field')
);
}, onError.bind(null, 'Load source list'));
}

function extractSiteUrl(listUrl) {
const urlParts = listUrl.split("/");
if (urlParts.length > 1 && urlParts[urlParts.length - 2].toLowerCase() === "lists") {
return urlParts.slice(0, urlParts.length - 2).join("/");
}
return urlParts.slice(0, urlParts.length - 1).join("/");
}

function onError(stage, sender, args) {
console.error(stage + ' error: ' + args.get_message());
}
})();
    • Related Articles

    • Die Aktion Interne E-Mail senden wird eingestellt

      Die Aktion Interne E-Mail senden wird eingestellt Microsoft hat die Einstellung der SharePoint SendEmail-API bekannt gegeben, die unter dem Namen SP.Utilities.Utility.SendEmail bekannt ist und zum Versenden interner SharePoint-E-Mails verwendet wird. ...
    • Probleme mit der neuen Listen-UI bei den letzten MS-Updates

      Dieser Beitrag soll Sie über den aktuellen Stand der Probleme im Zusammenhang mit den MS-Updates der neuen Listenansicht in SharePoint in allen (Standard- und Erstversions-) Tenants informieren. Kurze Erklärung: Durch die MS-Updates Anfang dieses ...
    • Data lookup Einführung

      Was ist Data Lookup? Mit dem Teamsware-Datennachschlageconnector können Sie Werte aus verschiedenen Datenquellen abrufen, nämlich aus einer SharePoint-Liste oder -Bibliothek in beliebigen Websitesammlungen des aktuellen Mandanten und aus der Liste ...
    • Teamsware Studio Update 14.08.2025

      Fehlerkorrekturen und Verbesserungen Moderne Formulare Version 1.3.95 Fix: Die Schaltfläche "Mehr anzeigen" im Bearbeitungsformular für eine Spalte mit mehreren Textzeilen mit aktivierter Option "Änderungen an vorhandenen Text anhängen" wurde ...
    • Teamsware Studio Update 31.08.2023

      Fehlerbehebungen und Verbesserungen Moderne Formulare Version 1.3.32 Fix: Im Feld Person können nun externe Benutzer verwendet werden. Rich-Text-Editor Body-Eingabe in Aktion "Interne E-Mail senden" hinzugefügt. Fix: Die Auswahl der Lookup-Spalte ...