Udostępnij za pośrednictwem


Wyłączanie AutoSave w aplikacji opartej na modelu

AutoSave pomaga użytkownikom aplikacji skupić się na pracy bez konieczności pamiętania o zapisywaniu danych w formularzu. Większość osób ceni sobie nie trzeba jawnie zapisywać danych przy każdej aktualizacji wiersza, ale w niektórych organizacjach mogą być dostosowania przeznaczone do jawnego zapisu. Dla tych organizacji istnieją opcje zarządzania zastosowaniem funkcji AutoSave.

Na czym polega AutoSave

Domyślnie dla wszystkich głównych formularzy dla zaktualizowanych i klasycznych tabel włączono funkcję AutoSave. Po utworzeniu wiersza (początkowo zapisanego) wszystkie zmiany wprowadzone w formularzu są automatycznie zapisywane po 30 sekundach od tej zmiany. Jeśli w formularzu nie zostaną wprowadzone żadne zmiany, automatyczne zapisywanie nie zostanie wykonane, kiedy formularz jest otwarty. Po w zmienianiem jest 30-sekundowy okres przed rozpoczęciem AutoSave. Jeśli w czasie edytowania wiersz został zaktualizowany przez inną osobę, zmiany te są pobierane i wyświetlane w formularzu po AutoSave.

Po włączeniu funkcji AutoSave przycisk Zapisz jest wyświetlany tylko dla pierwszego zapisu wiersza. Po utworzeniu wiersza, na pasku poleceń nie jest wyświetlany przycisk zapisywania, ale można zobaczyć przycisk Przycisk Autozapisywanie. w prawym dolnym rogu, który będzie pokazywał, czy są jakieś niezapisane zmiany. Ten formant jest również wyświetlany po wyłączeniu AutoSave.

Można wybrać ten przycisk, aby zapisać wiersz i natychmiast odświeżyć dane w formularzu. Po włączeniu AutoSave wiersz będzie zapisywany przy każdym opuszczaniu wiersza lub zamykaniu okna wyświetlającego wiersz. Nie trzeba przycisku klikać przycisku Zapisz i zamknij, który jest wyświetlany w formularzach w przypadku tabel, które nie zostały zaktualizowane.

Czy należy wyłączyć funkcję AutoSave?

Jeśli masz dodatki typu plug-in, przepływy pracy lub skrypty formularzy, które są uruchamiane w momencie zapisywaniu wiersza, będą one uruchamiane przy każdym automatycznym zapisywaniu. Może to prowadzić do niepożądanych zachowań, jeśli rozszerzenia te nie zostały zaprojektowane do pracy z automatycznym zapisywaniem. Bez względu na to, czy włączono AutoSave czy nie, dodatki plug-in, przepływy pracy i skrypty formularzy powinny być przeznaczone do wyszukiwania określonych zmian i nie należy ich realizować niejawnie dla każdego zdarzenia zapisywania.

Jeśli masz inspekcje skonfigurowane dla tabeli, każde zapisywanie jest traktowane jak oddzielna aktualizacja. Jeśli ktoś zatrzymuje się na formularzu zawierającym niezapisane zmiany przez ponad 30 sekund, zobaczysz dodatkowy wpis tylko wtedy, gdy tamten użytkownik doda więcej danych po przeprowadzeniu automatycznego zapisywania. Jeśli masz raporty, które zależą od inspekcji danych i traktują każde zapisywanie jak „dotknięcie” wiersza, możesz zauważyć zwiększenie częstotliwości dotknięć. W przypadku korzystania z tego podejścia należy pamiętać, że zachowania poszczególnych użytkowników mogą sprawić, że będzie to niespodziewana metryka z włączoną obsługą funkcji AutoSave lub bez niego.

Wyłącz AutoSave dla organizacji

Jeśli zostanie stwierdzine, że funkcja AutoSave powoduje problemy z przy użyciu rozszerzeń, administratorzy Power Platform mogą wyłączyć tę funkcję dla środowiska. Nie ma ustawienia pozwalającego wyłączyć AutoSave dla poszczególnych tabeli lub formularzy.

  1. Zaloguj się do Centrum administracyjnego Power Platform, a następnie wybierz Zarządzanie>Środowiska a potem otwórz żądane środowisko.
  2. Na pasku poleceń wybierz Ustawienia.
  3. Rozwiń Produkt, a następnie wybierz opcję Zachowanie.
  4. W obszarze Podstawowe zachowanie dla opcji Automatyczne zapisywanie wybierz opcję Wyłączony.

Wyłączanie funkcji AutoSave dla formularza

Aby wyłączyć funkcję AutoSave dla określonych formularzy tabel, OnSave można dodać kod do zdarzenia w tabeli.

Notatka

Dzięki tej metodzie automatyczne zapisywanie jest wyłączone dla formularza, ale dane są nadal zapisywane po wybraniu Przycisk Autozapisywanie. w prawym dolnym rogu. Przy próbie opuszczania lub zamykania formularza, w którym zostały zmienione dane, otrzymasz monit przypominający o konieczności zapisania zmian przed uzyskaniem możliwości opuszczenia lub zamknięcia formularza.

