SharePoint Online: cree un tipo de contenido usando PowerShell
¿Qué es el tipo de contenido en SharePoint Online?
Los tipos de contenido son un conjunto de columnas agrupadas para cumplir un propósito específico. ¡Piense en una plantilla de factura! En lugar de que usted y sus usuarios terminen creando plantillas diferentes cada vez desde cero, puede definir una plantilla de factura una vez y sus usuarios pueden comenzar a consumirla en cualquier número de listas o bibliotecas de documentos. De esta manera, fuerza la estandarización en su entorno de colaboración. O piense en una lista de "Seguimiento de proyectos" con las columnas necesarias para realizar un seguimiento de los proyectos de su organización. En lugar de crear y agregar cada columna para la lista de seguimiento de proyectos cada vez, puede utilizar la plantilla de tipo de contenido de seguimiento de proyectos en cualquier cantidad de listas con unos pocos clics.
Las listas de SharePoint Online o bibliotecas de documentos pueden contener varios tipos de contenido. Por ejemplo, puede agregar varios tipos de contenido, como "Factura", "Propuesta", "Orden de compra", etc., a una biblioteca para organizar todo lo relacionado con un proyecto como una sola entidad. Una vez que asocia un tipo de contenido con la lista o biblioteca de SharePoint Online, SharePoint le permite crear nuevos elementos de ese tipo de contenido desde el comando Nuevo elemento en esa lista o biblioteca. En el caso de un tipo de contenido de documento, también puede definir una plantilla de documento que será la base para todos los documentos creados a partir de este tipo de contenido en particular.
Como práctica recomendada, lo ideal es que los tipos de contenido se definan en el sitio superior, independientemente de cualquier lista o biblioteca. Se puede reutilizar en cualquier sitio de SharePoint subyacente o incluso en colecciones de sitios de SharePoint con un centro de tipos de contenido.
¿Cómo crear un tipo de contenido en SharePoint Online?
Para agregar un tipo de contenido en SharePoint Online, siga estos pasos:
- Vaya a Configuración del sitio >> Haga clic en "Tipos de contenido del sitio" en el grupo "Galerías de diseñadores web".
- En la página de tipos de contenido del sitio, verá la lista de tipos de contenido predeterminados como Elemento, Tareas, Documento, etc., agrupados por secciones. Haga clic en el enlace "Crear" en la parte superior.
- Proporcione un nombre para su tipo de contenido personalizado. Opcionalmente, puede ingresar la descripción de su nuevo tipo de contenido para que quede claro.
Seleccione el tipo de contenido principal, como "Elemento", en el que se basa su tipo de contenido. Puede crear un nuevo grupo de tipo de contenido o seleccionar uno existente.
- Haga clic en Aceptar para completar la adición del tipo de contenido. Una vez creado el tipo de contenido, el siguiente paso es agregar las columnas de sitio requeridas al tipo de contenido para que los metadatos estén disponibles desde el tipo de contenido.
Ahora, veamos el script de PowerShell para crear tipo de contenido mediante programación en SharePoint.
SharePoint Online: crear tipo de contenido mediante PowerShell
La creación de un tipo de contenido personalizado se puede automatizar con la ayuda de PowerShell. A continuación se explica cómo crear un tipo de contenido en SharePoint Online usando PowerShell.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#function to turn ON Content Type in SharePoint Online list or library
Function Create-SPOContentType()
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $CTypeName,
[Parameter(Mandatory=$true)] [string] $CTypeDesc,
[Parameter(Mandatory=$true)] [string] $ParentCTypeName,
[Parameter(Mandatory=$true)] [string] $CTypeGroup
)
Try {
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get all content types from the site
$ContentTypeColl = $Ctx.web.ContentTypes
$Ctx.Load($ContentTypeColl)
$Ctx.ExecuteQuery()
#Get the parent content type
$ParentCType = $ContentTypeColl| Where {$_.Name -eq $ParentCTypeName}
#Check if content type exists already
$ContentType = $ContentTypeColl| Where {$_.Name -eq $CTypeName}
If($ContentType -ne $Null)
{
Write-host "Content type '$CTypeName' already exists!" -ForegroundColor Yellow
}
else
{
#Specify properties for the new content type
$CTypeCreationInfo=New-Object Microsoft.SharePoint.Client.ContentTypeCreationInformation
$CTypeCreationInfo.Name=$CTypeName
$CTypeCreationInfo.Description=$CTypeDesc
$CTypeCreationInfo.Group=$CTypeGroup
$CTypeCreationInfo.ParentContentType=$ParentCType
# sharepoint online powershell create content type
$ContentType=$ContentTypeColl.Add($CTypeCreationInfo)
$Ctx.ExecuteQuery()
Write-host "Content Type '$CTypeName' Created Successfully!" -ForegroundColor Green
}
}
Catch {
write-host -f Red "Error Creating Content Type!" $_.Exception.Message
}
}
#Set parameter values
$SiteURL="https://crescent.sharepoint.com"
$CTypeName="Projects"
$CTypeDesc="Content type for Project template"
$ParentCTypeName="Item"
$CTypeGroup="Crescent Projects"
#Call the function
Create-SPOContentType -SiteURL $SiteURL -CTypeName $CTypeName -CTypeDesc $CTypeDesc -ParentCTypeName $ParentCTypeName -CTypeGroup $CTypeGroup
Este script crea un tipo de contenido en SharePoint Online a partir del tipo de contenido principal especificado. En este ejemplo, he creado el tipo de contenido "Proyecto" a partir del tipo de contenido "Elemento", que tiene "Título" como campo predeterminado. Es posible que desee agregar campos adicionales al tipo de contenido. A continuación se explica cómo puede agregar columnas a un tipo de contenido en SharePoint Online con PowerShell: ¿Cómo agregar una columna de sitio a un tipo de contenido en SharePoint Online usando PowerShell?
Crear tipo de contenido en SharePoint Online usando PnP PowerShell
Aquí está el script PnP PowerShell para crear un tipo de contenido en SharePoint Online usando el cmdlet Add-PnPContentType:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ContentTypeName ="Crescent Projects V3"
$ContentTypeDescription ="Base Content Type for Crescent Projects Template"
$ContentTypeGroupName = "Crescent Content Types"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Create Content Type
Add-PnPContentType -Name $ContentTypeName -Description $ContentTypeDescription -Group $ContentTypeGroupName
Esto crea un nuevo tipo de contenido basado en el "Artículo" principal predeterminado.
Puede especificar el tipo de contenido principal como:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ContentTypeName ="Crescent Project Proposal V1"
$ContentTypeDescription ="Base Content Type for Crescent Project Prposal Template"
$ContentTypeGroupName = "Crescent Content Types"
$ParentContentTypeName ="Document"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get the Parent content type
$ParentContentType = Get-PnPContentType -Identity $ParentContentTypeName
#Create Content Type
Add-PnPContentType -Name $ContentTypeName -Description $ContentTypeDescription -Group $ContentTypeGroupName -ParentContentType $ParentContentType
Una vez que el tipo de contenido esté listo, puede agregar el tipo de contenido a listas y bibliotecas: ¿Cómo agregar un tipo de contenido a una lista en SharePoint Online?

