Compartilhar via


Solucionar problemas de data e hora em aplicativos controlados por modelo

Quando os valores de data e hora estão desativados por um dia ou algumas horas, isso pode ser causado por ajustes de fuso horário ou horário de verão. Este artigo fornece dicas para solucionar problemas como:

  • O campo Data e Hora mostra o valor errado.
  • O valor Date só mostra a data errada para alguns usuários e fusos horários.
  • O campo Data e Hora mostra o valor correto em algumas partes do aplicativo, mas não em outras.
  • Depois de alterar um valor de data e hora e salvá-lo, ele muda automaticamente para um valor diferente.
  • Inserir uma data de alternância do horário de verão resulta na desativação da data em um dia ou na hora de folga por uma hora.

Determinar se é um problema de servidor ou cliente

Aplicativos controlados por modelos são aplicativos Web. Eles obtêm dados do servidor (serviço de nuvem do Dataverse). Os mesmos dados podem alimentar vários aplicativos (clientes). Erros podem ocorrer no servidor ou no cliente.

Se o valor de data e hora armazenado no servidor for inesperado, ele provavelmente aparecerá incorretamente em todos os aplicativos, independentemente do fuso horário do usuário ou do sistema. Portanto, verificar o valor do servidor é uma primeira etapa importante.

Verificar a configuração da coluna data e hora

O Dataverse dá suporte a diferentes comportamentos de ajuste de fuso horário para colunas de data e hora (campos). Antes de solucionar problemas, é importante entender como diferentes partes dos valores de data e hora do processo do sistema.

Verifique as opções de coluna de data e hora no portal do Power Apps ou no gerenciador de soluções:

  • Se ele é responsável pelo fuso horário de um usuário
  • Se ele exibe a parte temporal do valor

Verifique se o valor correto está armazenado no servidor

Os valores de data e hora são sempre armazenados como UTC no servidor. Você pode exibir o valor bruto no servidor com uma consulta de API Web.

Aqui está uma consulta para obter uma coluna para uma linha (registro).

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

A tabela e os nomes de coluna usados são nomes lógicos, não nomes de exibição.

Dica

Uma maneira fácil de encontrar a ID de uma linha é abri-la em um aplicativo controlado por modelo. A ID pode ser encontrada na URL da página.

O exemplo a seguir obtém a scheduledstart coluna da appointment tabela para a linha com ID d2862246-4763-ee11-8def-000d3a34118b.

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

Inserir isso na barra de endereços do navegador mostrará algo como o seguinte:

{
    "@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"
}

Portanto, a scheduledstartappointment do é 15 de outubro de 2023, 7h30. O Z no final indica que o valor está em UTC.

Digamos que um usuário no fuso horário UTC-8 exiba esta coluna em um aplicativo controlado por modelos. Estes são os valores esperados para as diferentes opções de coluna.

Comportamento de ajuste de fuso horário Formatar Valor mostrado no aplicativo
User Local Data e hora 14 de outubro de 2023, 23h30
User Local Somente data 14 de outubro de 2023
Time-Zone Independente Data e hora 15 de outubro de 2023, 7h30
Time-Zone Independente Somente data 15 de outubro de 2023
Somente data - 15 de outubro de 2023

Se o valor mostrado no aplicativo não for ajustado corretamente, provavelmente será um problema do cliente. Se o valor do servidor estiver incorreto para começar, provavelmente será um problema de servidor.

Verifique o valor formatado do servidor

Ajustes de fuso horário e horário de verão podem ser feitos no servidor ou no aplicativo. Se a mesma coluna mostrar um valor diferente em diferentes partes do aplicativo, é provável que algumas partes do aplicativo estejam usando o valor formatado do servidor, enquanto outras estão fazendo os ajustes no aplicativo.

Isso provavelmente é um problema. Antes de reportá-lo, você pode isolar se é um problema de servidor ou cliente verificando o valor formatado do servidor.

Por exemplo,

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"

A resposta incluirá o valor ajustado pelo servidor. Neste exemplo, o usuário está no fuso horário UTC-8 e scheduledstart tem comportamento local do usuário . Portanto, o valor formatado está oito horas atrás do valor bruto.

{
    "@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"
}

Se esse valor formatado estiver incorreto, ele será um problema de servidor. Se estiver correto, será um problema do cliente.

Investigar valores inesperados do servidor

Os possíveis motivos para valores inesperados do servidor são:

  • Talvez você não tenha configurado o comportamento e o formato de ajuste de fuso horário corretamente.
  • Regras denegócios e fluxos de trabalho em execução no servidor podem alterar o valor antes ou depois de salvo. Dentro de um aplicativo, os scripts do cliente podem alterar o valor antes de enviá-lo para o servidor para salvar.

Determinar se é um problema de personalização ou produto

Personalizações podem levar a um comportamento inesperado. Os métodos a seguir podem ajudar a excluir problemas causados por personalizações.

Desabilitar scripts personalizados

Scripts personalizados frequentemente causam problemas. Tente desativá-los temporariamente.

Criar uma nova coluna de data e hora

Criar uma nova coluna de data e hora é a maneira mais fácil de descobrir se o problema é causado por erros de configuração ou personalizações como regras de negócios. Idealmente, use uma tabela e um aplicativo diferentes.

Se a nova coluna funcionar conforme o esperado, provavelmente será um problema de personalização. Compare com a coluna original para encontrar a diferença.

Se a nova coluna tiver o mesmo problema, pode ser um problema de produto. Você pode criar um aplicativo baseado em modelo de reprodução de baunilha e denunciá-lo por meio de uma solicitação de suporte.

Experimente um fuso horário diferente

Para descobrir se os ajustes de fuso horário e horário de verão estão causando valores inesperados, tente alterar o fuso horário do usuário.

Há duas configurações que afetam fusos horários em aplicativos controlados por modelos:

  1. Fuso horário em opções pessoais.
  2. Fuso horário do sistema. Para obter informações sobre como alterá-lo, consulte a respectiva documentação no Windows, Android, iOS ou macOS.

Combinações úteis para tentar:

  • Corresponda ao fuso horário em opções pessoais com o fuso horário do sistema.
  • Use o fuso horário UTC.
  • Use um fuso horário com o mesmo deslocamento, mas não observe o horário de verão.

Dica

Os métodos a seguir fornecem mais detalhes para facilitar a investigação de problemas de data e hora.

Alterar o formato "Somente data" para "Data e Hora"

Se um valor somente data estiver desativado por um dia, será útil mostrar a parte de tempo para ver se os ajustes de fuso horário podem ser a causa. Você pode alterar temporariamente o formato de coluna no portal do Power Apps ou no gerenciador de soluções.

Não use anos de 2 dígitos

O ano de 2 dígitos é ambíguo. Por exemplo, 40 podem significar 1940, 2040 ou 2140. Como o sistema interpreta anos de 2 dígitos pode e provavelmente mudará ao longo do tempo.

Também é difícil investigar quando os valores de data e hora completos não são mostrados. Por esses motivos, é altamente recomendável usar anos de 4 dígitos, especialmente ao inserir datas.

Se você não puder mudar para 4 dígitos permanentemente, tente-o temporariamente para ajudar a solucionar problemas.

Confira também

Comportamento e formato da coluna Data e Hora