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:

Power Apps

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

Text

#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference
mentre user richiede

Text

#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:

Power Apps

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.
Tags:
Power Apps26 SharePoint Online75
Potrebbe interessarti anche: