Búsqueda de sitios web

Crear una columna de sitio de búsqueda desde un subsitio usando PowerShell


La creación de un campo de búsqueda como columna de sitio se explicó en mi otra publicación: Crear una columna de sitio de búsqueda entre sitios en SharePoint 2013. ¡Ahora tengo el requisito de crear una columna de sitio de búsqueda a partir de la lista del subsitio! Lamentablemente, no existe una interfaz de usuario para crear una columna de sitio a partir de los valores de la lista de subsitio. Las columnas del sitio de búsqueda solo se pueden crear a partir de las listas del mismo sitio.

¡PowerShell viene al rescate! ¡Podemos crear una columna de sitio de búsqueda que haga referencia a cualquier sitio de la colección de sitios usando PowerShell! Aquí está el script de PowerShell para crear una columna de búsqueda a partir de la lista en otro sitio.

PowerShell para crear una columna de sitio de búsqueda a partir de la lista del subsitio (o de un sitio diferente):


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue 

#Where the Source List for Lookup Exists
$ParentWebURL="https://portal.crescent.com/sales/"
$ParentListName="Regions"
$ParentLookupColumnName="Region"

#Where the Lookup Site column Going to get created
$ChildWebURL="https://portal.crescent.com"
$ChildLookupColumnName="Sales Region"
 
#Get the Parent and Child Webs and List
$ParentWeb = Get-SPWeb $ParentWebURL
$ParentList = $ParentWeb.Lists[$ParentListName]
$ChildWeb = Get-SPWeb $ChildWebURL

#Check if Field exists already
if(!$ChildWeb.Fields.ContainsField($ChildLookupColumnName))
{
    #Add Lookup Field
    $ChildLookupColumn = $ChildWeb.Fields.AddLookup($ChildLookupColumnName,$ParentList.id,$False)
    $ChildLookupColumn = $ChildWeb.Fields[$ChildLookupColumnName]
 
    #Setup lookup Field property
    $ChildLookupColumn.LookupWebId = $ParentWeb.ID
    $ChildLookupColumn.LookupField = $ParentList.Fields[$ParentLookupColumnName].InternalName
    #$ChildLookupColumn.AllowMultipleValues=$true
    $ChildLookupColumn.update()
    write-host "Lookup field added successfully!" -f green
}
else
{
    write-host "Field Exists already!" -f red
} 

¡Este script de PowerShell crea una columna de búsqueda de SharePoint a partir de la lista de otro sitio! Por cierto, las columnas del sitio deben crearse en la web raíz para que las consuma cualquier subsitio que se encuentre debajo.

Artículos relacionados