Risolvere i problemi relativi a data e ora nelle app basate su modello
Quando i valori di data e ora sono disattivati di un giorno o di alcune ore, potrebbe essere causato da modifiche al fuso orario o all'ora legale. Questo articolo fornisce suggerimenti per risolvere i problemi, ad esempio:
- Il campo Data e ora mostra il valore errato.
- Il valore Solo data indica la data errata per alcuni utenti e fusi orari.
- Il campo Data e ora mostra il valore corretto in alcune parti dell'app, ma non in altri.
- Dopo aver modificato un valore di data e ora e salvarlo, viene modificato automaticamente in un valore diverso.
- L'immissione di una data di cambio dell'ora legale comporta la disattivazione della data entro un giorno o l'ora di disattivazione di un'ora.
Determinare se si tratta di un problema del server o del client
Le app basate su modello sono app Web. Ottengono dati dal servizio cloud Dataverse (server). Gli stessi dati possono supportare più app (client). Gli errori possono verificarsi nel server o nel client.
Se il valore di data e ora archiviato nel server è imprevisto, è probabile che venga visualizzato in modo errato in tutte le app indipendentemente dal fuso orario utente o di sistema. Pertanto, la verifica del valore del server è un primo passaggio importante.
Controllare la configurazione della colonna data e ora
Dataverse supporta diversi comportamenti di regolazione del fuso orario per le colonne di data e ora (campi). Prima della risoluzione dei problemi, è importante comprendere in che modo diverse parti dei valori di data e ora del processo di sistema.
Controllare le opzioni di colonna di data e ora nel portale di Power Apps o in Esplora soluzioni:
- Indica se l'account per il fuso orario di un utente
- Indica se visualizza la parte relativa all'ora del valore
Controllare se il valore corretto è archiviato nel server
I valori di data e ora vengono sempre archiviati come UTC nel server. È possibile visualizzare il valore non elaborato nel server con una query api Web.
Ecco una query per ottenere una colonna per una riga (record).
[Organization URI]/api/data/v9.2/<entity set name>(<row id>)?$select=<column name>
I nomi di tabella e colonna usati sono nomi logici, non nomi visualizzati.
Suggerimento
Un modo semplice per trovare l'ID di una riga consiste nell'aprirlo in un'app basata su modello. L'ID è disponibile nell'URL della pagina.
Nell'esempio seguente viene recuperata la scheduledstart
colonna della tabella per la appointment
riga con ID d2862246-4763-ee11-8def-000d3a34118b
.
https://myorg.crm.dynamics.com/api/data/v9.2/appointments(d2862246-4763-ee11-8def-000d3a34118b)?$select=scheduledstart
Se si immette questo valore nella barra degli indirizzi del browser, verrà visualizzato un aspetto simile al seguente:
{
"@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"
}
Pertanto, il scheduledstart
di appointment
è il 15 ottobre 2023, 7:30 am. Alla Z
fine indica che il valore è in formato UTC.
Si supponga che un utente nel fuso orario UTC-8 visualizzazioni di questa colonna in un'app basata su modello. Questi sono i valori previsti per le diverse opzioni di colonna.
Comportamento di regolazione del fuso orario | Formato | Valore visualizzato nell'app |
---|---|---|
Locale utente | Data e ora | 14 ottobre 2023, 23:30 |
Locale utente | Solo data | 14 ottobre 2023 |
Indipendente da fuso orario | Data e ora | 15 ottobre 2023, 7:30 |
Indipendente da fuso orario | Solo data | 15 ottobre 2023 |
Solo data | - | 15 ottobre 2023 |
Se il valore visualizzato nell'app non viene modificato correttamente, è probabile che si verifichi un problema del client. Se il valore del server non è corretto per iniziare, è probabile che si verifichi un problema del server.
Controllare il valore formattato dal server
Il fuso orario e le regolazioni dell'ora legale possono essere eseguite sul server o nell'app. Se la stessa colonna mostra un valore diverso in parti diverse dell'app, è probabile che alcune parti dell'app usino il valore formattato dal server, mentre altre apportano le modifiche nell'app.
Questo è probabilmente un problema. Prima di segnalarlo, è possibile isolare se si tratta di un problema del server o del client controllando il valore formattato dal server.
ad esempio:
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"
La risposta includerà il valore regolato dal server. In questo esempio l'utente si trova nel fuso orario UTC-8 e scheduledstart
ha il comportamento User Local . Di conseguenza, il valore formattato è di otto ore dietro il valore non elaborato.
{
"@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 questo valore formattato non è corretto, si tratta di un problema del server. Se è corretto, si tratta di un problema del client.
Analizzare i valori imprevisti del server
I possibili motivi per i valori imprevisti del server sono:
- È possibile che non sia stato configurato correttamente il comportamento di regolazione del fuso orario e il formato.
- Le regole business e i flussi di lavoro in esecuzione nel server possono modificare il valore prima o dopo il salvataggio. All'interno di un'app, gli script client possono modificare il valore prima di inviarlo al server per il salvataggio.
Determinare se si tratta di un problema di personalizzazione o di un prodotto
Le personalizzazioni possono causare comportamenti imprevisti . I metodi seguenti consentono di escludere i problemi causati dalle personalizzazioni.
Disabilitare script personalizzati
Gli script personalizzati causano spesso problemi. Provare a disabilitarli temporaneamente.
Creare una nuova colonna di data e ora
La creazione di una nuova colonna di data e ora è il modo più semplice per scoprire se il problema è causato da errori di configurazione o personalizzazioni come le regole business. Idealmente, usare una tabella e un'app diverse.
Se la nuova colonna funziona come previsto, è probabile che si verifichi un problema di personalizzazione. Confrontare con la colonna originale per trovare la differenza.
Se la nuova colonna presenta lo stesso problema, potrebbe trattarsi di un problema di prodotto. È possibile creare un'app basata su modello di riproduzione vanilla e segnalarla tramite una richiesta di supporto.
Provare un fuso orario diverso
Per scoprire se il fuso orario e le regolazioni dell'ora legale causano valori imprevisti, provare a modificare il fuso orario dell'utente.
Esistono due impostazioni che influiscono sui fusi orari nelle app basate su modello:
- Fuso orario nelle opzioni personali.
- Fuso orario di sistema. Per informazioni su come modificarla, vedere la rispettiva documentazione in Windows, Android, iOS o macOS.
Combinazioni utili da provare:
- Trova la corrispondenza del fuso orario nelle opzioni personali con il fuso orario di sistema.
- Usare il fuso orario UTC.
- Usa un fuso orario con lo stesso offset, ma non osserva l'ora legale.
Suggerimento
I metodi seguenti forniscono altri dettagli per semplificare l'analisi dei problemi relativi a data e ora.
Modificare il formato "Solo data" in "Data e ora"
Se un valore di sola data è disattivato di un giorno, è utile visualizzare la parte dell'ora per verificare se le regolazioni del fuso orario potrebbero essere la causa. È possibile modificare temporaneamente il formato di colonna nel portale di Power Apps o in Esplora soluzioni.
Non usare anni a 2 cifre
L'anno a 2 cifre è ambiguo. Ad esempio, 40 potrebbe significare 1940, 2040 o 2140. Il modo in cui il sistema interpreta gli anni a 2 cifre e cambierà probabilmente nel tempo.
È anche difficile esaminare quando i valori di data e ora completi non vengono visualizzati. Per questi motivi, è consigliabile usare anni a 4 cifre, soprattutto quando si immettono date.
Se non è possibile passare a anni a 4 cifre in modo permanente, provare temporaneamente a risolvere i problemi.