Workflow pour écrire, déployer, déboguer et dépanner le code X++ dans plusieurs environnements

Cet article décrit un workflow pour écrire, déployer, déboguer et dépanner le code X++ dans plusieurs environnements.

Note

Vous pouvez en savoir plus en regardant la présentation et les démos de la série Dynamics 365 FastTrack Tech Talk. Expérience de développement unifiée pour les finances et les opérations | Dynamics 365 FastTrack Tech Talk

Commençons par en parler, une machine de développement avec plusieurs environnements de développement unifiés.

Plusieurs environnements de développement unifiés

Une machine de développeur peut être utilisée pour se connecter à plusieurs environnements de développement unifiés. Cependant, un exemple de Visual Studio peut à tout moment être connecté à un seul environnement et avoir une seule configuration de métadonnées active. Vous pouvez changer la configuration active à l’aide de l’élément de menu Extensions>Dynamics 365>Configurer les métadonnées.

Le changement de configuration des métadonnées actives ne modifie pas l’environnement auquel vous êtes connecté. Vous pouvez le modifier à partir du Visual Studio élément du menu Outils>Se connecter à Dataverse.

La même configuration peut être valable pour plusieurs environnements avec les mêmes versions d’application et de plateforme de finance et d’opérations. C’est quand même mieux d’avoir une configuration de métadonnées par environnement. Ces configurations peuvent avoir des valeurs communes pour le dossier de métadonnées personnalisé et de référence, et bien plus encore. La configuration actuelle et la connexion actuelle déterminent ensemble ce qui est déployé et dans quel environnement.

Différents environnements avec différentes versions d’applications et de plates-formes de finance et d’opérations pourraient être utilisés à différentes fins. Il est recommandé que la version de l’extension Visual Studio pour les de finances et d’opérations corresponde à l’environnement.

Le compilateur X++, le compilateur d’étiquettes et d’autres outils invoqués par n’importe quelle version du Visual Studio extension correspond à la version d’application de la configuration active que vous avez définie comme actuelle.

S’il n’existe pas de ruptures de compatibilité entre les différentes versions ciblées de l’application et de la plateforme, l’utilisation de la version la plus ancienne de Finance and Operations garantirait, avec la version de l’extension Visual Studio, que les artefacts générés sont compatibles avec des versions de runtime plus récentes dans les environnements.

Un environnement de développement unifié et plusieurs machines de développement

Qu’il s’agisse du même développeur ou d’un développeur différent, si plusieurs machines de développement sont utilisées, il est plus probable, sans être inévitable, que l’environnement de développement unifié partagé soit corrompu involontairement. Cela peut se produire lors du déploiement d’une modification qui ne tient pas compte de ce qui est déjà déployé dans le même environnement.

La situation décrite ci-dessus pourrait également survenir sur la même machine de développement, au cas où le code des métadonnées personnalisées perdrait en cohérence, par exemple en changeant de branche Git.

La manière de maintenir la cohérence et d’éviter des modifications involontaires dans les environnements de développement unifiés consiste à utiliser le contrôle de version, par exemple Azure DevOps avec Git, pour garantir un enregistrement référencé de ce qui est déployé dans n’importe quel environnement.

Important

Nous ne saurions trop insister sur le rôle important du contrôle de version pour garantir une bonne hygiène du code et fournir des enregistrements historiques, des points de contrôle et des points de synchronisation.

Déployer le code et synchroniser la base de données

Examinons vos options lors du déploiement du code et de la synchronisation de la base de données sur un environnement de développement unifié.

Scénario Méthode de déploiement Remarques
Déployer un ou plusieurs modules déjà construits Utilisez la boîte de dialogue Dynamics 365>Déployer>Déployer des modèles... . Vous pouvez éventuellement synchroniser la base de données pour les modules.
Déployer un ou plusieurs modules dans le cadre d’un build complet Lancez via la boîte de dialogue Dynamics 365>Générer des modèles après avoir défini l’option sur Déployer vers l’environnement en ligne connecté . Vous pouvez éventuellement synchroniser la base de données pour les modules à l’aide du paramètre synchroniser la base de données dans le même Options onglet.
Déployer un ou plusieurs modules dans le cadre d’une build/reconstruction de projets X++ à partir de l’Explorateur de solutions Lancez la création/reconstruction des projets ou de la solution après avoir défini l’option Déployer les modifications dans l’environnement en ligne . Cela déploie uniquement les modifications depuis le dernier déploiement réussi et est plus rapide Vous pouvez éventuellement synchroniser la base de données pour les modifications incluses
Déployer un module pour un projet X++ donné à partir de l’Explorateur de solutions Lancez-le en cliquant avec le bouton droit sur le projet et en choisissant Déployer le modèle pour le projet.... Cela déploiera uniquement les modifications depuis le dernier déploiement réussi, mais ne synchronisera pas la base de données du module.
Pas de déploiement de module mais synchronisez la base de données pour tous les modules de l’environnement Lancez-le via la boîte de dialogue Dynamics 365>Synchroniser la base de données... . Il s’agit d’une opération de longue durée puisque DBSync est exécuté pour tous les modules.

Note

  • La construction et le déploiement incrémentiels continus pourraient être beaucoup plus rapides que le déploiement complet de modules volumineux.
  • Pour les modules binaires uniquement reçus d’ISV ou d’autres tiers, effectuez un déploiement complet et une synchronisation de base de données.
  • Ne modifiez pas et n'essayez pas de déployer des modules système.

Ajouter des modules reçus d’éditeurs de logiciels indépendants ou d’autres fournisseurs

Vous pouvez recevoir des modules X++ de différentes manières. Il peut être partagé avec vous sous forme de fichiers zip ou de packages entièrement déployables, individuellement ou sous forme d’ensemble de modules, avec du code ou du binaire uniquement, y compris ou non des licences ISV.

