Nouveautés pour les développeurs dans la mise à jour de juillet 2017

Nous sommes ravis d'annoncer que la mise à jour de juillet 2017 de Dynamics 365 (en ligne) est disponible à l'essai et à l'achat! Restez à l'écoute pour savoir quand vous pouvez mettre à jour vos organisations existantes.

Voir aussi les liens suivants :

Avec Dynamics 365, les fonctionnalités antérieures de Dynamics CRM sont incluses dans une suite d'applications d'entreprise intelligentes. Les applications qui composent la partie CRM (Customer Relationship Management) de la suite sont désignées sous le nom de « Customer Engagement » et comprennent Sales, Customer Service, Field Service et Project Service Automation, ainsi que leurs services connexes.

Intégrer des données externes avec des entités virtuelles

Voici un nouveau moyen d'intégrer des données à partir de systèmes externes. Sans entités virtuelles, les stratégies courantes pour intégrer des données externes sont notamment : du code côté client pour extraire et afficher les données externes ou leur réplication côté serveur et les synchroniser avec les données externes dans Dynamics 365 Customer Engagement. Les entités virtuelles fournissent une meilleure approche par rapport à de nombreux besoins d'intégration de données système externes.

Améliorations d'API Web

Les améliorations suivantes sont incluses dans cette édition de l'API Web, notre point de terminaison OData v4 :

  • Des actions personnalisées qui renvoient les types EntityReference, Entity, ou EntityCollection sont disponibles.

  • Les modifications apportées aux comportements des API sont disponibles à l'aide de la dernière version v9.0 du service ; les comportements hérités demeurent disponibles dans la version v8.x. Il est inutile de modifier votre code lors de la mise à niveau.

  • Nouveaux messages : les messages GrantAccess, ModifyAccess et RetrieveSharedPrincipalsAndAccess sont désormais disponibles à l'aide de l'API Web.

  • Nous avons réduit la quantité de métadonnées de service en n'y incluant pas les annotations par défaut. Si vous avez besoin des annotations, des paramètres vous permettent de les inclure.

Améliorations d'API client

Avec l'introduction de Unified Interface dans la version Mise à jour de juillet 2017 pour Dynamics 365 (Online), certaines modifications importantes ont été apportées aux API client pour s'assurer qu'elles fonctionnent de manière cohérente dans Unified Interface et le client Web.

Contexte d'exécution et contexte global

Dans un formulaire, il peut exister plusieurs contextes d'exécution actifs simultanément. Par exemple, un formulaire contenant un formulaire rapide et une grille modifiable aura un contexte pour l'entité affichée dans le formulaire, un autre contexte pour le formulaire rapide, un contexte de grille pour la grille modifiable, et un contexte d'entité pour chaque ligne de la grille modifiable. Xrm.Page est le contexte de formulaire primaire. Si un script est exécuté dans un contexte secondaire (ligne de grille, formulaire rapide, entité associée), Xrm.Page ne sera pas le contexte de formulaire correct.

Le contexte d'exécution dans un formulaire est automatiquement passé aux événements de formulaire et aux gestionnaires d'événements. Par conséquent, au lieu d'utiliser l'objet statique Xrm.Page pour obtenir le contexte d'un formulaire, vous devez maintenant utiliser la méthode executionContext.getFormContext pour obtenir l'instance du contexte de formulaire, puis l'utiliser pour exécuter les méthodes de l'API client de sorte que vous puissiez utiliser les mêmes scripts dans différents contextes.

En outre, Xrm.Page.context qui est utilisé pour faire référence au contexte côté client est déconseillé dans la présente version ; vous devez maintenant utiliser la nouvelle méthode Xrm.Utility.getGlobalContext pour obtenir le contexte global au lieu de parcourir le contexte du formulaire. Cette nouvelle méthode contient un équivalent de toutes les méthodes disponibles pour que l'objet Xrm.Page.context récupère des informations spécifiques à une organisation ou à un utilisateur.

