Rozwiązywanie konfliktów synchronizacji z serwerem
Ten artykuł zawiera informacje pomocne w rozwiązywaniu konfliktów synchronizacji mobilnej z serwerem.
Tabela błędów synchronizacji
W przypadku wystąpienia błędu synchronizacji, system automatycznie generuje nowy wpis w tabeli Błąd synchronizacji w Dataverse. Tabela ta składa się z następujących kolumn.
Nazwa kolumny | Podpis | Przykład |
---|---|---|
Godzina błędu | Czas utworzenia błędu. | 17/5/2024 7:16 rano |
Komunikat błędu | Opis błędu. | Entity Account With Id = <RowId> Does Not Exist |
Typ błędu | Typ błędu, taki jak konflikt lub błąd nie znaleziono rekordu. | Nie znaleziono rekordu |
Nagraj | Zaktualizowany rekord w błędzie synchronizacji. | Contoso |
Właściciel | Użytkownik, który zaktualizował rekord. | John Doe |
Akcja | Akcja zastosowana do rekordu do synchronizacji. | Zaktualizuj |
Dane akcji | Json zawierający ładunek akcji. | {"lastname":"Contoso2"} |
Zażądaj danych | Json zawierający zapytanie. | {"lastname":"Contoso2","syncerror__regardingentityid":<syncerrorId>,"entitylogicalname":"account"} |
Kod błędu | Kod błędu. | -2147015424 |
Uwaga
Upewnij się, że rola przypisana do użytkownika przyznaje uprawnienia do odczytu w tabeli Błąd synchronizacji. Dowiedz się więcej: Tworzenie i edytowanie roli zabezpieczeń w celu zarządzania dostępem
Zalecenia dotyczące korzystania z tabeli błędów synchronizacji
Tabela Błąd synchronizacji jest standardową tabelą Dataverse. Zalecamy utworzenie aplikacji aplikacja oparta na modelu do zarządzania błędami synchronizacji.
Po uruchomieniu aplikacji opartej na modelu można zobaczyć błędy synchronizacji dla każdego użytkownika. Jeśli wybierzesz wiersz błędu synchronizacji, możesz Przywróć zmiany z paska poleceń.
Błąd synchronizacji na stronie stanu urządzenia
Błędy synchronizacji są natywnie wyświetlane na stronie Status urządzenia. Strona Stan urządzenia jest dostępna od razu w aplikacjach opartych na modelu, ale musi być skonfigurowana w aplikacji kanwy. Więcej informacji można znaleźć w sekcji Używanie szablonu offline i ikony stanu offline.
Użyj przepływu w chmurze, aby podejmować działania w przypadku błędów synchronizacji
Można utworzyć zautomatyzowany przepływ w chmurze w Power Automate przy użyciu wyzwalacza Dataverse po dodaniu, zmodyfikowaniu lub usunięciu wiersza. Przepływ może automatycznie wysłać wiadomość e-mail lub wysłać powiadomienie na urządzeniu.
Uwaga
Aby pobrać adres e-mail użytkownika w ramach przepływu, dodaj akcję Dataverse Pobierz wiersz według ID przy użyciu kolumny Właściciel wiersza Błąd synchronizacji.
Konflikty synchronizacji
Jeśli występuje niezgodność danych między klientem a serwerem, wystąpią błędy konfliktów. Domyślnie zmiany wprowadzone przez użytkownika w trybie offline są automatycznie synchronizowane z serwerem, gdy użytkownik powróci do trybu online.
Jak rozwiązywane są konflikty synchronizacji
Kiedy użytkownik wprowadza zmiany do danych w aplikacji w trybie offline, aktualizacje każdej kolumny są wypychane do Dataverse, gdy tylko sieć jest dostępna. Ostatnia aktualizacja każdej kolumny jest przechowywana w Dataverse, dzięki czemu synchronizacja nie zakończy się niepowodzeniem z powodu konfliktów zmian.
Dodatki plug-in i sprawdzanie poprawności na serwerze mogą spowodować nieprawidłowe zmiany. Te zmiany są cofane lokalnie, a w tabeli Dataverse Błędy synchronizacji jest zapisywany błąd.
Ustawienia rozwiązywania konfliktów
Ważne
Ustawienia rozwiązywania konfliktów nie mają zastosowania do aplikacji opartych na kanwie.
Jeśli aktualizacje dokonywane w trybie offline są zbyt często odrzucane, należy rozważyć zmianę ustawienia rozwiązywania konfliktów na wartość domyślną.
- Zaloguj się w Centrum administracyjnym Power Platform.
- Wybierz Środowiska w okienku nawigacji.
- Wybierz środowisko.
- Wybierz Ustawienia na pasku poleceń.
- Wybierz Produkt > Funkcje.
- W sekcji Zaawansowane ustawienia mobilnej synchronizacji offline dla aplikacji opartych na modelu wyłącz opcję Włącz wykrywanie konfliktów dla mobilnej synchronizacji offline.
Uwaga
Gdy ta opcja jest włączona (niezalecane), aktualizacje na serwerze mogą uniemożliwić zastosowanie aktualizacji klienta. Błędy konfliktu muszą być rozwiązywane ręcznie.