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 SharePoint
Send an HTTP request to SharePoint
Send an HTTP request to SharePoint
questa 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
e mi faccio restituire ($select) solo il campo Id.

L'output è un JSON come questo

JSON

{
  "value": [
    {
      "Id": "e1887b1a-0fbb-49d5-ad2e-f846296076ab"
    }
  ]
}
per recuperare il valore e salvarlo in una variabile devo usare l'istruzione first e poi accedere alla proprietà Id

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.

A questo punto avendo il Guid nella variabile string DestinationLibraryId posso, ad esempio, per creare una nuova folder in una document library
New folder
New folder
Tags:
Power Automate28 SharePoint Online75 SharePoint497 JSON31
Potrebbe interessarti anche: