Partilhar via


Eventos de telemetria para sincronização e ações de aplicações móveis

Os dados da aplicação Power Apps Mobile relacionados com eventos de sincronização offline estão disponíveis para aplicações condicionadas por modelo e de tela. Estes dados podem ser utilizados para avaliar a integridade e o desempenho dos eventos de sincronização offline da sua organização.

Estes dados entram na tabela Power Apps>Sincronização e ações da aplicação móvel no Application Insights. Uma entrada é registada quando um utilizador acede a uma aplicação móvel do Power Apps, a qual está configurada para o modo offline. Mais dados, relacionados a eventos de falha em aplicativos orientados por modelo, estão disponíveis através da Power Apps>UCI.

Sincronização de aplicações móveis e definições de eventos de ação

  • id: ID do evento.
  • destino: Nome do cenário rastreado pelo evento.
  • tipo: Tabela de origem do evento.
  • name: Nome do cenário controlado pelo evento.
  • duração: Duração do cenário em milissegundos. A duração pode incluir longos períodos de tempo quando a aplicação está inativa.
  • operation_Id: Identificador exclusivo da sessão.
  • operation_ParentId: Identificador exclusivo do cenário rastreado pelo evento.
  • user_Id: ID de utilizador do Microsoft Entra.
  • application_Version: Versão da aplicação.
  • customDimensions: contém os seguintes atributos:
    • "EventName": Resumo do cenário rastreado pelo evento (ScenarioEnd).
    • "ScenarioResult": SUCESSO ou FALHA.
    • ErrorCode: Código de erro gerado após falha da sincronização. Mais informações em Tabela de mapeamento de códigos de erro.
    • ErrorMessage: Vazio se sucesso ou cadeia de carateres a descrever o erro.
    • FailureType: Define o tipo de falha de sincronização.
    • LogLevel: O nível de gravidade ou de reporte do evento. Os valores válidos são info, erro, aviso, erro ou verboso.
    • DataSyncMode: O tipo de sincronização offline que o utilizador experimentou.
      • DELTA_SYNC: Sincronização incremental automática.
      • GRID_SYNC: Acionado por uma atualização numa vista de grelha.
      • FIRST_SYNC: Sincronização inicial num dispositivo (ou após uma saída/reconfiguração).
      • FORCED_SYNC: Acionado a partir do botão da página Estado do Dispositivo.
      • SINGLE_RECORD_SYNC: Acionado por Notificação push.
    • AppFlavor: Aplicação nativa instalada nos dispositivos. Valores válidos são FieldService e PowerApps.
    • AppInfo_Version: Versão da aplicação nativa, conforme visto na loja de aplicações.
    • ActiveDuration: Duração do cenário em milissegundos, incluindo apenas o tempo enquanto a aplicação está ativa.
    • DeviceInfo_Id: Identificador exclusivo do dispositivo.
    • DeviceInfo_model: Modelo do dispositivo (como o iPhone 13).
    • DeviceInfo_make: Marca do dispositivo (como Apple).
    • DeviceInfo_OsName: Sistema operativo do dispositivo (como Android).
    • DeviceInfo_OsVersion: Versão do sistema operativo (como Android 13).
    • Loc_country: Origem do dispositivo de telemetria.
    • eventContext: Contém as seguintes propriedades:
      • CurrentSyncId: ID de uma passagem de sincronização bem-sucedida. Repor após cada sincronização bem-sucedida. (Não é reposto após um erro.)
      • CurrentActivityId: ID do passo de sincronização. Repor após cada sincronização.
      • entityName: Nome da tabela em eventos de transferência de dados.
      • ProfileId: ID do perfil offline configurado para a aplicação e utilizador.
      • RecordCount: Número de registos transferidos.
      • ResponseSize: Tamanho dos dados de payload de entrada conforme comunicado pelo HTTPClient (tamanho compactado).
      • ContentLength: Tamanho dos dados de payload de entrada conforme comunicado pelo HTTPClient (tamanho compactado).