Nouvelles API client

Nous avons introduit un certain nombre de nouvelles API client dans cette version.

Voici la liste des nouveaux espaces de noms de cette édition qui contiennent de nouvelles méthodes et d'autres qui existaient déjà mais ont été déplacées dans ces espaces de noms pour amélioration la conception du modèle d'objet.

Nouvel espace de noms Description
Xrm.Device Contient des méthodes pour utiliser les capacités des appareils mobiles.
Xrm.Encode Contient des méthodes liées à l'application d'attributs et de codage XML à des chaînes.
Xrm.Navigation Contient de nouvelles méthodes pour les dialogues à plusieurs pages et le flux de tâches, ainsi que quelques méthodes existantes déplacées de l'espace de noms Xrm.Utility.
Xrm.UI Contient des méthodes pour afficher et masquer les notifications globales au niveau de l'application.
Xrm.WebApi Contient des méthodes pour effectuer des opérations CRUD sur des enregistrements ; bascule automatiquement entre les modes connexion et hors connexion.
Xrm.WebApi.offline contient des méthodes pour effectuer des opérations CRUD pendant le travail en mode hors connexion.
Xrm.WebApi.online contient des méthodes pour effectuer des opérations CRUD, Execute et ExecuteMultiple pendant le travail en mode connexion.

Les nouvelles API suivantes ont été introduites dans les espaces de noms existants :

Espace de noms Nouvelles API
ExecutionContext de formulaire getUrl
Xrm.Page.data Événement OnLoad et gestionnaires d'événements (addOnLoad et removeOnLoad)
isValid
Les saveOptions ont été mises à jour dans la méthode Xrm.Page.data.save(saveOptions) pour comprendre une nouvelle valeur appelée SaveMode pour informer les gestionnaires d'événements onSave de la raison de l'enregistrement
Collection d'attributs
Xrm.Page.data.entity Collection relatedEntities
getEntityReference
isValid
Mise à jour de la méthode d'enregistrement pour permettre d'envoyer saveOptions en tant que paramètre
Attribut Xrm.Page.data.entity isValid
setPrecision
Xrm.Page.ui Trois nouvelles API applicables uniquement pour des dialogues à plusieurs pages et les flux de tâches : getDefaultNextPageName, movePrevious et moveTo.
setFormEntityName
Événement OnLoad et gestionnaires d'événements (addOnLoad et removeOnLoad)
Xrm.Utility getAllowedStatusTransitions
getEntityMetadata
getGlobalContext
getLearningPathAttributeName
getResourceString
invokeProcessAction
lookupObjects
showHierarchyPage
showProgressIndicator
closeProgressIndicator
refreshParentGrid

Outre ces trois nouvelles API client, d'autres ont été introduites pour assurer des contrôles spécifiques : grilles, recherche, groupe d'options et minuteur. Pour plus d'informations sur ces nouvelles API, consultez les pages spécifiques à ces contrôles.

API client déconseillées

Certaines API client sont déconseillées ; vous devez utiliser les API client nouvelles ou améliorées plutôt que celles mentionnées dans cette liste : Certaines API client sont déconseillées

Remarque : « obsolescence » signifie que nous avons l'intention de supprimer l'API client de toute autre version principale de Dynamics 365. L'API client continuera à fonctionner et sera entièrement prise en charge jusqu'à ce qu'elle soit officiellement supprimée. Après la suppression, la fonctionnalité ou la fonction ne fonctionnera plus. Nous vous informons maintenant afin que vous ayez assez de temps pour planifier et mettre à jour votre code avant que la fonctionnalité ou la fonction ne soit supprimée.

Prise en charge d'API client pour le nouveau contrôle Chronologie dans l'interface Unified Interface

