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 SharePointSend 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/_api/web/lists?$filter=EntityTypeName eq 'nomeDocLib'&$select=Id
e mi faccio restituire ($select) solo il campo
Id.
L'output è un
JSON come questo
{
"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à
Idfirst(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