Udostępnij za pośrednictwem


Rozwiązywanie problemów z datą i godziną w aplikacjach opartych na modelu

Kiedy wartości daty i godziny są wyłączone w ciągu dnia lub kilku godzin, może to być spowodowane przez strefy czasowej lub korekty oszczędzania światła dziennego. Ten artykuł zawiera porady dotyczące rozwiązywania problemów, takich jak:

  • Pole Data i godzina zawiera nieprawidłową wartość.
  • Wartość Data zawiera nieprawidłową datę dla niektórych użytkowników i stref czasowych.
  • Pole Data i godzina zawiera poprawną wartość w niektórych częściach aplikacji, ale nie w innych.
  • Po zmianie wartości daty i godziny i zapisaniu jej zmienia się automatycznie na inną wartość.
  • Wprowadzenie daty zmiany światła dziennego powoduje wyłączenie daty o jeden dzień lub godzinę.

Ustal, czy jest to problem z serwerem lub klientem

Aplikacje oparte na modelu to aplikacje internetowe. Pobierają dane z usługi Dataverse w chmurze (serwera). Te same dane mogą zasilać wiele aplikacji (klientów). Błędy mogą wystąpić na serwerze lub kliencie.

Jeśli wartość daty i godziny przechowywanej na serwerze jest nieoczekiwana, prawdopodobnie będzie ona wyświetlana niepoprawnie we wszystkich aplikacjach niezależnie od strefy czasowej użytkownika lub systemu. W związku z tym sprawdzenie wartości serwera jest ważnym pierwszym krokiem.

Sprawdzanie konfiguracji kolumny daty i godziny

Usługa Dataverse obsługuje różne zachowania korekty strefy czasowej dla kolumn daty i godziny (pól). Przed rozwiązaniem problemów ważne jest, aby zrozumieć , jak różne części wartości daty i godziny procesu systemu.

Sprawdź opcje kolumn daty i godziny w portalu usługi Power Apps lub Eksploratorze rozwiązań:

  • Określa, czy jest to konto strefy czasowej użytkownika
  • Określa, czy wyświetla część czasu wartości

Sprawdź, czy poprawna wartość jest przechowywana na serwerze

Wartości daty i godziny są zawsze przechowywane jako UTC na serwerze. Wartość nieprzetworzona na serwerze można wyświetlić za pomocą zapytania internetowego interfejsu API.

Oto zapytanie, aby uzyskać kolumnę dla wiersza (rekordu).

[Organization URI]/api/data/v9.2/<entity set name>(<row id>)?$select=<column name>

Używane nazwy tabel i kolumn są nazwami logicznymi, a nie nazwami wyświetlanymi.

Napiwek

Łatwym sposobem znalezienia identyfikatora wiersza jest otwarcie go w aplikacji opartej na modelu. Identyfikator można znaleźć w adresie URL strony.

Poniższy przykład pobiera kolumnę scheduledstart appointment tabeli dla wiersza o identyfikatorze d2862246-4763-ee11-8def-000d3a34118b.

https://myorg.crm.dynamics.com/api/data/v9.2/appointments(d2862246-4763-ee11-8def-000d3a34118b)?$select=scheduledstart

Wprowadzenie tego elementu na pasku adresu przeglądarki będzie wyglądać mniej więcej tak:

{
    "@odata.context": "https://myorg.crm.dynamics.com/api/data/v9.2/$metadata#appointments(scheduledstart)/$entity",
    "@odata.etag": "W/\"11472725\"",
    "scheduledstart": "2023-10-15T07:30:00Z",
    "activityid": "d2862246-4763-ee11-8def-000d3a34118b"
}

W związku z tym wartość scheduledstart to appointment 15 października 2023, 7:30. Wartość Z na końcu wskazuje, że wartość jest w formacie UTC.

Załóżmy, że użytkownik w strefie czasowej UTC-8 wyświetla tę kolumnę w aplikacji opartej na modelu. Są to oczekiwane wartości dla różnych opcji kolumn.

Zachowanie korekty strefy czasowej Formatuj Wartość wyświetlana w aplikacji
Lokalny użytkownik Data i godzina 14 października 2023 r., 23:30
Lokalny użytkownik Tylko data 14 października 2023 r.
Niezależny od strefy czasowej Data i godzina 15 października 2023 r., 07:30
Niezależny od strefy czasowej Tylko data 15 października 2023 r.
Tylko data - 15 października 2023 r.

Jeśli wartość wyświetlana w aplikacji nie jest poprawna, prawdopodobnie jest to problem z klientem. Jeśli wartość serwera jest niepoprawna do rozpoczęcia, prawdopodobnie występuje problem z serwerem.

Sprawdzanie sformatowanej wartości z serwera

Na serwerze lub w aplikacji można wprowadzić zmiany dotyczące strefy czasowej i światła dziennego. Jeśli ta sama kolumna zawiera inną wartość w różnych częściach aplikacji, prawdopodobnie niektóre części aplikacji używają sformatowanej wartości z serwera, podczas gdy inne robią korekty w aplikacji.

