Deshabilitar el desament automàtic en una aplicació basada en models
Nota
Vigent a partir del novembre de 2020:
- S’ha canviat el nom del Common Data Service per Microsoft Dataverse. Més informació
- S’han actualitzat alguns termes del Microsoft Dataverse. Per exemple, ara entitat s’anomena taula, i el camp ha passat a anomenar-se columna. Més informació
Aquest article s’actualitzarà pròximament per reflectir la terminologia més recent.
El desament automàtic ajuda els usuaris d'aplicacions a centrar-se en el seu treball sense haver de gestionar el desament de dades al formulari. La majoria de gent agrairà no haver de guardar explícitament les dades cada vegada que actualitzi un fila, però algunes organitzacions poden tenir les personalitzacions dissenyades per esperar un desament explícit. Per a aquestes organitzacions hi ha opcions per gestionar com s'aplica un desament automàtic.
Com funciona un desament automàtic
Per defecte tots els formularis principals per a taules actualitzades i clàssiques tindran el desament automàtic habilitat. Un cop creada una fila (inicialment desada), els canvis fets a un formulari es desaran automàticament trenta segons després que es faci el canvi. Si no es fan canvis al formulari, el desament automàtic no es produeix mentre el formulari està obert. Després que es faci un canvi, comença el període de 30 segons abans que torni a començar un desament automàtic. Si algú altre ha actualitzat la mateixa fila mentre l'esteu editant, aquests canvis es recuperaran i es mostraran al formulari quan es produeix el desament automàtic.
Amb el desament automàtic habilitat, el botó de desar només apareix per al desament inicial de la fila. Un cop creada la fila, el botó Desa no es mostra a la barra d'ordres, però es pot veure un botó
a la part inferior dreta que mostrarà si hi ha canvis que no s'han desat. Aquest control també apareix si el desament automàtic està inhabilitat.
Podeu seleccionar aquest botó per desar la fila i actualitzar les dades al formulari immediatament. Quan el desament automàtic està activat, la fila es desa cada vegada que navegueu fora d'una fila o tanqueu una finestra separada mostrant una fila. No és necessari el botó Desa i tanca que apareix a formularis de taules que no s'actualitzen.
Hauria d'inactivar el desament automàtic?
Si teniu complements, fluxos de treball o scripts de formularis que s'executen quan es desa una fila, s'executaran vegada que es produeixi el desament automàtic. Això podria conduir a comportaments indesitjables si aquestes extensions no estan dissenyades per funcionar amb el desament automàtic. Tant si el desament automàtic està habilitat com si no, els complements, fluxos de treball i scripts de formularis s'han de dissenyar per buscar canvis específics i no s'haurien d'executar indistintament per a cada esdeveniment de desament.
Si teniu configurada l'auditoria per a una taula, cada desament es tracta com una actualització independent. Si algú s'atura en un formulari amb canvis no desats durant més de trenta segons, veureu una entrada addicional només si afegeix més dades després que es realitzi el desament automàtic. Si teniu informes que depenen de les dades d'auditoria i tracten cada desament com un "toc" individual d'una fila, és possible que veieu un augment en la freqüència de tocs. Si utilitzeu aquest enfocament, hauríeu de considerar que els comportaments individuals d'usuari són una mètrica no fiable amb o sense el desament automàtic habilitat.
Inhabilitar el desament automàtic per a l'organització.
Si considereu que el desament automàtic provocarà problemes amb alguna extensió que esteu utilitzant, podeu desactivar-lo per a la vostra organització. No hi ha cap configuració per inhabilitar el desament automàtica per a taules o formularis individuals.
Obriu una aplicació basada en models i, a continuació, a la barra d'ordres seleccioneu Configuració
> Configuració avançada.Aneu a Configuració > Administració.
Trieu Configuració del sistema.
Per a l'opció Habilita el desament automàtic a tots els formularis, seleccioneu No.
Inhabilitar el desament automàtic d'un formulari
Si voleu inhabilitar el desament automàtic per a formularis de taula específics, podeu afegir codi a l'esdeveniment OnSave d'una taula.
Nota
El desament automàtic s'inhabilitarà per al formulari, però les dades encara es guardaran quan seleccioneu el botó
de la part inferior dreta. Si intenteu sortir d'un formulari o tancar un formulari on s'han canviat les dades, rebran una sol·licitud per desar els canvis abans de poder sortir o tancar el formulari.
Si utilitzeu el procediment de sota, el botó "Desa i tanca" del formulari no funcionarà, ja que crida preventDefault en saveMode 2, que fa referència a Desa i tanca. Podeu suprimir el fitxer getSaveMode() == 2 de comprovació a continuació per evitar-ho, però aleshores el formulari s'utilitzarà per desar automàticament si intenteu navegar des del formulari o tancar-lo quan han canviat les dades.
Inicieu la sessió a Power Apps.
Expandiu Dades, seleccioneu Taules, seleccioneu la taula que voleu i, a continuació, seleccioneu la pestanya Formularis.
També podeu fer ajustos a les taules des d'una solució. Per fer-ho, seleccioneu Solucions a la subfinestra lateral, seleccioneu la taula i, a continuació, seleccioneu la pestanya Formularis.
Obriu el formulari que voleu editar.
Seleccioneu Canvia a clàssic per editar el formulari al dissenyador de formularis clàssic.
Creeu un recurs web de JavaScript i afegiu-lo al formulari:
A l'editor de formularis, al grup Formulari, trieu Propietats dels formularis.
A la pestanya Incidències, sota Biblioteques de formularis, trieu Afegeix.
Al quadre de diàleg Fila de cerca, trieu Nou.
Introduïu la següent informació al formulari de recurs web:
Càrrec Referència Nom preventAutoSave Nom de visualització Impedir el desament automàtic Tipus Script (JScript) Al costat de la columna Tipus, trieu Editor de text.
A la columna Origen, enganxeu el codi següent:
function preventAutoSave(econtext) { var eventArgs = econtext.getEventArgs(); if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) { eventArgs.preventDefault(); } }Trieu D'acord per tancar l'editor de text.
Trieu Desa per desar el recurs web i després tanqueu-ne la finestra.
Al diàleg Fila de cerca, el nou recurs web que heu creat estarà seleccionat. Trieu Afegeix per tancar el quadre de diàleg.
Configurar la incidència onSave:
A la finestra Propietats dels formularis, a la secció Controladors d'incidències, definiu Incidència a OnSave.
Seleccioneu Afegeix.
A la finestra Propietats del controlador, definiu Biblioteca en el recurs web que heu afegit en el pas previ.
Escriviu "
preventAutoSave" a la columna Funció. Distingeix majúscules de minúscules. No inclogueu cometes.Assegureu-vos que Habilitat està seleccionat.
Seleccioneu Passa el context d'execució com a primer paràmetre.
Important
Si no ho feu, l'script no funcionarà.
El diàleg Propietats del controlador hauria de tenir aquest aspecte. El prefix de personalització: "new_" pot variar segons el prefix de personalització definit per a l'editor per defecte de la vostra organització.

Trieu D'acord per tancar el quadre de diàleg Propietats del gestor.
Si hi ha qualsevol altre controlador d'incidències per a la incidència
OnSave, utilitzeu les fletxes verdes per moure'l a la part superior.Les propietats del formulari s'han de mostrar de la manera següent. Tingueu en compte l'exemple que es mostra a continuació, l'actualització s'ha produït des d'una solució i, com a resultat, el prefix de l'editor (dspin_) no és el mateix que el que proporciona el pubisher predeterminat (new_). Això es deu al fet que un editor diferent s'utilitza per a la solució.
Trieu D'acord per tancar el quadre de diàleg Propietats dels formularis.
Trieu Desa i tanca per tancar el formulari.
A l'explorador de solucions, seleccioneu Publica totes les personalitzacions.
Després d'aplicar aquest script a l'esdeveniment OnSave, quan la gent editi una fila fent servir aquest formulari, el missatge canvis no desats apareixerà a la cantonada inferior esquerra del formulari tal com ho faria si no s'hagués desactivat el desament automàtic. Però aquest missatge no desapareixerà fins que l'usuari seleccioni el botó
que hi ha al costat.