Udostępnij za pośrednictwem


Zdarzenia telemetrii dla synchronizacji i akcji aplikacji mobilnej

Dane aplikacji mobilnej Power Apps związane ze zdarzeniami synchronizacji offline są teraz dostępne dla aplikacji opartych na modelu i kanwie. Dane te można wykorzystać do oceny kondycji i wydajności zdarzeń synchronizacji offline w organizacji.

Te dane trafiają do Power Apps>Synchronizacja aplikacji mobilnej i tabela akcji w Application Insights. Wpis jest rejestrowany, gdy użytkownik uzyskuje dostęp do aplikacji mobilnej Power Apps, która jest skonfigurowana do trybu offline. Więcej danych związanych z awariami w aplikacjach opartych na modelach jest dostępnych za pośrednictwem Power Apps>UCI.

Synchronizacja aplikacji mobilnej i definicje zdarzeń akcji

  • id: identyfikator wydarzenia.
  • target: Nazwa scenariusza śledzonego przez zdarzenie.
  • type: Tabela źródłowa wydarzenia.
  • name: Nazwa scenariusza śledzonego przez zdarzenie.
  • duration: Czas trwania scenariusza w milisekundach. Czas trwania może obejmować długie okresy, gdy aplikacja jest nieaktywna.
  • operation_Id: Unikalny identyfikator sesji.
  • operation_ParentId: Unikalny identyfikator scenariusza śledzonego przez zdarzenie.
  • user_Id: ID użytkownika Microsoft Entra.
  • application_Version: Wersja aplikacji.
  • customDimensions: Zawiera następujące atrybuty:
    • "EventName": Podsumowanie scenariusza śledzonego przez zdarzenie (ScenarioEnd).
    • "ScenarioResult": SUKCES lub NIEPOWODZENIE.
    • ErrorCode: Kod błędu generowany w przypadku niepowodzenia synchronizacji. Więcej informacji można znaleźć w Tabela mapowania kodów błędów.
    • ErrorMessage: puste w przypadku powodzenia lub ciągu opisującego błąd.
    • FailureType: definiuje typ niepowodzenia synchronizacji.
    • LogLevel: ważność lub poziom raportowania zdarzenia. Prawidłowe wartości to info, error, warning, error lub verbose.
    • DataSyncMode: typ synchronizacji w trybie offline, którego doświadczył użytkownik.
      • DELTA_SYNC: Automatyczna synchronizacja przyrostowa.
      • GRID_SYNC: Wyzwalane przez odświeżenie w widoku siatki.
      • FIRST_SYNC: Początkowa synchronizacja na urządzeniu (lub po wylogowaniu/ponownej konfiguracji).
      • FORCED_SYNC: Wyzwalane za pomocą przycisku strony Stan urządzenia.
      • SINGLE_RECORD_SYNC: Wyzwalane przez powiadomienie push.
    • AppFlavor: aplikacja natywna zainstalowana na urządzeniach. Prawidłowe wartości to FieldService i PowerApps.
    • AppInfo_Version: wersja aplikacji natywnej widoczna w sklepie z aplikacjami.
    • ActiveDuration: czas trwania scenariusza w milisekundach, w tym tylko czas, gdy aplikacja jest aktywna.
    • DeviceInfo_Id: Unikalny identyfikator urządzenia.
    • DeviceInfo_model: Model urządzenia (np. iPhone 13).
    • DeviceInfo_make: Marka urządzenia (np. Apple).
    • DeviceInfo_OsName: System operacyjny urządzenia (taki jak Android).
    • DeviceInfo_OsVersion: Wersja systemu operacyjnego (np. Android 13).
    • Loc_country: Pochodzenie urządzenia telemetrii.
    • eventContext: Zawiera następujące właściwości:
      • CurrentSyncId: identyfikator pomyślnego przebiegu synchronizacji. Resetuj po każdej udanej synchronizacji. (Nie jest resetowane po wystąpieniu błędu).
      • CurrentActivityId: identyfikator przebiegu synchronizacji. Resetuj po każdej synchronizacji.
      • entityName: nazwa tabeli w zdarzeniach pobierania danych.
      • ProfileId: identyfikator profilu offline skonfigurowanego dla aplikacji i użytkownika.
      • RecordCount: liczba pobranych rekordów.
      • ResponseSize: rozmiar danych ładunku przychodzącego zgłoszony przez HTTPClient (rozmiar skompresowany).
      • ContentLength: rozmiar danych ładunku przychodzącego zgłoszony przez HTTPClient (rozmiar skompresowany).