Użycie poniższej procedury spowoduje, że przycisk Zapisz i zamknij na formularzu nie będzie działał, ponieważ wywołuje ona preventDefault na saveMode 2, który odwołuje się do Zapisz i zamknij. Możesz usunąć poniższe zaznaczenie getSaveMode() == 2, aby tego uniknąć, ale wtedy formularz będzie autozapisywany jeśli spróbujesz odejść od formularza lub zamknąć formularz, w którym dane uległy zmianie. Przycisk Zapisz i kontynuuj również nie działa z tego powodu.

  1. Zaloguj się w Power Apps.

  2. Wybierz Tabele w lewym okienku nawigacji wybierz żądaną tabelę, a następnie wybierz obszar Formularze. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.

    Można również dokonać zmian w tabelach z poziomu rozwiązania. W tym celu wybierz opcję Rozwiązania w lewym okienku, wybierz tabelę, a następnie wybierz Formularze. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.

  3. Otwórz formularz, który chcesz edytować.

  4. Wybierz Przejdź do widoku klasycznego, aby edytować formularz w projektancie klasycznych formularzy.

  5. Utwórz zasób sieci Web JavaScript i dodaj go do formularza:

    1. W edytorze formularzy, w grupie Formularz, wybierz Właściwości formularza.

    2. Na karcie Zdarzenia, w Biblioteki formularzy wybierz Dodaj.

    3. W oknie dialogowym Wyszukiwanie wiersza wybierz Nowy.

    4. W formularzu zasobu sieci Web wprowadź następujące informacje:

      Nazwa Referencje
      Imię i nazwisko/nazwa preventAutoSave
      Wyświetlana nazwa Zapobieganie AutoSave
      Type Skrypt (JScript)
    5. Obok kolumny Typ, wybierz Edytor tekstu.

    6. W kolumnie Źródło, wklej następujący kod:

      function preventAutoSave(econtext) {  
          var eventArgs = econtext.getEventArgs();  
          if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) {  
              eventArgs.preventDefault();  
          }  
      }  
      
      
    7. Wybierz OK, aby zamknąć edytor tekstów.

    8. Wybierz Zapisz, aby zapisać zasób sieci web, a następnie zamknij okno zasobu sieci web.

    9. Utworzony zasób internetowy jest teraz wybrany w oknie dialogowym Wyszukiwanie wiersza. Kliknij przycisk Dodaj, aby zamknąć okno dialogowe.

  6. Konfigurowanie zdarzenia OnSave:

    1. W oknie Właściwości formularza, w sekcji Obsługa zdarzeń, ustaw Zdarzenia na OnSave.

    2. Wybierz Dodaj.

    3. W oknie Właściwości obsługi, ustaw Biblioteka dla zasobu sieci Web dodanego w poprzednim kroku.

    4. Wpisz „preventAutoSave” w kolumnie Funkcja. Wielkość liter jest tu istotna. Nie należy stosować znaków cudzysłowu.

    5. Upewnij się, że zaznaczyłeś Włączone.

    6. Zaznacz Przekaż kontekst uruchomienia jako pierwszy parametr.

      Ważne

      Jeśli tego nie zrobisz skrypt nie będzie działać.

      Okno dialogowe Właściwości obsługi powinno wyglądać następująco. Prefiks dostosowywania: "new_" może się różnić w zależności od prefiksu dostosowywania ustawionego dla wydawcy domyślnego dla organizacji.

      Program obsługi zdarzeń OnSave uniemożliwiający automatyczne zapisywanie w Dynamics 365.

    7. Wybierz OK, aby zamknąć okno dialogowe Właściwości obsługi.

    8. Jeśli istnieją inne obsługi zdarzenia dla zdarzenia OnSave, użyj zielonych strzałek, aby przenieść to zdarzenie do góry.

      Właściwości formularza powinny być wyświetlane w następujący sposób. Uwaga w tym przykładzie: aktualizacja ma miejsce z poziomu rozwiązania, a w wyniku tego prefiks wydawcy (dspin_) nie jest taki sam, jak prefiks dostarczany przez wydawcę domyślnego (new_). Względu na to, że do rozwiązania jest używany inny wydawca.

    Ustawienia zaawansowane

  7. Wybierz OK, aby zamknąć okno dialogowe Właściwości formularza.

  8. Wybierz Zapisz i zamknij, aby zamknąć formularz.

  9. W eksploratorze rozwiązań kliknij Publikuj wszystkie dostosowania.

Po zastosowaniu tego skryptu do zdarzenia OnSave podczas edytowania wiersza przez użytkowników za pomocą formularza, pojawia sie wiadomość niezapisane zmiany w prawym dolnym rogu formularza, tak jak w przypadku, gdy funkcja AutoSave nie jest wyłączona. Ale ten komunikat nie zniknie, dopóki użytkownik nie wybierze przycisku Przycisk Autozapisywanie. obok niego.

Następne kroki

Tworzenie i projektowanie formularzy