Utilisation de JavaScript avec Customer Engagement (on-premises)
Dynamics 365 for Customer Engagement offre de nombreuses possibilités d’utilisation de JavaScript. Tous les JavaScript utilisés dans Dynamics 365 Customer Engagement (on-premises) sont ajoutés en créant des ressources web JavaScript. Cette rubrique fournit des informations pour les développeurs qui utilisent JavaScript et inclut des liens vers les rubriques concernées dans les services web Dynamics 365 Customer Engagement et d’autres sources.
Zones dans lesquelles vous pouvez utiliser JavaScript dans Dynamics 365 Customer Engagement (on-premises)
Vous pouvez utiliser JavaScript pour effectuer des actions dans des scripts de formulaire, la barre de commandes (ruban) et les ressources web.
Scripts de formulaires
L’utilisation la plus courante de JavaScript dans Dynamics 365 Customer Engagement (on-premises) consiste à ajouter des fonctionnalités en tant que gestionnaires d’événements pour les événements de formulaire d’entité. Pour plus d’informations, voir Création de scripts client dans Customer Engagement à l’aide de Javascript.
Commandes de la barre de commandes (ruban)
Lorsque vous personnalisez la barre de commande Dynamics 365 Customer Engagement (on-premises), vous pouvez configurer les commandes pour les contrôles que vous ajoutez. Ces commandes contiennent les règles qui vérifient si le contrôle est activé et la nature de l’action qui est effectuée lorsque le contrôle est utilisé. Pour plus d’informations, voir Personnaliser les commandes et le ruban.
Ressources web
Dynamics 365 Customer Engagement (on-premises) fournit une entité détenue par une organisation qui stocke une représentation binaire d’un fichier accessible via une URL. Ce fichier est appelé une ressource web. Il existe plusieurs types de ressources web. Une ressource web qui représente une bibliothèque JavaScript est appelée une ressource web JavaScript. Vous pouvez utiliser une ressource web (HTML) de page web pour fournir une interface utilisateur avec des bibliothèques JavaScript incluses de la même manière que pour des fichiers sur un serveur web. Ces fichiers font partie de Dynamics 365 Customer Engagement (on-premises), les utilisateurs qui y accèdent sont déjà authentifiés. Par conséquent, vous pouvez utiliser les services web Dynamics 365 Customer Engagement (on-premises) sans devoir entrer de code pour authentifier l’utilisateur. Pour plus d’informations, voir Ressources web pour Dynamics 365 Customer Engagement et Utiliser les données Dynamics 365 Customer Engagement à l’aide de ressources Web.
Utiliser jQuery
Utiliser JQuery avec des ressources Web HTML
Nous recommandons d’utiliser jQuery avec des ressources web HTML pour fournir des interfaces utilisateur, car il s’agit d’une excellente bibliothèque multi-navigateur.
Les ressources web HTML vous permettent de contrôler les bibliothèques qui sont présentes, et il n’y a aucune restriction dans la gestion des éléments DOM. Sentez-vous libre d’utiliser jQuery dans vos ressources web HTML.
Note
Si la référence de script à ClientGlobalContext.js.aspx est placée après votre propre référence jQuery, les scripts ClientGlobalContext.js.aspx remplacent la version précédemment chargée de jQuery. Pour éviter ce problème, placez la référence de script ClientGlobalContext.js.aspx avant les autres références de script dans votre ressource web.
Écrire en JavaScript pour plusieurs navigateurs
Comme vous ne connaissez pas quel navigateur est opérationnel, vous devez vous assurer que tous les scripts utilisés fonctionnent avec tous les navigateurs pris en charge. La plupart des différences importantes entre Internet Explorer et un autre navigateur concernent la gestion des éléments HTML et DOM XML. Comme la gestion des éléments DOM HTML n’est pas prise en charge, si la logique de script effectue uniquement des actions prises en charge et utilise l’API client, les modifications requises pour la prise en charge d’autres navigateurs peuvent être réduites.
Une bibliothèque multi-navigateur comme jQuery est une excellente solution pour développer des ressources web mais ne doit pas être nécessaire pour les scripts de formulaire ou les commandes du ruban. En savoir plus : Éviter d’utiliser jQuery pour les scripts de formulaire
Meilleures pratiques en matière de programmation JavaScript
Les sections suivantes décrivent les meilleures pratiques lorsque vous utilisez JavaScript avec Dynamics 365 Customer Engagement (on-premises).
Évitez d’utiliser les méthodes non compatibles.
Sur Internet, vous pouvez rechercher plusieurs exemples ou suggestions qui décrivent l’utilisation des méthodes non prises en charge. Ils peuvent inclure l’optimisation de la fonctionnalité interne non documentée pour les contrôles de page. Ces méthodes peuvent fonctionner mais parce qu’elles ne sont pas prises en charge, vous ne pourrez envisager qu’elles continuent de fonctionner dans les futures versions de Dynamics 365 Customer Engagement (on-premises).
Utiliser une bibliothèque JavaScript multi-navigateur pour les interfaces utilisateur de ressources Web HTML
Une bibliothèque JavaScript multi-navigateur, comme jQuery, fournit de nombreux avantages lors du développement de ressources web HTML qui doivent prendre en charge plusieurs navigateurs. Les bibliothèques JavaScript comme jQuery fournissent une expérience de développement unifiée pour tous les navigateurs pris en charge par Dynamics 365 Customer Engagement (on-premises). Ces fonctionnalités sont appropriées lorsque vous utilisez des ressources web HTML pour fournir des interfaces utilisateur. Les bibliothèques JavaScript comme jQuery fournissent des méthodes cohérentes permettant d’interagir avec le DOM (Document Object Model).
Ne pas utiliser jQuery pour les scripts ou commandes de formulaire
Nous ne vous recommandons la prise en charge de jQuery pour les pages de l’application. Cela inclut les scripts de formulaire et les commandes du ruban. Pour plus d’informations : Utiliser jQuery.
Identifier les limitations pour les bibliothèques CDN (Content Delivery Network)
Les bibliothèques CDN JavaScript fournissent de nombreux avantages pour les sites web publiques. Parce que ces bibliothèques sont hébergées sur Internet, il est inutile de créer des ressources web contenant le contenu des bibliothèques. Pour Dynamics 365 Customer Engagement (on-premises), vous devez prendre en compte les éléments suivants avant d’utiliser une bibliothèque CDN JavaScript.
Les utilisateurs du client Dynamics 365 for Microsoft Office Outlook avec accès hors ligne ont la possibilité de travailler sans aucune connexion Internet, en mode hors connexion. Si vos bibliothèques JavaScript dépendent de votre connexion Internet, votre code échouera.
Certaines organisations peuvent restreindre l’accès Internet à leurs employés. À moins de configurer le réseau pour autoriser l’accès aux sites de bibliothèques CDN, votre code peut échouer pour ces organisations.
L’alternative à utiliser les bibliothèques CDN consiste à créer une ressource web (JavaScript) de script avec le contenu de la bibliothèque. Comme les ressources web sont des entités appartenant à l’organisation, elles sont synchronisées lorsqu’un utilisateur Dynamics 365 for Outlook avec accès hors connexion passe en mode hors connexion. Parce que ces ressources web font désormais partie de l’application, elles ne sont pas bloquées si une organisation limite l’accès à Internet.
Utiliser la détection de fonctionnalités lors de l’écriture de fonctions pour plusieurs navigateurs
Même si vous utilisez une bibliothèque multi-navigateur comme jQuery, vous devez tenir compte des différences entre les navigateurs. Vous pouvez généralement détecter quel navigateur est utilisé lors de l’interrogation de la propriété navigator.useragent
. Ce champ est appelé détection de navigateur. Dans la plupart des cas, la détection de navigateur n’est pas la meilleure stratégie car elle ne peut pas prendre en compte la dernière version des fonctionnalités d’un navigateur. Par ailleurs, certains navigateurs offrent la possibilité de modifier la propriété navigation.useragent
pour apparaître sous la forme d’un autre navigateur.
La fonctionnalité de détection est la solution recommandée. En détectant les fonctionnalités disponibles, vous pouvez créer des chemins d’accès au code pour les navigateurs compatibles sans savoir exactement quel navigateur est utilisé. Pour plus d’informations sur la détection de fonctionnalités, voir la section relative au mode de détection des fonctionnalités au lieu des navigateurs.
Ne pas accéder aux éléments DOM
Les développeurs JavaScript ont l’habitude d’interagir avec les éléments DOM (Document Object Model) au sein du code. Vous pouvez utiliser la méthode window.getElementById
ou la bibliothèque jQuery. Vous êtes libre d’utiliser ces techniques dans vos ressources web HTML, mais elles ne seront pas prises en charge pour accéder aux éléments des pages d’applications ou des formulaires d’entités de Dynamics 365 Customer Engagement (on-premises). Par contre, l’accès aux éléments de formulaire d’entité sont exposés via le modèle d’objet de l’API client. L’équipe de développement Dynamics 365 Customer Engagement (on-premises) se réserve le droit de modifier le mode de composition des pages, notamment les valeurs ID
des éléments, donc l’utilisation du modèle d’objet de l’API client protège votre code des modifications d’implémentation des pages.
Définir des noms uniques pour les fonctionnalités JavaScript
Lorsque vous êtes seul(e) à développer une page HTML, vous pouvez aisément gérer les noms des fonctions JavaScript utilisées. Dans Dynamics 365 Customer Engagement (on-premises), d’autres solutions peuvent ajouter des fonctions JavaScript à la page sur laquelle votre fonction est utilisée.
Si deux fonctions JavaScript d’une page ont le même nom, la première fonction définie est remplacée par la seconde. Pour cette raison, veillez à définir des noms uniques pour vos fonctions JavaScript. Pour plus d’informations, voir Création de scripts client dans Customer Engagement à l’aide de Javascript.
Utiliser des méthodes d’accès aux données asynchrones
Si vous accédez aux données à l’aide des services web Dynamics 365 Customer Engagement (on-premises), utilisez toujours une demande XMLHttpRequest configurée pour une exécution asynchrone. La raison est que le navigateur fonctionne sur un thread unique. Si ce thread est en cours d’utilisation pour l’exécution d’un long processus de façon synchrone, le navigateur arrêtera de répondre.
Note
Les requêtes XMLHttpRequests synchrones sont obsolètes sur le thread principal du navigateur en raison de leurs résultats négatifs sur l’expérience de l’utilisateur. Certains navigateurs fournissent maintenant un avertissement lorsque cela est détecté. Si les navigateurs implémentent la spécification à un moment donné à l’avenir, une exception InvalidAccessError sera renvoyée. Plus d’informations : https://www.w3.org/TR/XMLHttpRequest/#synchronous-flag et https://xhr.spec.whatwg.org/#the-open()-method
Voir aussi
Écrire des extensions d’application cliente
Utiliser des données Customer Engagement à l’aide de ressources web
Création de scripts client dans Customer Engagement (on-premises) à l’aide de JavaScript
Personnaliser le ruban pour Dynamics 365 Customer Engagement (on-premises)
Ressources web pour Dynamics 365 Customer Engagement (on-premises)