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.