Fermer

août 19, 2019

Utilisation des champs de date et heure de Dynamics 365 dans les applications logiques


L'utilisation des champs de date et d'heure dans Microsoft Dynamics 365 peut s'avérer délicate, en particulier lorsque vous utilisez des outils d'automatisation supplémentaires, tels que Microsoft Flow ou Azure Logic Apps, pour faciliter vos processus métier. Récemment, j'ai travaillé avec deux champs de date et heure différents sur deux entités qui n'étaient pas directement liées dans Dynamics. Un champ était un champ de date uniquement avec un comportement indépendant du fuseau horaire. Dans cet exemple, le champ appelé «Date d'activation» se trouve sur l'entité du compte.

L'autre champ était un champ personnalisé situé sur une entité personnalisée installée par une solution tierce [ e . Ce champ était également un champ de date uniquement avec l'utilisateur local comme comportement. Ce champ s'appelle “Actif activé sur” et se trouve sur l'entité personnalisée appelée Actif.

J'ai utilisé une application logique pour déclencher sur l'enregistrement du compte, effectuer d'autres étapes logiques, puis créer des enregistrements d'actif. Lors de la création de l'enregistrement d'actif, le champ «Actif activé sur» a été renseigné avec la même date que celle indiquée dans le champ «Date d'activation» de l'enregistrement du compte.

Cependant, lorsque j'ai exécuté l'application logique, j'ai vu une date l'enregistrement d'actif qui ne correspond pas à la date de l'enregistrement du compte.

Cela est dû au fait que les comportements des champs ne correspondent pas. Le champ «Date d'activation» est un champ de date uniquement, mais, comme l'explique la documentation de Microsoft le champ enregistre toujours une heure de 12 h, de sorte que la «Date d'activation» est fixée au 12/08/19 à 12 heures. : 00h00. Ceci est automatiquement converti dans le fuseau horaire de mon heure locale centrale selon mon utilisateur en soustrayant cinq heures. Cela signifie que la date s'affiche sous la forme 8/11/19 dans le champ «Actif activé».

Mon exigence étant que la même date soit affichée dans ces deux champs, j'ai donc dû résoudre ce problème de conversion de temps. Une façon de résoudre ce problème consiste à modifier le comportement du champ «Actif activé». Je ne voulais pas changer ce comportement car je ne savais pas si la solution du tiers e utilisait ce champ pour une autre logique ou automatisation. Le fait de modifier le comportement du champ risquait de créer des erreurs dans cette logique. Au lieu de cela, j'ai résolu ce problème dans l'application logique à l'aide des fonctions fournies pour les dates. J'ai utilisé la fonction convertToUtc pour contrôler l'élément temporel de mon champ. La fonction a ajusté l'heure de cinq heures pour l'heure normale du Centre afin que la date soit affichée correctement dans Dynamics.

La liste complète des fonctions:

convertToUtc (triggerBody () ? [ 'prft_activationdate' ] 'Heure standard centrale' 'aaaa-MM-jjTHH: mm: ssZ' )

Le premier paramètre est le champ source de l'horodatage, le deuxième paramètre est le fuseau horaire et le troisième paramètre est un format d'horodatage facultatif. Pour plus d'exemples et de fonctions, reportez-vous à la documentation de Microsoft .

Lorsque j'ai relancé l'application logique, la date s'affiche correctement dans mon environnement.

[1945]

Si vous avez des utilisateurs dans plusieurs fuseaux horaires, vous devez ajuster le paramètre de fuseau horaire afin que la date s'affiche de la même manière dans tous les fuseaux horaires de vos utilisateurs.




Source link