Le nouveau contrôle Chronologie répertorie les publications, les activités et les notes dans une vue unifiée. Le contrôle Chronologie prend en charge les API client suivantes :

  • getControlType : renvoie « timelinewall »

  • getName

  • getParent

  • getLabel et setLabel

  • getVisible et setVisible

  • setFocus : met le focus sur le bouton Ajouter du contrôle.

  • refresh : actualise le mur de chronologie.

Pour plus d'informations sur ces API client, consultez Contrôle Xrm.Page.ui (référence côté client)

Créer et gérer des applications d'entreprises conçues à dessein et fondées sur les rôles

Les applications d'entreprise dans Dynamics 365 sont des applications modulaires basées sur les rôles qui fournissent des fonctionnalités basées sur les tâches qui ciblent un domaine particulier de votre activité, tel que les ventes, le service et le marketing. Ces applications d'entreprise offrent une expérience simple et intuitive pour les utilisateurs en leur permettant une navigation rapide, des recherches faciles et la réalisation efficace de leurs tâches.

En plus d'utiliser le Concepteur d'application, vous pouvez maintenant créer, gérer, valider et publier des applications d'entreprise par programme. Lorsque vous créez une application, vous pouvez choisir si elle sera destinée au client Web ou à l'interface Unified Interface.

Utilisez :

  • l'entitéAppModule pour créer, gérer et valider les applications ;

  • l'entité AppModuleComponent pour créer et gérer des composants dans une application, tels que des formulaires, des tableaux de bord, des vues, des graphiques et des processus d'entreprise ;

  • l'entité AppModuleRoles pour associer et dissocier les rôles de sécurité qui définissent l'accès des utilisateurs à une application.

En outre, les nouvelles API client suivantes associées aux applications sont maintenant disponibles dans le contexte global (Xrm.Utility.getGlobalContext) qui vous permet de récupérer des informations sur l'application en cours :

  • getCurrentAppUrl : obtient l'URL de l'application en cours.

  • getCurrentAppName : obtient le nom de l'application en cours.

  • getCurrentAppProperties : obtient les propriétés de l'application en cours, telles que appId, displayName, uniqueName, url, webResourceId et welcomePageId.

Nouveau type d'attribut : groupe d'options à sélection multiple

Les personnalisateurs peuvent désormais définir un nouveau type d'attribut qui offre la sélection de plusieurs options. De nouveaux opérateurs conditionnels de requête sont désormais inclus ; ils permettent d'écrire des requêtes pour récupérer des données en fonction des options sélectionnées.

Prise en charge des scripts de formulaires pour les groupes d'options à sélection multiple

Les groupes d'options à sélection multiple sont disponibles pour l'interface Unified Interface et le client Web. Les groupes d'options à sélection multiple sont disponibles pour les types de formulaire suivants : Principal, Création rapide et Aperçu. Les groupes d'options à sélection multiples ne seront pas pris en charge dans les formulaires hérités.

Les groupes d'options à sélection multiple prennent en charge toutes les API client prises en charge pour les groupes d'options attributs et contrôles ; la seule différence est que la valeur renvoyée par certaines méthodes est un groupe au lieu d'une valeur unique.

Vous pouvez également définir la valeur des champs des groupes d'options à sélection multiple pour les nouveaux enregistrements en spécifiant des valeurs entières dans l'URL utilisée pour ouvrir le formulaire.

Créer des contrôles personnalisés

La possibilité de créer des contrôles est introduite en tant que fonctionnalité préliminaire. L'infrastructure CCF (Custom Control Framework) fournit un environnement d'extensibilité pour construire des composants d'interface utilisateur servant à visualiser des données et interagir avec dans l'application. L'utilisation de CCF vous permettra de définir des composants d'interface utilisateur pilotés par des métadonnées, configurables et qui sont des composants de solution réutilisables. Vous pourrez définir des contrôles pour des champs, grilles et sous-grilles distincts.

Intégration de Webhooks

