Uso della funzione Patch per creare e modificare record
La funzione Patch viene usata per creare e modificare i record in un'origine dati quando l'uso di un controllo Modulo non soddisfa le esigenze. La funzione Patch viene usata più spesso quando è necessario intervenire sui dati senza l'interazione dell'utente in modo ripetitivo. La si usa anche se l'app è progettata in modo tale da non consentire l'uso di moduli.
Uso di Patch per creare un record
La funzione Patch può essere usata per creare un nuovo record nell'origine dati. Per creare un nuovo record, si usa una formula composta da tre parti.
Includere il nome dell'origine dati da modificare. Può trattarsi di un'origine dati tabulare (come Microsoft Dataverse o SharePoint) o di una raccolta. Per l'esempio si usa CustomerOrders come nome dell'origine dati.
La funzione Defaults restituisce un record che contiene i valori predefiniti per l'origine dati. Se una colonna nell'origine dati non ha un valore predefinito, questa proprietà non è visualizzata. Usando Defaults con l'origine dati, questa notifica a Patch di creare un nuovo record.
Includere le colonne da popolare nel nuovo record. In questo caso si specifica il nome della colonna da aggiornare, seguito dal valore da scrivere nella colonna. Per questo esempio, si aggiornano le colonne Region e Country con un valore stringa.
La formula di esempio è la seguente:
Patch(CustomerOrders, Defaults(CustomerOrders), {Region: "Americas", Country: "Canada"})
Questa formula crea un nuovo record nell'origine dati CustomerOrders e imposta Region su Americas e Country su Canada. È importante notare che non vengono definite informazioni sulla chiave primaria (colonna ID) che vengono aggiornate dall'origine dati in base alle relative impostazioni.
Uso di Patch per modificare un record
È anche possibile modificare un record nell'origine dati. Per modificare un solo record, si usa una formula composta da tre parti.
Includere il nome dell'origine dati da modificare. Può trattarsi di un'origine dati tabulare (come Dataverse o SharePoint) o di una raccolta. Per l'esempio si usa CustomerOrders come nome dell'origine dati.
Il record da modificare nell'origine dati. Il modo più comune per specificare questo record consiste nell'usare la funzione LookUp per recuperare il record dall'origine dati. Se si usa una raccolta e si vuole aggiornare il record corrente, un'altra opzione consiste nell'usare la funzione ThisItem per fare riferimento al record. Per questo esempio si usa una funzione LookUp.
Includere le modifiche da apportare. In questo caso si specifica il nome della colonna da aggiornare, seguito dal valore da scrivere nella colonna. Per questo esempio, si aggiornano le colonne Region e Country con un valore stringa.
La formula di esempio è la seguente:
Patch(CustomerOrders, LookUP(CustomerOrders, ID = 1), {Region: "Asia", Country: "China"})
Questa formula aggiorna il record con ID 1 nella tabella CustomerOrders impostando la colonna Region su Asia e la colonna Country su China. Se questi campi contengono già dei valori, vengono sovrascritti.
Aggiornamento di colonne con Patch
La logica principale della maggior parte delle funzioni Patch è aggiornare le colonne appropriate con le informazioni corrette. Questa è l'origine di gran parte delle attività di risoluzione dei problemi della funzione Patch. Usare le indicazioni riportate di seguito per semplificare l'uso di Patch.
Assicurarsi di aggiornare tutte le colonne necessarie dall'origine dati.
È possibile aggiornare qualsiasi numero di colonne facoltative.
Assicurarsi che i nomi delle colonne non contengano errori di digitazione e che le maiuscole siano corrette. I nomi delle colonne distinguono tra maiuscole e minuscole.
Assicurarsi di scrivere il tipo di dati corretto. Ad esempio, se la colonna nell'origine dati è un tipo numerico, non è possibile scrivere un valore stringa, anche se la stringa contiene un numero.
Quando si passano i valori nella formula per applicare la funzione Patch all'origine dati, sono disponibili quattro origini:
È possibile impostare un valore come hardcoded. Se ad esempio si vuole modificare lo stato del record con il valore "In sospeso", la formula Patch sarà simile alla seguente:
Patch(CustomerOrders, Default(CustomerOrders), {Status: "Pending"})
Questa formula crea un nuovo record e imposta la colonna Stato sul valore stringa "In sospeso".
È possibile fare riferimento a una variabile. Ad esempio, è possibile archiviare la stringa "In revisione" in una variabile denominata varStatus con la formula seguente.
Set(varStatus, "Under Review")
La formula Patch sarà la seguente:
Patch(CustomerOrders, Default(CustomerOrders), {Status: varStatus})
Questa formula crea un nuovo record e imposta la colonna Stato sul valore stringa "In revisione".
È possibile fare riferimento al valore dalla proprietà di un controllo. Un esempio potrebbe essere l'impostazione del valore da un menu a discesa denominato Dropdown1 contenente le aree geografiche. La formula Patch sarà simile alla seguente:
Patch(CustomerOrders, Default(CustomerOrders), {Status: Dropdown1.Selected.Value})
Questa formula crea un nuovo record e imposta la colonna Stato sul valore dell'elemento selezionato nel menu a discesa.
È possibile usare l'output di una formula. Un esempio potrebbe essere l'impostazione del valore della colonna Owner usando il valore FullName dalla funzione User(). La formula Patch sarà simile alla seguente:
Patch(CustomerOrders, Default(CustomerOrders), {Owner: User().FullName})
Questa formula crea un nuovo record e imposta la colonna Owner su FullName dell'utente corrente da Microsoft Entra ID.
Esempio di Patch
In questo nuovo esempio si sta creando una soluzione semplice per far accedere gli utenti alla classe non appena arrivano. Questo tipo di soluzione Power Apps è comune e la funzione Patch aiuta a ottenere rapidamente risultati.
Analisi della soluzione
Questo caso riguarda una semplice app canvas collegata all'origine dati (TrainingClassSignIn). L'origine dati ha le seguenti colonne: Classe formazione, Nome, Cognome, IndirizzoEmail, StatoAccesso. Queste sono le informazioni da acquisire quando un utente seleziona il pulsante Sign In. Nella barra della formula è visualizzato il codice seguente:
Patch(TrainingClassSignIn,Defaults(TrainingClassSignIn),{TrainingClass:TrainingClassDD.Selected.Value, FirstName:FirstNameInput.Text, LastName:LastNameInput.Text, EmailAddress:EmailAddressInput.Text, SignInStatus:"Attended"})
Quando viene usato, ogni volta che qualcuno seleziona il pulsante Sign In, Power Apps scrive un nuovo record nell'origine dati TrainingClassSignIn. Per quanto riguarda i dati di writeback per l'accesso dell'utente, le informazioni vengono raccolte dai diversi controlli aggiunti (contraddistinti dai colori nella formula). Si potrebbe anche notare che il codice imposta SignInStatus ogni volta su "Con intervento dell'utente" per ogni nuovo record inviato.
Si può concludere che la funzione Patch è flessibile e potente e offre anche altre funzionalità, tra cui la possibilità di aggiornare più record e di unire i record. Per altre informazioni su questi scenari, consultare Funzione Patch in Power Apps.