Prawdopodobnie jest to problem. Przed raportowaniem można wyizolować, czy jest to problem z serwerem, czy klientem, sprawdzając sformatowaną wartość z serwera.

Na przykład:

GET https://myorg.crm.dynamics.com/api/data/v9.2/appointments(d2862246-4763-ee11-8def-000d3a34118b)?$select=scheduledstart
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Odpowiedź będzie zawierać wartość dostosowaną przez serwer. W tym przykładzie użytkownik znajduje się w strefie czasowej UTC-8 i scheduledstart ma zachowanie lokalne użytkownika. W związku z tym sformatowana wartość wynosi osiem godzin od wartości pierwotnej.

{
    "@odata.context": "https://myorg.crm.dynamics.com/api/data/v9.2/$metadata#appointments(scheduledstart)/$entity",
    "@odata.etag": "W/\"11472725\"",
    "scheduledstart@OData.Community.Display.V1.FormattedValue": "10/14/2023 11:30 PM",
    "scheduledstart": "2023-10-15T07:30:00Z",
    "activityid": "2ad8786a-9164-ee11-9ae7-0022480a0700"
}

Jeśli ta sformatowana wartość jest niepoprawna, jest to problem z serwerem. Jeśli jest to poprawne, jest to problem z klientem.

Badanie nieoczekiwanych wartości serwera

Możliwe przyczyny nieoczekiwanych wartości serwera to:

  • Być może nie skonfigurowano poprawnego zachowania i formatowania strefy czasowej.
  • Reguły biznesowe i przepływy pracy uruchomione na serwerze mogą zmieniać wartość przed zapisaną wartością lub po jej zapisaniu. W aplikacji skrypty klienta mogą zmieniać wartość przed wysłaniem jej do serwera na potrzeby zapisywania.

Ustal, czy jest to problem z dostosowywaniem, czy problem z produktem

Dostosowania mogą prowadzić do nieoczekiwanego zachowania. Poniższe metody mogą pomóc wykluczyć problemy spowodowane przez dostosowania.

Wyłączanie skryptów niestandardowych

Skrypty niestandardowe często powodują problemy. Spróbuj tymczasowo je wyłączyć.

Tworzenie nowej kolumny daty i godziny

Utworzenie nowej kolumny daty i godziny jest najprostszym sposobem ustalenia, czy problem jest spowodowany błędami konfiguracji lub dostosowaniami, takimi jak reguły biznesowe. Najlepiej użyć innej tabeli i aplikacji.

Jeśli nowa kolumna działa zgodnie z oczekiwaniami, prawdopodobnie jest to problem z dostosowywaniem. Porównaj z oryginalną kolumną, aby znaleźć różnicę.

Jeśli nowa kolumna ma ten sam problem, może to być problem z produktem. Możesz utworzyć aplikację opartą na modelu repro wanilii i zgłosić ją za pomocą wniosku o pomoc techniczną.

Wypróbuj inną strefę czasową

Aby dowiedzieć się, czy zmiany strefy czasowej i światła dziennego powodują nieoczekiwane wartości, spróbuj zmienić strefę czasową użytkownika.

Istnieją dwa ustawienia wpływające na strefy czasowe w aplikacjach opartych na modelu:

  1. Strefa czasowa w opcjach osobistych.
  2. Systemowa strefa czasowa. Aby uzyskać informacje na temat sposobu jej zmiany, zobacz odpowiednią dokumentację w systemach Windows, Android, iOS lub macOS.

Przydatne kombinacje do wypróbowania:

  • Dopasuj strefę czasową w opcjach osobistych do strefy czasowej systemu.
  • Użyj strefy czasowej UTC.
  • Użyj strefy czasowej z tym samym przesunięciem, ale nie obserwuje oszczędzania światła dziennego.

Napiwek

Poniższe metody zawierają więcej szczegółów, aby ułatwić badanie problemów z datą i godziną.

Zmień format "Tylko data" na "Data i godzina"

Jeśli wartość tylko do daty jest wyłączona przez dzień, warto pokazać część czasu, aby sprawdzić, czy korekty strefy czasowej mogą być przyczyną. Możesz tymczasowo zmienić format kolumny w portalu usługi Power Apps lub Eksploratorze rozwiązań.

Nie używaj 2-cyfrowych lat

Dwucyfrowy rok jest niejednoznaczny. Na przykład 40 może oznaczać 1940, 2040 lub 2140. Sposób, w jaki system interpretuje 2-cyfrowe lata, i prawdopodobnie zmieni się w czasie.

Trudno jest również zbadać, kiedy nie są wyświetlane pełne wartości daty i godziny. Z tych powodów zdecydowanie zaleca się używanie 4-cyfrowych lat, zwłaszcza podczas wprowadzania dat.

Jeśli nie możesz trwale przełączyć się na 4-cyfrowe lata, spróbuj tymczasowo rozwiązać problem.

Zobacz też

Zachowanie oraz format kolumn daty i godziny