Dans tous ces cas, vous voudrez les versionner en les enregistrant dans un système de gestion de versions. Vous souhaiterez alors mettre à jour la configuration des métadonnées actives pour y faire référence.

Procédez en ajoutant une nouvelle référence dans Dossiers pour les métadonnées de référence en cliquant sur le bouton Ajouter et en accédant au dossier parent commun de tous les modules de référence. A titre d’exemple, si vous souhaitez ajouter Module01 et Module02, placez-les dans un dossier commun (par exemple E:\ISVModules) puis référez-vous à ce dernier dossier parent.

Quand inclure une licence pour les modules

Les licences peuvent être directement incluses et déployées en les plaçant dans le dossier __License (avec deux traits de soulignement) du modèle, au même niveau que votre dossier bin. Cette licence est vérifiée et appliquée lorsque vous déployez le package.

À titre d’exemple, si vous souhaitez ajouter un fichier de licence licenseFile01 pour le Module01 présent dans E:\ISVModules\Module01, créez un dossier enfant E:\ISVModules\Module01__License et placez-y le fichier sous le nom E:\ISVModules\Module01__License\licenseFile01. De plus, une Synchronisation complète de la base de données à partir du menu Dynamics 365 dans Extensions est nécessaire pour que la licence appliquée prenne effet.

Pour en savoir plus, consultez Licences des fournisseurs de logiciels indépendants (ISV)

Convertir un package entièrement déployable (package existant Lifecycle Services) dans le nouveau format

Décrivons comment convertir un package entièrement déployable (package existant Lifecycle Services) dans le nouveau format pour qu’il soit compatible pour le déploiement dans des environnements.

Localisez ModelUtil.exe dans le dossier bin et exécutez-le à partir de la ligne de commande pour voir l’utilisation. Ensuite, choisissez l’option -convertToUnifiedPackage et fournissez le zip du package et l’emplacement de sortie comme paramètres.

Note

La conversion en package unifié peut échouer avec un message se terminant par – Le fichier ’temp path\modelName\bin\fileName’ existe déjà. Cela se produit si plusieurs versions du modèle sont identifiées dans le package d’origine.

Solution : Assurez-vous/recréez le package d’origine en vous assurant qu’une seule version de chaque modèle est présente dans le package à l’emplacement <OriginalPackage.zip>/AOSService/Packages/files/<model.version>.

Déployer des packages pendant que l’environnement est en mode d’administration

L’environnement OnlineDev/UDE prend en charge le déploiement de package (code uniquement) en mode d’administration. Ce chemin de récupération ignore la synchronisation de la base de données. Vous pouvez déployer un package avec un correctif avant de réessayer de quitter le mode d’administration.

Pour plus d’informations, consultez Déployer des packages dans un environnement de développement unifié en mode d’administration.

Résoudre les problèmes de déploiement ou de DBSync

Le déploiement du package peut échouer à plusieurs étapes, y compris la synchronisation de la base de données, pour diverses raisons, notamment des bugs du développeur. Un lien pour télécharger les journaux des opérations est disponible dans le volet de sortie de Visual Studio. Il est téléchargé en cas d’échec ou si vous activez le paramètre dans Outils> Options> Power Platform Tools.

Vous pouvez également télécharger les journaux de votre organisation Dataverse en suivant ces étapes.

  1. Connectez-vous à l’organisation Dataverse
  2. Recherchez l’ application Finance and Operation Gestionnaire de package sur la page principale
  3. Sélectionnez Applications, puis dans le volet de gauche, sélectionnez historique opération
  4. Ouvrez l’enregistrement correspondant en sélectionnant le Nom de l’opération et téléchargez les journaux d’opération (operationlogs.zip fichier)

Le déploiement et DBSync ont réussi, mais il faut examiner mes modifications.

Si le déploiement et DB Sync réussissent, vous devez exécuter votre scénario et comparer le comportement attendu et réel pour obtenir des indices. Infolog est souvent très utile dans ce cas.

Si ce qui précède ne suffit pas, vous devez attacher le débogueur au processus AOS en cours d’exécution dans l’environnement unifié à l’aide du menu Dynamics 365>Lancer le débogueur. Exécuter le scénario cette fois avec quelques points d’arrêt définis vous donnera une meilleure idée.

Nous vous recommandons d’écrire des tests unitaires X++ pour votre code afin de garantir que les régressions sont détectées facilement et rapidement. Vous pouvez également utiliser Application Insights pour surveiller et diagnostiquer l’application s’exécutant dans l’environnement de développeur unifié.

En savoir plus sur l’observabilité : Surveillance et télémétrie avec Application Insights

Quelles informations fournir au support Microsoft ?

L’ID de corrélation, le nom de la machine client et l’horodatage sont nécessaires pour que Microsoft puisse enquêter. L’ID de corrélation se trouve dans le volet de sortie de Visual Studio.

Les journaux sont également consignés dans les fichiers Microsoft.PowerPlatformVSExtension*.log dans C:\Users<user>\AppData\Local\Microsoft\Dynamics365\Logs. De plus, un fichier journal nommé VisualStudioD365Extension*.log est généré à un chemin similaire à C:\Users\AppData\Roaming\Microsoft Corporation\Microsoft® Visual Studio®<version>\VisualStudioD365Extension-*.log.

Voir aussi

Expérience de développement unifiée pour les finances et les opérations | Dynamics 365 FastTrack Tech Talk
Écrire, déployer et déboguer du code X++
Déployer des packages dans un environnement de développeur unifié en mode d’administration
Tests unitaires dans l’expérience unifiée du développeur
Créez et gérez des environnements dans le Power Platform Centre d’administration
Gérer les applications Dynamics 365