In
PowerApps a volte è necessario aggiornare (update) dei dati su una lista
SharePoint manualmente senza passare dal controllo
Foms.
Per aggiornare dei dati si usa il comando
Patch, ma bisogna prestare attenzione ai campi di tipo
lookup e
user in quanto richiedono il passaggio del dato in un
formato specifico.
Il formato del comando è questo:
Patch(dataSource, record, valore).
Ad esempio per creare un nuovo record che contiene un campo di tipo
lookup (area) e
user (Utente) con l'utente corrente:
Patch(MioDataSource, Defaults(MioDataSource),
{
Area: {
'@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
Id: 4,
Value: "Area 2"
},
Utente: {
'@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
Claims: "i:0#.f|membership|" & User().Email,
Email: User().Email,
Picture: "",
JobTitle: "",
Department: "",
DisplayName: User().FullName
},
ValoreGenerico: 5,
TestoGenerico: "prova",
}
)
Il comando Defaults (con la s finale) serve per creare un nuovo record.
Come si vede dall'esempio, per aggiornare questi campi dobbiamo creare un oggetto a cui va passato il tipo di campo (@odata.type) e i rispettivi valori.
Il campo
lookup richiede come valore nella proprietà
@odata.type il valore
#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference
mentre
user richiede
#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser
Il valore Claims del campo user si ottiene concatenando (&) la mail al prefisso i:0#.f|membership|
Ovviamente
Patch può essere usato per
aggiornare un record esistente:
Patch(MioDataSource, LookUp(MioDataSource, Area.Id = 1)
{
Utente: {
'@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
Claims: "i:0#.f|membership|" & User().Email,
Email: User().Email,
Picture: "",
JobTitle: "",
Department: "",
DisplayName: User().FullName
}
}
)
In questo caso uso il comando LookUp per recuperare il record da aggiornare
In caso di
update posso aggiornare solo alcune proprietà, mentre in caso di
insert devo fornire tutti i campi
obbligatori.
Per maggiori informazioni sul connettore
SharePoint vedi
SharePoint connector reference.