PnP PowerShell es un módulo de PowerShell multiplataforma que proporciona más de 500 comandos que funcionan con entornos de Microsoft 365 y, más específicamente, SharePoint Online, Microsoft Teams, Microsoft Planner y Microsoft Flow.
Para comenzar con el uso de este módulo debemos tener en cuenta lo siguiente:
– Se debe instalar el módulo de PnP PowerShell con la siguiente línea de comando:
Install-Module -Name ”PnP.PowerShell“
–
– La ejecución de los comandos que se llevarán a cabo, solo se podrán ejecutar asignándole permisos a la aplicación de PnP Management Shell. Esto se lleva acabo al momento de conectarse al Sitio de SharePoint en Office 365 con el usuario administrador del Tenant.
Connect-PnPOnline -Url ”https://contoso.sharepoint.com” -Interactive
Una vez aceptado los permisos de la aplicación, ya se puede proceder a la creación de elementos en SharePoint Online.
Creación lista con “Template GenelicList”, que equivale a una lista customizada. También cuenta con la opción que habilita el versionamiento de la misma.
$listName=”NombreLista”
New-PnPList -Title $listName -Url “nombreLista” -Template GenericList -EnableVersioning
Para conocer los Templates actuales visita (https://docs.microsoft.com/en-us/previous-versions/office/sharepoint-server/ee541191(v=office.15) ).
El siguiente paso consiste en agregarle columnas a la lista anteriormente creada. La creación de las columnas se puede realizar de 2 maneras, una consiste en la ejecución de los comandos propios de PnPPS y la otra es utilizando la opción XML de PnPPS, de esta manera se puede agregar más características a los campos que serán creados. Veámos unos ejemplos:
Para agregar un campo tipo texto:
$listName=”NombreLista”
Add-PnPField -List $listName -DisplayName “Nombre Campo” -InternalName “nombreCampo” -Type Text -Required -AddToDefaultView
El campo creado lleva la opción de “-Required” que lo convierte en un campo requerido y “-AddToDefaultView” que indica que será agregado a la vista que este por defecto en la lista.
Para agregar un campo booleano:
$listName=”NombreLista“
$fieldXml = ”<Field Type=’Boolean’ Name=’nombreCampo‘ StaticName=’nombreCampo‘ DisplayName=’Nombre Campo’><Default>0</Default></Field>”
Add-PnPFieldFromXml -List $listName -FieldXml $fieldXml
Este ejemplo lleva la implementación con la opción XML, de esta manera personalizando el valor por defecto en “Verdadero” desde la creación del campo.
Agregar un campo de selección
$listName=”NombreLista”
Add-PnPField -List $listName -DisplayName ”Nombre Campo” -InternalName ”nombreCampo“ -Type Choice -Group ”Grupo” -AddToDefaultView -Choices ”elemento1″,”elemento2″
Este ejemplo También se puede utilizar cambiando el atributo “-Type Choise” por “-Type MultiChoice”, de esta manera cambiando de selección a selección múltiple.
Para agregar un campo numérico:
$listName=”NombreLista”
Add-PnPField -List $listName –DisplayName “Nombre Campo” -InternalName “nombreCampo” -Type Number -AddToDefaultView
Este ejemplo cuenta con el atributo “ShowFlied” que se encarga de seleccionar que valor se desea visualizar, y con el atributo “UserSelectionMode” para indicar que son usuarios.
Para agregar un campo Fecha:
$listName=” NombreLista“
$fieldXml= ”<Field Type=’DateTime‘ Name=’nombre campo‘ DisplayName=’Nombre Campo‘ StaticName=’nombrecampo‘ Required =’TRUE’ Format=’DateOnly‘ FriendlyDisplayFormat=’Disabled’><DefaultFormula>=Today</DefaultFormula></Field>”
Add-PnPFieldFromXml -List $listName -FieldXml $fieldXml
Este ejemplo cuenta con el atributo “FriendlyDisplayForma” que se encarga del modo de visualización de la fecha, y con el atributo “Format” para indicar para indicar el formato de la columna.
Para eliminar los elementos creados se utilizan los siguientes comandos:
Lista:
Remove-PnpList -Identity ”NombreLista“
Columna de lista especifica:
$listName=”NombreLista”
Remove-PnPField -List $listName -Identity ”Columna”
Para desconectar la consola del sitio de SharePoint, siguiente comando:
Disconnect-PnPOnline
La ejecución de los scripts anteriores permite la creación de una lista personalizada con diferentes tipos de columnas. Cabe resaltar que el script puede ser tan grande como se necesite, o como buena práctica se crea un script por lista o biblioteca requerida con sus respectivas columnas.
¿Qué ventajas tiene el aprovisionamiento por medio de Scripts?
1. Agilidad en la creación de múltiples ambientes de desarrollo.
2. Facilidad para modificar.
3. Rollback de la creación de todo el entorno, o de elementos parcialmente creados por medio de script de eliminación.
4. Portabilidad del entorno de SharePoint.
5. La implementación del entorno de SharePoint pasaría a ser una actividad con un entregable como resultado.
6. Al ser un script, se puede encontrar un método para realizar integración continua y por qué no despliegue continuo.
Algo más:
En la implementación de PnPPS, también podemos crear grupos, niveles de permisos, tipos de contenido, columnas de sitios y crear relaciones entre éstos.
ARTÍCULOS RECIENTES
Copyright © 2020 Software Estratégico S.A.S.
Todos los derechos reservados.