Category Archives: SharePoint

Rimoderna le tue pagine SharePoint!

Rinnova le tue pagine SharePoint

SharePoint Online è in continua evoluzione e miglioramento e, di certo, essere a conoscenza del continuo investimento di Microsoft sulla tecnologia, non può che far piacere a clienti ed utenti finali.
Una delle funzionalità chiave è la presenza dei modern site, che sono sostanzialmente moderni team site connessi ai gruppi di Office 365 o communication site, combinati con migliorate funzionalità a cui accedere da un’interfaccia utente bella, responsive e moderna.
Per saperne di più su cosa si intenda per sito moderno e fare un confronto con il classico, vi rimandiamo al seguente articolo: SharePoint classic and modern experiences.
Per prendere ispirazione, vi segnaliamo questo link: SharePoint Look Book.

Tutte queste novità sono certamente utili ed interessanti ma, uno potrebbe chiedersi: “ho un sacco di classici team site, come li concilio ed inserisco all’interno del moderno mondo SharePoint?”
La risposta è modernizzazione: potete totalmente trasformare (o rinnovare, rimodernare) un team site da classico a moderno e scegliere di connetterlo ad un gruppo Office 365, seguendo le istruzioni: Modernize your classic SharePoint sites.
Ammodernare i vostri siti implica uno o più dei passaggi seguenti:

Rimodernare le pagine di SharePoint Online

Rimodernare le Pagine
I classici siti SharePoint, tipicamente, contengono classiche pagine che possono essere wiki page o web part. Queste pagine, non possono presentarsi attraverso un’interfaccia utente moderna, però, un classic site può ospitare una pagina moderna lato client. Dopo aver massimizzato l’utilizzo delle modern list e della library user interface e, facoltativamente, connesso il vostro sito ad un Gruppo Office 365, trasformare le pagine in pagine moderne lato client è l’ultimo passaggio da eseguire per trasformare totalmente i vostri siti classici in moderni.

In cosa consiste l’ammodernamento di una pagina?
Rimodernare una pagina consiste nel trasformare le vostre classiche pagine wiki o web part in pagine moderne lato client.
Durante la trasformazione, la struttura della pagina (ad esempio intestazione con 2 colonne) viene mantenuta, l’HTML wiki viene trasformato in un HTML che lavora sulle modern page e le web part sono rimpiazzate da una web part moderna.
Durante il processo, la modern page viene generata come una preview, in questo modo l’originale non viene perso.
Potete, a vostra discrezione, far sì che gli utenti finali decidano se mantenere la pagina creata tramite banner interattivo.

Rimodernare le classiche pagine di SharePoint Online

Come utilizzarlo?
La trasformazione delle pagine può essere fatta in tre modi:
– via PnP PowerShell;
– via UI di SharePoint;
– via .Net.

Rimodernare le pagine via PnP PowerShell
Grazie alla versione PowerShell aggiornata a Dicembre 2018 (3.4.1812.0), trasformare una classica pagina wiki o una web part in una pagina moderna lato client è semplice quanto richiamare il comando PowerShell ConvertTo-PnPClientSidePage:

# Connect to the site with pages to modernize
Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/ateamsite
# Modernize page1.aspx and add the page keep/discard banner on the page
ConvertTo-PnPClientSidePage -Identity page1.aspx -AddPageAcceptBanner

Per approfondimenti, vi rimandiamo al seguente articolo:
Transforming to modern site pages using PowerShell.

Rimodernare le pagine via SharePoint User Interface
Se volete dare ai vostri utenti la possibilità di effettuare una modernizzazione delle pagine di tipo self-service, vi consigliamo di considerare la SharePoint Page Transformation UI. Questa modalità, infatti, offre agli utenti finali estensioni di Interfaccia Utente (pulsanti ribbon) per lanciare la trasformazione della pagina:

Rimodernare le pagine via SharePoint User Interface

Per approfondimenti, vi rimandiamo al seguente articolo:
Transforming to modern site pages from inside the SharePoint UI.

Rimodernare le pagine via .Net
Per rinnovare le pagine utilizzando .Net, iniziate installando il pacchetto ASharePointPnPModernizationOnline. Una volta completata l’installazione, la trasformazione della pagina è semplicissima:

var pageTransformator = new PageTransformator(clientContext);
var pages = clientContext.Web.GetPages();
foreach (var page in pages)
{
PageTransformationInformation pt = new PageTransformationInformation(page)
{
// If target page exists, then overwrite it
Overwrite = true,
};
pageTransformator.Transform(pt);
}

Per approfondimenti, vi rimandiamo al seguente articolo:
Transforming to modern site pages using .Net.

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