Vous pourrez intégrer des données issues de Dynamics 365 Customer Engagement dans votre propre code personnalisé hébergé sur des services externes à l'aide de Webhooks. Vous pouvez utiliser l'outil d'inscription de plug-in pour configurer à quel moment publier des données Customer Engagement à destination d'un service externe. Webhooks est un protocole HTTP léger permettant de connecter des API Web et des services avec un modèle de publication/abonnement. Les expéditeurs Webhooks avertissent les destinataires à propos d'événements en adressant aux points de terminaison du destinataire des demandes comportant certaines informations sur les événements. Grâce au modèle Webhooks, vous pouvez sécuriser votre point de terminaison à l'aide d'un en-tête d'authentification ou de clés de paramètre de requête. Cela fournit une alternative au modèle d'authentification SAS que vous utilisez peut-être actuellement pour votre intégration Azure Service Bus.

Ressources Web d'image vectorielle

Utilisez des images vectorielles pour toutes les icône affichées dans l'application. Les images vectorielles sont définies au format SVG (Scalable Vector Graphics, graphique vectoriel évolutif), un format fondé sur XML. L'avantage des images vectorielles sur les autres ressources Web d'images est qu'elles peuvent être mises à l'échelle. Vous pouvez définir une image vectorielle et la réutiliser au lieu de fourni plusieurs tailles d'image. Vous pouvez utiliser cette ressource Web pour définir une icône unique pour une entité, plutôt que des images de différentes tailles.

Prise en charge des solutions localisables

Vous pouvez utiliser les ressources Web RESX pour stocker des chaînes localisées pour vos solutions. Le format XML RESX est couramment utilisé pour définir des ressources localisées ; il existe donc des outils usuels pour exploiter ce type de fichiers et les prestataires de localisation les connaissent bien. Vous pouvez associer des ressources Web RESX avec n'importe quelle ressource Web JavaScript qui les utilise ; vous pouvez ainsi utiliser une nouvelle API côté client pour accéder aux chaînes localisées au moment de l'exécution.

Dépendances des ressources Web JavaScript

Les ressources Web JavaScript doivent souvent interagir avec d'autres ressources, lesquelles pouvant être d'autres bibliothèques JavaScript, des images, des valeurs d'attribut, ou la nouvelle ressource Web RESX pour les chaînes localisées. Vous pouvez désormais configurer une ressource Web JavaScript pour l'associer à n'importe quelles ressources dépendantes, de sorte qu'elle soit disponible au moment opportun.

Quand une ressource Web JavaScript est associée à un autre type de ressource Web, cette ressource Web est chargée automatiquement lorsque la ressource Web JavaScript est requise dans l'application. Quand une ressource Web JavaScript utilisée dans un script de formulaire est associée à un attribut d'une entité spécifique, cet attribut d'entité est disponible pour le script, même lorsqu'un champ de cet attribut n'est pas inclus dans le formulaire.

Améliorations du centre de services interactifs

Voici les modifications apportées au centre de services interactifs :

  • Le centre de services interactifs est maintenant appelé Centre de service clientèle ; il est disponible en tant qu'application Unified Interface.

  • L'application Centre de service clientèle utilise le type de formulaire Principal au lieu du type de formulaire Principal - Expérience interactive. Si vous effectuez une mise à niveau à partir d'une version antérieure de Dynamics 365 Customer Engagement, l'intégralité de votre type de formulaire Principal - Expérience interactive sera converti au type de formulaire Principal. Tous vos formulaire personnalisables du type Principal - Expérience interactive deviendront inactifs pendant la mise à niveau et vous devrez activer les formulaires convertis après la mise à niveau pour pouvoir les utiliser. En outre, tous les formulaires du type Principal - Expérience interactive convertis au type " Principal " seront classés plus bas que le type de formulaires Principal existant pour éviter tout conflit d'ordre des formulaires. Cela garantit que, après la mise à niveau, le formulaire approprié s'affiche aux utilisateurs dans le client Web.

  • Toutes les entités ont maintenant activées pour l'expérience interactive dans la nouvelle application Centre de service clientèle. Cela implique que la propriété EntityMetadata.IsInteractionCentricEnabled, qui indique si une entité peut être activée pour l'expérience interactive, n'est plus d'aucune utilité. Le paramètre correspondant pour cette propriété dans l'outil de personnalisation, Activer pour l'expérience interactive, est supprimé dans la version actuelle et la propriété EntityMetadata.IsInteractionCentricEnabled sera supprimée dans la future version de Dynamics 365 SDK for Customer Engagement.

