Búsqueda de sitios web

SharePoint Online: arreglar el campo de búsqueda usando PowerShell


Problema: ¡La columna de búsqueda de SharePoint Online en una lista está rota cuando se vuelve a crear la lista de búsqueda principal!

Causa raíz:

Las columnas de búsqueda de lista de SharePoint Online están conectadas con su columna de lista de búsqueda principal a través de los atributos "Lista" (GUID de la lista principal) y "ShowField". Cuando se vuelve a crear la lista de búsqueda principal, se regenera su GUID, la conectividad entre las listas de búsqueda principal y secundaria se interrumpe y los valores de los campos de búsqueda quedan vacíos.

¿Cómo arreglar una columna de búsqueda rota en SharePoint Online?

Si se encuentra con el escenario anterior y su columna de búsqueda está dividida con valores vacíos, debe volver a vincular la columna de búsqueda con su lista principal. Utilice este script de PowerShell para corregir las columnas de búsqueda en la lista de SharePoint Online.


#Parameters
$SiteURL = "https://Crescent.sharepoint.com/sites/pmo"
$ParentListName = "Projects"
$ChildListName = "ProjectMilestones"
#Field display names - Case sensitive!
$ParentFieldTitle = "Title"
$ChildFieldTitle = "Project"

#Connect to SharePoint Online
Connect-PnPOnline $SiteURL -Credentials (Get-Credential)

#Get Parent List & Child field
$ParentList = Get-PnPList -Identity $ParentListName
$ChildField = Get-PnPField -List $ChildListName -Identity $ChildFieldTitle

#Get the Field Schema XML
[Xml]$Schema = $ChildField.SchemaXml

#Update Field Schema with New Parent List and Field
$Schema.Field.Attributes["List"].'#text' = "{$($ParentList.Id.Guid)}"
$Schema.field.Attributes["ShowField"].'#text' = $ParentFieldTitle
$ChildField.SchemaXml = $Schema.OuterXml
$ChildField.UpdateAndPushChanges($true)
Invoke-PnPQuery

Además, recuerde, tenemos la lista de búsqueda principal guardada como una plantilla de lista con contenido y creamos una nueva lista a partir de ella para que los valores de las filas asociadas sigan siendo los mismos. Porque el valor del campo en cada fila del campo de búsqueda de la lista de búsqueda secundaria apuntará a un ID de fila en la lista de búsqueda principal.

Artículos relacionados