Utiliser JavaScript avec Customer Engagement (local)

Dynamics 365 for Customer Engagement offre de nombreuses opportunités d’utilisation de JavaScript. Tout JavaScript utilisé dans Dynamics 365 Customer Engagement (local) est ajouté en créant des ressources web JavaScript. Cette rubrique contient des informations pour les développeurs qui utilisent JavaScript et inclut des liens vers des rubriques pertinentes dans les services web Dynamics 365 Customer Engagement et d’autres sources.

Zones où vous pouvez utiliser JavaScript dans Dynamics 365 Customer Engagement (local)

Vous pouvez utiliser JavaScript pour effectuer des actions dans des scripts de formulaire, des commandes de barre de commandes (ruban) et des ressources web.

Scripts de formulaires

L’utilisation la plus courante de JavaScript dans Dynamics 365 Customer Engagement (local) consiste à ajouter des fonctions en tant que gestionnaires d’événements pour les événements de formulaire d’entité. Pour plus d’informations, consultez Script client dans Customer Engagement à l’aide de JavaScript.

Commandes de barre de commandes (ruban)

Lorsque vous personnalisez la barre de commandes Dynamics 365 Customer Engagement (local), vous pouvez configurer des commandes pour les contrôles que vous ajoutez. Ces commandes contiennent des règles qui contrôlent si le contrôle est activé et quelle action est effectuée lorsque le contrôle est utilisé. Pour plus d’informations, consultez Personnaliser les commandes et le ruban.

Ressources Web

Dynamics 365 Customer Engagement (local) fournit une entité appartenant à l’organisation qui stocke une représentation binaire d’un fichier accessible à l’aide d’une URL. Ce fichier est appelé ressource web. Il existe plusieurs types de ressources web. Une ressource web qui représente une bibliothèque JavaScript est appelée ressource web JavaScript. Vous pouvez utiliser une ressource web (HTML) pour fournir une interface utilisateur avec des bibliothèques JavaScript incluses comme vous le feriez pour les fichiers sur un serveur web. Étant donné que ces fichiers font partie de Dynamics 365 Customer Engagement (local), les utilisateurs qui y accèdent sont déjà authentifiés. Par conséquent, vous pouvez utiliser les services web Dynamics 365 Customer Engagement (local) sans avoir à écrire de code pour authentifier l’utilisateur. Pour plus d’informations, consultez Ressources web pour Dynamics 365 Customer Engagement et Utiliser des données Dynamics 365 Customer Engagement à l’aide de ressources web.

Utilisation de jQuery

Utiliser jQuery avec des ressources web HTML
Nous vous recommandons d’utiliser jQuery avec des ressources web HTML pour fournir des interfaces utilisateur, car il s’agit d’une excellente bibliothèque inter-navigateurs.

Avec les ressources web HTML, vous contrôlez les bibliothèques présentes et il n’existe aucune restriction contre la manipulation du DOM. N’hésitez pas à 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 votre version précédemment chargée de jQuery. Pour éviter cela, placez la référence de script ClientGlobalContext.js.aspx avant d’autres références de script dans votre ressource web.

Écrire JavaScript pour plusieurs navigateurs

Étant donné que vous ne savez pas quel navigateur sera utilisé, vous devez vous assurer que tous les scripts que vous utilisez fonctionneront avec tous les navigateurs pris en charge. La plupart des différences significatives entre Internet Explorer et d’autres navigateurs doivent être effectuées avec la manipulation HTML et XML DOM. Étant donné que la manipulation DOM HTML n’est pas prise en charge, si la logique de script effectue uniquement des actions prises en charge et utilise l’API cliente, les modifications requises pour prendre en charge d’autres navigateurs peuvent être petites.

Une bibliothèque inter-navigateurs comme jQuery est une bonne solution pour développer des ressources web, mais ne doit pas être nécessaire pour les scripts de formulaire ou les commandes du ruban. Plus d’informations : Éviter d’utiliser jQuery pour les scripts de formulaire

Bonnes pratiques de programmation JavaScript

Les sections suivantes décrivent les meilleures pratiques lorsque vous utilisez JavaScript avec Dynamics 365 Customer Engagement (local).

Éviter d’utiliser des méthodes non prises en charge

Sur Internet, vous trouverez de nombreux exemples ou suggestions qui décrivent l’utilisation de méthodes non prises en charge. Cela peut inclure l’utilisation d’une fonction 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 pouvez pas s’attendre à ce qu’elles continuent de fonctionner dans les futures versions de Dynamics 365 Customer Engagement (localement).

Utiliser une bibliothèque JavaScript entre navigateurs pour les interfaces utilisateur de ressources web HTML

Une bibliothèque JavaScript inter-navigateurs, telle que jQuery, offre de nombreux avantages lors du développement de ressources web HTML qui doivent prendre en charge plusieurs navigateurs. Les bibliothèques JavaScript telles que jQuery offrent une expérience de développement unifiée pour tous les navigateurs pris en charge par Dynamics 365 Customer Engagement (local). Ces fonctionnalités sont appropriées lorsque vous utilisez des ressources web HTML pour fournir des interfaces utilisateur. Les bibliothèques JavaScript telles que jQuery fournissent des moyens cohérents d’interagir avec le modèle DOM (Document Object Model).