Zdarzenia awarii ujednoliconego interfejsu klienta

  • timestamp [UTC]: Kiedy zdarzenie miało miejsce.
  • problemId: "uci_trace" lub "uciMonitorFailure" (Skąd pochodzą dane).
  • type: "uci_trace" lub "uciMonitorFailure" (Skąd pochodzą dane).
  • outType: "uci_trace" lub "uciMonitorFailure" (Skąd pochodzą dane).
  • outerMessage: Komunikat o błędzie.
  • itemType: "wyjątek"
  • CustomDimensions:
    • eventContext: więcej szczegółów związanych z błędem.
    • ServerConnectivityState: Czy użytkownik jest w trybie offline? (Offline/Online)
    • NetworkConnectivityState: Czy użytkownik ma połączenie z Internetem? Pamiętaj, że użytkownik może być w trybie offline, ale mieć połączenie z Internetem.
    • IsOfflineByDefaultApp: wartość false oznacza, że funkcja Pracuj w trybie offline jest włączona. W przypadku wartości true oznacza to, że włączona jest funkcja offline-first.
    • callStack: kod programowania, w którym wystąpił błąd.
    • hostSubType: "PowerApps-Player-iOS-fieldservice"
    • hostType: "MobileApplication"
  • Operation_ID: Ciąg znaków będący konkatenacją identyfikatora sessionID, po którym następuje znak „_” i tożsamości zewnętrznej, np, e11e8465-bc8f-4319-b64a-9c1e42453148_0da90a33-ad68-4a4e-bd45-5728d5da719a.
  • Operation_ParentID: Identyfikator działania powiązany z błędem.
  • SessionId: identyfikator sesji błędu.
  • UserId: identyfikator użytkownika Dynamics 365.
  • User_authenticatedID: Dynamics 365 identyfikator użytkownika.
  • Application_version: Wersja aplikacji, na przykład, 9.2.24045.00212.
  • Client_Type: wersja systemu operacyjnego, na przykład iOS lub Android.

Przykładowe scenariusze

Błędy synchronizacji w trybie offline według kodu błędu

To zapytanie pozwala zobaczyć, jakie rodzaje awarii napotykają pracownicy pierwszej linii, gdy synchronizacja się nie powiedzie. Wyjątkiem są niektóre awarie, takie jak zamknięcie aplikacji mobilnej podczas synchronizacji lub rozłączenie sieci podczas synchronizacji i uniemożliwienie jej zakończenia. Definicje kodów błędów są przedstawione w Tabela mapowania kodów błędów.

dependencies
| where name == "Offline.SyncDatabase"
| where success == false
| extend cd = parse_json(customDimensions)
| extend AppVersion = tostring(cd.AppInfo_Version)
| extend ErrorCode = tostring(cd.ErrorCode)
| extend ErrorMessage = tostring(cd.ErrorMessage)
| extend FailureType = tostring(cd.FailureType)
| summarize dcount(user_Id), count() by ErrorCode, ErrorMessage, FailureType, bin(timestamp, 1d)

Średnia zsynchronizowanych rekordów według tabeli

To zapytanie pozwala ocenić, które tabele wnoszą najwięcej rekordów do synchronizacji. Korzystając z tych danych, możesz spróbować dalej optymalizować swój profil offline, aby zmniejszyć liczbę rekordów lub danych w każdej tabeli.

dependencies
| where name endswith_cs "Offline.DdsClient.GetRecords"
| extend cd = parse_json(customDimensions)
| extend ec = parse_json(tostring(cd.eventContext))
| extend RecordCount = toint(ec.RecordCount)
| extend EntityName = tostring(ec.EntityName)
| extend syncid = tostring(ec.CurrentSyncId)
| extend DataSyncMode = tostring(cd.DataSyncMode)
//| where DataSyncMode == "FIRST_SYNC" //This is used to pivot on the type of sync being executed.
| summarize sum(RecordCount) by syncid, EntityName, DataSyncMode, user_Id
| summarize percentile(sum_RecordCount, 50), arg_max(sum_RecordCount, user_Id), count() by EntityName, DataSyncMode