Eventos de falha da Interface de Cliente Unificada

  • carimbo de data/hora [UTC]: Quando o evento aconteceu.
  • problemId: "uci_trace" ou "uciMonitorFailure" (De onde vieram os dados.)
  • tipo: "uci_trace" ou "uciMonitorFailure" (De onde vieram os dados.)
  • outType: "uci_trace" ou "uciMonitorFailure" (De onde vieram os dados.)
  • outerMessage: Mensagem de erro.
  • itemType: "exceção"
  • CustomDimensions:
    • eventContext: Mais detalhes relacionados com o erro.
    • ServerConnectivityState: O utilizador está no modo offline? (Offline/Online)
    • NetworkConnectivityState: O utilizador tem ligação à Internet? Note que um utilizador pode estar no modo offline, mas ter uma ligação à Internet.
    • IsOfflineByDefaultApp: Quando false, significa que a caraterística Trabalhar em modo offline está ativada. Quando true, significa que primeiro offline está ativado.
    • callStack: O código de programação onde o erro ocorreu.
    • hostSubType: "PowerApps-Player-iOS-fieldservice"
    • hostType: "MobileApplication"
  • Operation_ID: Uma concatenação de cadeia de sessionID seguida por "_" e ID de correlação Externa, por exemplo, e11e8465-bc8f-4319-b64a-9c1e42453148_0da90a33-ad68-4a4e-bd45-5728d5da719a.
  • Operation_ParentID: ID da atividade relacionada com o erro.
  • SessionId: ID da sessão do erro.
  • UserId: ID de utilizador do Dynamics 365.
  • User_authenticatedID: ID de utilizador do Dynamics 365.
  • Application_version: Versão da aplicação, por exemplo, 9.2.24045.00212.
  • Client_Type: Versão do sistema operativo, como iOS ou Android.

Cenários de exemplo

Falhas de sincronização offline por código de erro

Esta consulta permite que veja os tipos de falhas que os trabalhadores de primeira linha estão a encontrar quando uma sincronização falha. Algumas falhas são esperadas, como se a aplicação móvel for fechada durante a sincronização ou se a rede se desligar durante a sincronização e impedir que a sincronização seja concluída. A definição de códigos de falha é mostrada na Tabela de mapeamento de códigos de erro.

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)

Média de registros sincronizados por tabela

Esta consulta permite-lhe avaliar que tabelas estão a contribuir com a maioria dos registos para uma sincronização. Com estes dados, pode tentar otimizar o seu perfil offline ainda mais para reduzir registos ou dados dentro de cada tabela.

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

Duração média da sincronização por modo de sincronização

Esta consulta permite-lhe avaliar a duração média da sincronização para os utilizadores na sua organização.

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

Detalhes de sincronização por utilizador

Esta consulta fornece uma vista da sincronização por utilizador, incluindo a data da última sincronização, o último erro, a duração da sincronização e os registos sincronizados.

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

Utilizadores por tipo de dispositivo e versão da aplicação

Esta consulta fornece mais informações sobre os utilizadores na sua organização que estão a aceder à aplicação móvel no respetivo modelo de dispositivo.

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

Mapeamento de código de erro

Código de erro Tipo de falha Definição
-2146864604 CONFIG_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2146864606 CONFIG_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2146864607 CONFIG_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2146864608 CONFIG_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2146869250 CONFIG_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147015328 ACCESS_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147088248 CONFIG_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147155198 ERRO Para códigos de erro que começam em –214, consulte Códigos de erro de serviço Web.
-2147155198 ACCESS_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147167669 ACCESS_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147180269 ACCESS_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147180284 ACCESS_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147187375 ERRO Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147187388 ERRO Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147187389 ERRO Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147204270 ERRO Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147204339 ERRO Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147204784 ERRO Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147209463 ACCESS_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147217124 ERRO Para códigos de erro que começam em –214, consulte Códigos de erro de serviço Web.
-2147220884 ERRO Para códigos de erro que começam em –214, consulte Códigos de erro de serviço Web.
-2147220955 ACCESS_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147220956 EXTERNAL_ERROR Para códigos de erro que começam em –214, consulte Códigos de erro de serviço Web.
-2147220960 ACCESS_ERROR Erro de configuração da aplicação ou do utilizador. Consulte Códigos de erro do serviço Web.
-2147220970 ERRO Para códigos de erro que começam em –214, consulte Códigos de erro de serviço Web.
-2147220989 ERRO Para códigos de erro que começam em –214, consulte Códigos de erro de serviço Web.
-50 ERRO Erro interno.
0 ERRO Erro desconhecido.
2000 ERRO Erro não mapeado.
2002 ERRO Tempo limite do SQL do Dataverse.
2003 DATABASE_ERROR Erro na base de dados.
2004 NETWORK_ERROR Erro de rede.
2005 SERVER_ERROR Erro de servidor.
2006 AUTH_ERROR Erro de autenticação.
2007 DEVICE_ERROR Erro de disco cheio.
2008 ERRO Erro interno.
2009 AUTH_ERROR Erro de autenticação.
2011 CONFIG_ERROR Erro de privilégio do módulo da aplicação.
2016 CONFIG_ERROR Erro de configuração offline.
2017 CONFIG_ERROR Erro de configuração de perfil offline.
3000 EXPECTED_ERROR Evento interno de sincronização.
3003 CONFIG_ERROR Erro de configuração de perfil offline.