N’utilisez pas jQuery pour le script de formulaire ou les commandes

Nous ne recommandons pas ou ne prenons pas en charge l’utilisation de jQuery pour toutes les pages de l’application. Cela inclut les scripts de formulaire et les commandes du ruban. Plus d’informations : Utilisation de jQuery.

Reconnaître les limitations des bibliothèques de réseau de distribution de contenu (CDN)

Les bibliothèques JavaScript de réseau de distribution de contenu (CDN) offrent de nombreux avantages pour les sites web publics. Étant donné que ces bibliothèques sont hébergées sur Internet, vous n’avez pas besoin de créer des ressources web qui contiennent le contenu des bibliothèques. Pour Dynamics 365 Customer Engagement (local), vous devez prendre en compte les problèmes suivants avant d’utiliser une bibliothèque JavaScript CDN.

  • Les utilisateurs de Dynamics 365 pour Microsoft Office Outlook avec le client Access hors connexion ont la possibilité de travailler sans connexion Internet pendant qu’ils fonctionnent hors connexion. Si vous êtes en fonction d’une connexion Internet pour vos bibliothèques JavaScript, votre code échoue.

  • Certaines organisations limitent l’accès à Internet pour les employés. Sauf s’ils configurent le réseau pour autoriser l’accès aux sites de bibliothèque CDN, votre code peut échouer pour ces organisations.

    L’alternative à l’utilisation de bibliothèques CDN consiste à créer une ressource web de script (JavaScript) avec le contenu de la bibliothèque. Étant donné que les ressources web sont des entités appartenant à l’organisation, elles sont synchronisées lorsqu’un utilisateur Dynamics 365 pour Outlook avec Accès hors connexion est hors connexion. Étant donné que ces ressources web font désormais partie de l’application, elles ne seront pas bloquées si une organisation restreint l’accès à Internet.

Utiliser la détection des fonctionnalités lors de l’écriture de fonctions pour plusieurs navigateurs

Même lorsque vous utilisez une bibliothèque inter-navigateurs comme jQuery, vous devez être très conscient des différences entre les navigateurs. Vous pouvez généralement détecter quel navigateur est utilisé en interrogeant la navigator.useragent propriété. Il s’agit de la détection du navigateur. La détection du navigateur n’est pas une bonne stratégie pour la plupart des cas, car elle ne peut pas tenir compte des fonctionnalités des versions plus récentes d’un navigateur. En outre, certains navigateurs offrent la possibilité de modifier la navigation.useragent propriété afin qu’ils semblent être un autre navigateur.

La détection des fonctionnalités est l’approche recommandée. En détectant les fonctionnalités disponibles, vous pouvez créer des chemins de code pour les navigateurs que vous prenez en charge sans savoir exactement quel navigateur est utilisé. Pour plus d’informations sur la détection des fonctionnalités, consultez Comment détecter les fonctionnalités au lieu des navigateurs.

N’accédez pas au DOM

Les développeurs JavaScript sont utilisés pour interagir avec les éléments DOM (Document Object Model) dans le code. Vous pouvez utiliser la window.getElementById méthode ou la bibliothèque jQuery. Vous êtes libre d’utiliser ces techniques dans vos ressources web HTML, mais elles ne sont pas prises en charge pour accéder aux éléments dans les pages d’application Dynamics 365 Customer Engagement (local) ou les formulaires d’entité. Au lieu de cela, l’accès aux éléments de formulaire d’entité est exposé via le modèle objet DE l’API cliente. L’équipe de développement Dynamics 365 Customer Engagement (locale) se réserve le droit de modifier la façon dont les pages sont composées, y compris les ID valeurs des éléments, de sorte que l’utilisation du modèle objet DE l’API client protège votre code contre les modifications apportées à la façon dont les pages sont implémentées.

Définir des noms uniques pour vos fonctions JavaScript

Lorsque vous êtes le seul développeur pour une page HTML, vous pouvez facilement gérer les noms des fonctions JavaScript que vous utilisez. Dans Dynamics 365 Customer Engagement (local), d’autres solutions peuvent ajouter des fonctions JavaScript à la page où votre fonction est utilisée.

Si deux fonctions JavaScript d’une page portent 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, consultez Script client dans Customer Engagement à l’aide de JavaScript.

Utiliser des méthodes d’accès aux données asynchrones

Lorsque vous accédez aux données à l’aide des services web Dynamics 365 Customer Engagement (local), utilisez toujours une requête XMLHttpRequest configurée pour s’exécuter de manière asynchrone. C’est pourquoi le navigateur fonctionne sur un thread unique. Si ce thread est utilisé pour exécuter un processus de longue durée, le navigateur cesse de répondre.

Note

Les xmlHttpRequests synchrones sont déconseillés sur le thread principal du navigateur en raison des effets néfastes de l’expérience de l’utilisateur final. Certains navigateurs fournissent désormais un avertissement lorsqu’il est détecté. Si les navigateurs implémentent la spécification à un moment donné dans le futur, une exception InvalidAccessError sera levé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
Utilisation de scripts client dans Customer Engagement (sur site) à l’aide de JavaScript
Personnaliser le ruban pour Dynamics 365 Customer Engagement (local)
Ressources Web pour Dynamics 365 Customer Engagement (sur site)

Comprendre le modèle objet de l’API cliente