Il processo di approvazione delle pagine dei siti SharePoint (Site pages approval) all’interno dei Modern Communication Sites è un utile strumento che vi dà la possibilità di inserire un processo di approvazione per gestire il ciclo di vita di un contenuto pubblicato all’interno della vostra Intranet aziendale.

Attualmente, non c’è un processo di ripristino per ritirare una pagina pubblicata o spubblicarla. Tutto questo, però, può essere fatto attraverso script flow personalizzati.

In questo blog, vedremo come abilitare un processo di page approval, i singoli passaggi del procedimento e, infine, come customizzare un flow avvalendoci di uno scenario esempio.

Abilitare un flow utile per il processo di approvazione di una pagina è semplice: è sufficiente recarsi nella library Site Pages, cliccare Flow e scegliere l’opzione Configure page approval flow. Durante il processo di configurazione, potete impostare i nomi degli “approvatori”, ovvero coloro daranno l’ok ai site pages come esemplificato nell’immagine qui sotto.

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

Di default, per innescare un flusso di lavoro, uno o tutti gli utenti il cui nome è stato indicato nel precedente passaggio può approvare la pagina.
Questo flow può essere migliorato e nei prossimi paragrafi andremo a vedere come.
Ad ogni modo, a questo punto il processo di page approval è impostato e pronto per essere utilizzato.

Entriamo ora nel dettaglio del flow dal punto di vista dell’utente.
Dopo aver creato una pagina, l’utente deve sottometterla ad un processo di approvazione. Questa richiesta d’approvazione, deve avvenire anche per qualsiasi cambiamento operato sulla pagina.
Per attivare il processo di approvazione, cliccate sul pulsante Submit for Approval ed inserite i dettagli richiesti, come nello screenshot seguente.

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

Una volta inviata la pagina all’approvazione, la persona preposta (uno/tutti gli approvatori a seconda del caso) riceverà un’email.
La cosa interessante è che questa email arriverà nella mailbox della persona assieme ad un messaggio azionabile che permette di approvare il flusso direttamente dalla mail.

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

In alternativa, è possibile approvare la richiesta direttamente dalla pagina creata.
Inoltre, chi è preposto all’approvazione, può ri-assegnare l’incarico e delegare l’approvazione ad un collega, nel caso in cui ne abbia bisogno.

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

Una volta approvata la pagina, viene pubblicata ed è pronta per la visualizzazione.

Vediamo ora cosa succede dietro le quinte del flow e come sia possibile customizzarlo.

Flusso di Approvazione di Default
Il Flow viene innescato all’interno della libreria Site Pages e recupera i metadata della pagina.
Durante il processo di approvazione, viene catturato il nome dell’autore.

Gli step saranno i seguenti:
1. Recupero di proprietà e metadata della pagina da approvare;
2. Inizio del processo di Content Approval sulla pagina;
3. Inizio del flusso di approvazione ed invio email all’approvatore;
4. La persona preposta conferma o rifiuta la pagina;
5. Invio della notifica al richiedente con feedback dell’approvatore.

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

Customizzare il Flusso d’approvazione
Il Flow può essere personalizzato a seconda delle necessità della singola azienda per adattarsi alle esigenze custom.
Per questo motivo, nello scenario di test, è stata inserita una colonna aggiuntiva (Page Status) per visualizzare un maggior numero di stati di approvazione come vedete nell’immagine qui sotto.

Gli step, in questo caso, saranno i seguenti:
1. Andare su Flow: flow.microsoft.com;
2. Aprire il flow creato per l’approvazione (Submit for Approval);
3. Customizzare il flow per aggiungere la colonna status utilizzando la proprietà “Update Properties”. Poichè la library Site pages non vi si presenterà nel menù a tendina, copiate la library guid dall’azione “Get File properties” ed incollatela nella finestra “Update properties”;
4. Pubblicare il Flow.

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing
Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

Dopo aver eseguito il flow, vedrete lo status riportato nella library.

Approvazione e Customizzazione delle Modern Page per automatizzare i processi di content publishing

Costruire User Experience immersive con SharePoint view formatting

Lo scorso Maggio, alla SharePoint Conference 2018, Microsoft ha mostrato in anteprima la nuova user experience creata con la view formatting (precedentemente chiamata “row formatting”). Il meccanismo si basa sulla funzionalità di Column formatting introdotta lo scorso anno che vi permette di formattare l’aspetto delle colonne individuali utilizzando JSON.

Il view formatter vi permette di customizzare la vista delle liste di SharePoint utilizzando un approccio di tipo JSON-based. Potete utilizzarlo per applicare il conditional formatting a liste e librerie o creare da zero liste immersive e library experiences.

