Recuperare il Guid di una lista in Power Automate
A volte può capitare di dover accedere ad una lista SharePoint, non tramite il suo Guid come fanno le action standard, ma tramite il nome della document library o lista.
Per accedere alla lista, in lettura o scrittura, bisogna prima ricavare il suo Guid.
Questo lo si può fare tramite l'action Send an HTTP request to SharePointquesta action permettere di invocare le API REST di SharePoint Online.
In questo caso richiamo la url /_api/web/lists filtrando ($filter) per EntityTypeName
e mi faccio restituire ($select) solo il campo Id.
L'output è un JSON come questo
per recuperare il valore e salvarlo in una variabile devo usare l'istruzione first e poi accedere alla proprietà Id
A questo punto avendo il Guid nella variabile string DestinationLibraryId posso, ad esempio, per creare una nuova folder in una document library
Per accedere alla lista, in lettura o scrittura, bisogna prima ricavare il suo Guid.
Questo lo si può fare tramite l'action Send an HTTP request to SharePointquesta action permettere di invocare le API REST di SharePoint Online.
Conviene sempre indicare l'header Accept = application/json;odata=nometadata per ridurre al minimo la quantità di dati ritornati.
In questo caso richiamo la url /_api/web/lists filtrando ($filter) per EntityTypeName
URL
/_api/web/lists?$filter=EntityTypeName eq 'nomeDocLib'&$select=Id
L'output è un JSON come questo
JSON
{
"value": [
{
"Id": "e1887b1a-0fbb-49d5-ad2e-f846296076ab"
}
]
}
Power Automate
first(body('Send_an_HTTP_request_to_SharePoint')['value'])['Id']
Da notare che, nel caso delle document library, il valore EntityTypeName corrisponde al path relativo. Ad esempio con una url come /sites/nomesito/nomeDoc la proprietà conterrà nomeDoc.
Nel caso di una lista con url /sites/nomesito/lists/mia lista la proprietà conterrà mia__x0020_listaList. In questo caso il valore subisce delle modifiche. La prima è che alcuni caratteri subiscono un escape in questo caso lo spazio che diventa _x0020_, la seconda è che essendo una lista viene aggiunto il suffisso List.
Nel caso di una lista con url /sites/nomesito/lists/mia lista la proprietà conterrà mia__x0020_listaList. In questo caso il valore subisce delle modifiche. La prima è che alcuni caratteri subiscono un escape in questo caso lo spazio che diventa _x0020_, la seconda è che essendo una lista viene aggiunto il suffisso List.
A questo punto avendo il Guid nella variabile string DestinationLibraryId posso, ad esempio, per creare una nuova folder in una document library