Remplacer le comportement ouvert par défaut des lignes de données dans une grille liée à une entité

Actuellement, effectuer l'une des actions suivantes dans une ligne de données d'une grille liée à une entité ouvre l'enregistrement d'entité par défaut :

  • double-cliquer sur la ligne de données ou cliquer sur le lien d'attribut principal dans la ligne ;

  • Sélectionner une ligne de données, puis appuyer sur Entrée ;

  • sur un appareil tactile, sélectionner une ligne de données.

Il peut se trouver des situations où vous ne souhaitez pas que l'enregistrement d'entité s'ouvre ; par exemple, pour les enregistrements de gestion des documents, vous souhaitez peut-être ouvrir un site SharePoint au lieu d'afficher l'enregistrement. Vous pouvez désormais remplacer le comportement par défaut pour définir votre propre comportement personnalisé.

Vous pouvez maintenant créer une définition de commande pour une entité avec Mscrm.OpenRecordItem comme valeur de l'attribut Id (<CommandDefinition> (RibbonDiffXml)), puis définir une action personnalisée pour la commande <Actions> (RibbonDiffXml). Customer Engagement recherchera cet identificateur de commande pour une entité lorsque vous essaierez d'ouvrir un enregistrement dans la grille liée à une entité ; s'il existe, il exécutera l'action personnalisée au lieu d'ouvrir l'enregistrement d'entité (comportement par défaut).

Améliorations du flux des processus d'entreprise

Les flux des processus d'entreprise ont été améliorés par les modifications suivantes :

  • Dans l'interface Unified Interface, la méthode setDisplayState vous permet maintenant de définir un contrôle des processus d'entreprise dans l'état « flottant », en plus des états « développé et « réduit ». De même, la méthode getDisplayState peut retourner « flottant », « développé » ou « réduit », selon l'état d'un contrôle des processus d'entreprise. L'état flottant ne s'applique pas au client Web.

  • Vous pouvez désormais exécuter des actions de processus à l'aide de la nouvelle API client nommée Xrm.Utility.invokeProcessAction. La possibilité de d'exécuter par programme des actions de processus à l'aide de la nouvelle API client est introduite comme fonctionnalité préliminaire dans la présente version.

    • Dans le client Web, vous pouvez exécuter n'importe quelle action de processus à l'aide de la nouvelle API client. Toutefois, dans l'interface Unified Interface, seules les actions de processus qui sont disponibles pour être exécutées sous forme d'étape de processus d'entreprise peuvent être exécutées à l'aide de la nouvelle API client.

    • Récupérez et définissez la progression d'une mesure de processus à l'aide des nouvelles API client : getProgress et setProgress. Vous pouvez obtenir et définir un des statuts de progression d'étape suivants à l'aide de ces méthodes : Aucun : 0, Traitement : 1, Terminée : 2, Échec : 3, ou Non valide : 4. Ces nouvelles API client sont également publiées comme fonctionnalités préliminaires dans la présente version.

    • Les API client getProgress et setProgress ne sont pas prises en charge pour l'étape de données des processus.

  • Vous pouvez maintenant utiliser la nouvelle API client Xrm.Navigation.openTaskFlow pour exécuter un flux de tâches.

Voir aussi

Nouveautés dans Unified Service Desk pour les développeurs et personnalisateurs

Guide du développeur pour Dynamics 365 Customer Engagement