Cosa significa? In breve, vi permette di trasformare le liste come nell’immagine qui sotto:

Costruire User Experience immersive con SharePoint view formatting
Situazione precedente alla view formatting

In liste come da immagine seguente:

Costruire User Experience immersive con SharePoint view formatting
Situazione successiva alla view formatting

Il modo più semplice di utilizzare il view formatting è di applicare il conditional formatting alle righe. L’esempio qui sotto applica una classe CSS alla vista di ogni riga a seconda del valore dell’oggetto nel campo DueDate:

Costruire User Experience immersive con SharePoint view formatting
Conditional formatting

{
“schema”: https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json,
“additionalRowClass”: “=if([$DueDate] <= @now, 'sp-field-severity--severeWarning', ''" }

Qui sotto, invece, un esempio più complesso che utilizza il view formatter per costruire una visuale multi-line totalmente customizzata.
Il JSON necessario è un po’ più lungo e lo trovate all’interno della documentation page.

Costruire User Experience immersive con SharePoint view formatting

Nonostante il JSON non sia un codice tecnico, può essere un formato delicato da scrivere.
Pe questo Microsoft ha introdotto un nuovo parser che lavora con espressioni simili a quelle di Excel sia per il view formatting che per il column formatting. Cosa significa? Qui sotto un frammento JSON che utilizza la vecchia sintassi che assegna alla proprietà il valore “red” se il campo è minore a 40 e verde nel caso contrario:

{
“operator”: “:”,
“operands”: [
{
“operator”: “<", "operands": [ "@currentField", 40 ] }, "red", "green" ] }

Questo formato può essere difficile da leggere e modificare.
Il parser ora supporta la scrittura della stessa espressione condizionale in un modo molto più friendly.

“=if(@currentField < 40, ‘red’, ‘green’)”

Dove inserire questo breve codice? In realtà, avete la funzionalità in ogni vista utilizzando il comando del selettore nella command bar.
Il Format current view aprirà un pannello in cui potrete copiare-ed-incollare gli scripts di formattazione.

Costruire User Experience immersive con SharePoint view formatting

In questo modo, non dovrete scrivere tutti questi script da zero: troverete tutti gli esempi che fanno al caso vostro. All’interno della community di SharePoint Patterns and Practices sono già stati condivisi molti esempi di column formatting.

Il rilascio della view formatting personalizzata è iniziato a Settembre 2018.
Per maggiori informazioni, visitate la GitHub repository.

Come risolvere il problema dell’immagine del profilo utente su SharePoint Online quando si utilizzano RestAPI o JSOM

Come risolvere il problema dell'immagine del profilo su SharePoint Online quando si utilizzano RestAPI o JSOM

Su SharePoint Online, per visualizzare un’immagine utente su una pagina o una web part di editor di contenuti, la maggior parte di noi, utilizza rest API o JSOM.
Vi elenchiamo qui sotto alcune rest URL:

https://siteurl/_api/SP.UserProfiles.PeopleManager/GetMyProperties
@v)?@v=”>https://siteurl/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v=’i:0%23.f|membership|tuan@siteurl.onmicrosoft.com
https://siteurl/sites/contoso-dev/_vti_bin/ListData.svc/UserInformationList

Il Problema
Il problema è che la proprietà PictureURL che potete facilmente trovare tra i risultati delle rest APIs qui sopra, non funziona.
Se utilizziamo questa proprietà come sorgente per mostrare l’immagine utente, vedremo un’immagine spezzata.
La ragione è che la proprietà di questa PictureURL è una URL che proviene dal “my site”, come ad esempio, https://contoso-my.sharepoint.com:443/User Photos/Profile Pictures/david_contoso_onmicrosoft_com_MThumb.jpg e fa riferimento ad una sorgente diversa; dovete accedere al vostro sito prima di poter vedere l’immagine.

Come risolvere il problema dell'immagine del profilo su SharePoint Online quando si utilizzano RestAPI o JSOM

La soluzione
C’è un modo più immediato e veloce per risolvere il problema.
Vi basta utilizzare questo formato URL:

https://siteurl/_layouts/15/userphoto.aspx?size=L&accountname=

Come potrete notare, accountName è la proprietà di “AccountName” che potete trovare da restAPI, proprio come la proprietà “PictureURL”. L’ accountName dev’essere codificato. Una volta effettuato questo passaggio, il problema è risolto!

Ci auguriamo che questo veloce tutorial vi aiuti a risolvere il problema che sappiamo essere molto comune fra gli utenti.

Come risolvere il problema dell'immagine del profilo su SharePoint Online quando si utilizzano RestAPI o JSOM