Un esempio di come aggiornare un campo SharePoint di tipo lookup che accetta valori multipli con Power Automate.Lookup multipla
PATCH
Usando la action Send an HTTP request to SharePoint con il metodo PATCHPATCH nometadataè possibile passare un JSON di questo tipo per aggiornare il campo lookup multipo
JSON: Body - Campo lookup multiplo
{
"CategoriesId": [2, 3]
}
Da notare che al nome campo, Categories, di tipo lookup, va aggiunto il suffisso Id, quindi il nome campo da usare per l'aggiornamento diventa CategoriesId e che nell'attricbuto Content-Type viene specificato odata=nometadata .
Va passato un array con gli Id degli item da salvare.
Nella action andrà specificato il metodo PATCH mentre la Uri sarà nella forma:
URL
_api/web/lists/GetByTitle('<titolo della lista>')/items(<id item>)
In questo caso, nell'header, la chiave ContentType deve contenere il valore odata=verbose. Nel parametro __metadata va passato un oggetto con una proprietà di nome type e deve contenere il nome della lista nella forma SP.Data.<nome lista>ListItem. Infine nel campo CategoriesId va passato un oggetto con una proprietà di tipo array di nome results.
In questo caso specificando il type (nel'oggetto __metadata) il vantaggio è quello di rafforzare il controllo sul tipo della lista, se per qualche motivo c'è un errata valorizzazione della url, quindi si punta ad una lista diversa, l'update non avviene e genera questo errore:
A type named 'SP.Data.TodoAAAListItem' could not be resolved by the model. When a model is available, each type name must resolve to a valid type. clientRequestId: 4c78ec01-f9f5-484e-bc9b-7ea28867a2cd serviceRequestId: a9616ba0-d08a-5000-2dae-5a7b65f9358f
Ricavare il nome della lista
Il nome della lista da usare con il verbose nel parametro __metadata.type, lo si può leggere dalla proprietà ListItemEntityTypeFullName facendo questa query
Text
https://<nome del tenant>.sharepoint.com/_api/web/lists/GetByTitle('<titolo della lista>')?$select=ListItemEntityTypeFullName
Il fatto che il termine List compaia 2 volte nel nome è solo perché la lista di esempio si chiama proprio TodoList.
POST
La stessa operazione può essere fatta anche con il metodo POST, ma in questo caso va aggiunto l'header X-HTTP-Method=MERGEPOST - MERGE - Verbose
Il metodo POST senza il parametro X-HTTP-Method=MERGE viene usato per creare un nuovo item. In questo caso va tolta dalla url la parte finale relativa all'id (2).
Note
Quelli indicati sono gli header minimi necessari, con altri metodi, come la creazione di item, che ritornano un risultato, va aggiunto anche l'header