Średni czas trwania synchronizacji według trybu synchronizacji

To zapytanie pozwala ocenić średni czas trwania synchronizacji dla użytkowników w organizacji.

dependencies
| where name == "Offline.SyncDatabase"
| extend cd = parse_json(customDimensions)
| extend ActiveDuration = toint(tostring(cd.ActiveDuration))
| extend WithBackgroundTime = duration
| extend DataSyncMode = tostring(cd.DataSyncMode)
| summarize percentile(ActiveDuration, 50), percentile(WithBackgroundTime, 50) by client_Type, DataSyncMode

Szczegóły synchronizacji według użytkownika

To zapytanie zapewnia widok synchronizacji dla poszczególnych użytkowników, w tym datę ostatniej synchronizacji, ostatni błąd, czas trwania synchronizacji i zsynchronizowane rekordy.

dependencies
| where name == "Offline.SyncDatabase"
| extend cd = parse_json(customDimensions)
| extend ActiveDuration = toint(tostring(cd.ActiveDuration))
| extend WithBackgroundTime = duration
| extend DataSyncMode = tostring(cd.DataSyncMode)
| extend ErrorMessage = tostring(cd.ErrorMessage)
| summarize percentile(ActiveDuration, 50), percentile(WithBackgroundTime, 50), arg_max(timestamp, ErrorMessage), countif(success == false) by user_Id, DataSyncMode

Użytkownicy według typu urządzenia i wersji aplikacji

To zapytanie zawiera więcej informacji o użytkownikach w organizacji, którzy uzyskują dostęp do aplikacji mobilnej na swoim modelu urządzenia.

dependencies
| where name == "Offline.SyncDatabase"
| extend cd = parse_json(customDimensions)
| extend AppVersion = tostring(cd.AppInfo_Version)
| summarize dcount(user_Id) by AppVersion, client_Type

Mapowanie kodów błędów

Kod błędu Typ błędu Definicja
-2146864604 CONFIG_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2146864606 CONFIG_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2146864607 CONFIG_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2146864608 CONFIG_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2146869250 CONFIG_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147015328 ACCESS_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147088248 CONFIG_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147155198 BŁĄD Kody błędów zaczynające się od -214, zobacz <Kody błędów usługi WWW.
-2147155198 ACCESS_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147167669 ACCESS_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147180269 ACCESS_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147180284 ACCESS_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147187375 BŁĄD Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147187388 BŁĄD Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147187389 BŁĄD Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147204270 BŁĄD Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147204339 BŁĄD Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147204784 BŁĄD Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147209463 ACCESS_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147217124 BŁĄD Kody błędów zaczynające się od -214, zobacz <Kody błędów usługi WWW.
-2147220884 BŁĄD Kody błędów zaczynające się od -214, zobacz <Kody błędów usługi WWW.
-2147220955 ACCESS_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147220956 EXTERNAL_ERROR Kody błędów zaczynające się od -214, zobacz <Kody błędów usługi WWW.
-2147220960 ACCESS_ERROR Błąd aplikacji lub konfiguracji użytkownika. Zobacz Kody błędów usługi WWW.
-2147220970 BŁĄD Kody błędów zaczynające się od -214, zobacz <Kody błędów usługi WWW.
-2147220989 BŁĄD Kody błędów zaczynające się od -214, zobacz <Kody błędów usługi WWW.
-50 BŁĄD Błąd wewnętrzny.
0 BŁĄD Nieznany błąd.
2000 BŁĄD Niezmapowany błąd.
2002 BŁĄD Limit czasu SQL Dataverse.
2003 DATABASE_ERROR Błąd bazy danych.
2004 NETWORK_ERROR Błąd sieci.
2005 SERVER_ERROR Błąd serwera.
2006 AUTH_ERROR Błąd uwierzytelniania.
2007 DEVICE_ERROR Błąd zapełnienia dysku.
2008 BŁĄD Błąd wewnętrzny.
2009 AUTH_ERROR Błąd uwierzytelniania.
2011 CONFIG_ERROR Błąd uprawnień modułu aplikacji.
2016 CONFIG_ERROR Błąd konfiguracji offline.
2017 CONFIG_ERROR Błąd konfiguracji profilu offline.
3000 EXPECTED_ERROR Zdarzenie wewnętrzne synchronizacji.
3003 CONFIG_ERROR Błąd konfiguracji profilu offline.