spsnl17 - be more effective with the pnp provisioning engine - erwin van hunen
TRANSCRIPT
Erwin van HunenProduct Owner Transformation Tooling
MVP Office Servers and Services
Microsoft Certified Master
www.spcaf.com/blog
@erwinvanhunen
Get-PnPProvisioningTemplate
Apply-PnPProvisioningTemplate
Get-PnPProvisioningTemplateFromGallery
Add-PnPFileToProvisioningTemplate
Convert-PnPFolderToProvisioningTemplate
Load-PnPProvisioningTemplate
New-PnPProvisioningTemplate
New-PnPProvisioningTemplateFromFolder
Remove-PnPFileFromProvisioningTemplate
Save-PnPProvisioningTemplate
Set-PnPProvisioningTemplateMetadata
3,000,000,000 PnP Core Requests Per
Month
600,000,000 PnP PowerShell Requests
Per Month
Model
•Abstraction
layer for object
handlers and
providers
Object
handlers
•The ‘workers’
that take care
of extraction
and
provisioning of
artifacts of a
certain type
Providers
•The layer that
provides
functionality
for serialization
and
deserialization
Schema
•The schema
makes sure
we’re all doing
it right
// Get Template from existing site
// Save template using provider
// Apply template to new site
1
23
4
#
Extract all
artifacts
Compare with
base template
contents
Remove
duplicate data
from template
Load all artifacts
from template
Compare with
artifacts in site
If present, modify
in place where
appropriate
#
#
<?xml version="1.0"?><pnp:Provisioning xmlns:pnp="…">
<pnp:Preferences Generator="…" /><pnp:Localizations>
</pnp:Localizations><pnp:Templates ID="CONTAINER-TEMPLATE-8C075A44E60F4E82B8F013637DB1E654">
#
<pnp:Templates ID="…">
<pnp:ProvisioningTemplate ID="…" Version="1">
<pnp:Lists>
<pnp:ListInstance Title="Description="Use the Contacts list …" DocumentTemplate="" OnQuickLaunch="true" TemplateType="105" Url="Lists/contacts" MinorVersionLimit="0" MaxVersionLimit="0" DraftVersionVisibility="0" TemplateFeatureID="00bfea71-7e6d-4186-9ba8-c047ac750105" EnableFolderCreation="false">
<pnp:Views>
#
#
Thanks for attending