Una tipica applicazione Power Apps prevede un controllo BrowseList (Raccolta) in una pagina, dove cliccando su un item si viene rediretti ad un altra pagina con un controllo Form (Modulo) per l'editing.
pulsante inserimento BrowseList
pulsante inserimento BrowseList
pulsane inserimento form
pulsane inserimento form

Normalmente il controllo BrowseList ha la proprietà OnSelect impostata per spostarsi sulla pagina di editing, ad esempio: Navigate(ScreenAnagrafica_Sezione1; ScreenTransition.Fade).
Nella pagina di editing il controllo form ha la proprietà Item impostata a BrowseList1.Selected.
collegamento tra il form e l'origine dati
collegamento tra il form e l'origine dati
nella stessa pagina ci sarà un pulsante con la proprietà OnSelect impostata con un istruzione di salvataggio simile a questa Patch(MioDataSource; BrowseList1.Selected; FormSezione1.Updates));

Fino a qui tutto bene, ma... può capitare che Power Apps, dopo il salvataggio con l'istruzione Patch decida di rieseguire la query associata al controllo BrowseList (non ho ben capito in quali condizioni). Questo non sarebbe un problema se non per il fatto che la selezione (proprietà Selected) si perde e si posiziona sul primo elemento della query. Quindi un successivo salvataggio sicuramente agirebbe su un elemento diverso da quello selezionato precedentemente.

Per risolvere il problema, bisogna svincolarsi dalla proprietà Selected e salvarsi un identificativo univoco del record scelto.
Ad esempio si può, sulla proprietà OnSelect, salvarsi in una variabile (Set) l'item selezionato prima di cambiare pagina:

Power Apps

Set(CurrentItemID; BrowseList1.Selected.ID);;
Set(CurrentItem; First(Filter(MioDataSource; ID = CurrentID);;
Navigate(ScreenAnagrafica_Sezione1; ScreenTransition.Fade)
In italiano usare il doppio punto e virgola (;;) come separatore delle istruzioni. Dopo l'ultima non deve esserci altrimenti da errore.
poi usare la variabile CurrentItem nella proprietà Item come sorgente per il form:

Power Apps

CurrentItem
e modificare l'istruzione di salvataggio in:

Power Apps

Patch(MioDataSource; CurrentItem; FormSezione1.Updates));
Morale meglio evitare di associare un Form alla proprietà Selected di un controllo BrowseList.
Tags:
Office 36510 Power Apps26 SharePoint497 SharePoint Online75
Potrebbe interessarti anche: