Fermer

novembre 12, 2019

Comment migrer des produits, des groupes de produits et des listes de prix Dynamics 365


La configuration des produits et des listes de prix dans Dynamics 365 est compliquée et prend du temps. Je voulais créer un processus permettant de migrer rapidement ces données d'un environnement à un autre. J'avais environ 100 produits, 40 ensembles de produits et 25 listes de prix pour migrer dans un environnement de production. Je n'avais aucune hiérarchie de produits, notes, littérature de vente, concurrents ou remises, alors j'ai pensé que ce serait une migration facile. J'ai d'abord essayé d'utiliser l'outil de migration de configuration fourni par Microsoft, mais j'ai rapidement découvert que le transfert de bundles de produits n'était pas pris en charge .

J'ai tenté d'importer les enregistrements moi-même à l'aide de l'Assistant d'importation de Dynamics. La clé de mon approche nécessitait une application logique dans Azure (ou un flux dans Power Automate) pour exporter les données d'association de produits qui lient le produit à son offre groupée. Je devais apporter des modifications une fois les données importées pour définir la liste de prix par défaut et mettre à jour les statuts des produits, mais j’évitais de recréer entièrement les produits manuellement, ce qui aurait pris beaucoup plus de temps.

Premièrement, exportez les données pour. les entités suivantes de l'environnement dynamique source:

  • Unité
  • Groupe d'unités
  • Liste de prix
  • Produit (excluez les produits de la gamme de produits)
  • Bundles de produits (uniquement les produits de la gamme de produits)
  • Prix Élément de liste

Lorsque j'ai exporté les données, j'ai créé une vue pour chaque entité contenant tous les champs (colonnes) disponibles pour cette entité. Si nécessaire, écrivez des conditions pour que la vue limite les enregistrements souhaités. Par exemple, pour les produits, j'avais deux points de vue. Une seule vue des produits et une seule des offres groupées. Exportez les données de chaque entité dans une feuille de calcul Excel, puis convertissez chaque fichier au format CSV.

 Image1 "width =" 524 "height =" 198 "srcset =" https://i1.wp.com /blogs.perficient.com/files/2019/11/Image1.png?w=685&ssl=1 685w, https://i1.wp.com/blogs.perficient.com/files/2019/11/Image1.png? resize = 300% 2C113 & ssl = 1 300w, https://i1.wp.com/blogs.perficient.com/files/2019/11/Image1.png?resize=640%2C242&ssl=1 640w "tailles =" (max- width: 524px) 100vw, 524px "data-recalc-dims =" 1 "/> </a data-recalc-dims=

 Image2" width = "523" height = "206" srcset = "https: // i0.wp.com/blogs.perficient.com/files/2019/11/Image2.png?w=668&ssl=1 668w, https://i0.wp.com/blogs.perficient.com/files/2019/11 /Image2.png?resize=300%2C118&ssl=1 300w, https://i0.wp.com/blogs.perficient.com/files/2019/11/Image2.png?resize=640%2C252&ssl=1 640w "tailles = "(max-width: 523px) 100vw, 523px" data-recalc-dims = "1" /> </a data-recalc-dims=

Les données de l’Association de produits étaient plus compliquées à exporter. Je voulais rechercher les produits par ID de produit lors de l'importation plutôt que par leur nom, mais lorsque j'ai essayé d'ajouter le champ ID de produit pour le produit et le groupe de produits à la vue, je ne pouvais accéder qu'à l'ID de produit du groupe de produits. J'ai contourné cette limite en créant une simple application logique, mais un flux pourrait également fonctionner. Après quelques actions, j'ai recherché les données que je voulais, créé un objet contenant les valeurs dont j'avais besoin et sorti un fichier CSV que j'ai importé dans mon nouvel environnement Dynamics. Exécutez manuellement l'application logique une fois que vous l'avez créé pour générer votre fichier à importer.

Les étapes nécessaires à l'application logique:

  1. Utilisez un déclencheur de récurrence avec un intervalle et une fréquence quelconques. Vous allez déclencher manuellement l’application logique pour que le minutage ne soit pas important ici. Je règle ma récurrence longtemps entre les exécutions au cas où j'oublierais de désactiver mon application logique et qu'elle s'exécute ultérieurement.

 Image3 "width =" 549 "height =" 131 "srcset =" https: // i0. wp.com/blogs.perficient.com/files/2019/11/Image3.png?w=671&ssl=1 671w, https://i0.wp.com/blogs.perficient.com/files/2019/11/Image3 .png? resize = 300% 2C72 & ssl = 1 300w, https://i0.wp.com/blogs.perficient.com/files/2019/11/Image3.png?resize=640%2C153&ssl=1 640w "tailles =" (max-width: 549px) 100vw, 549px "data-recalc-dims =" 1 "/> </a data-recalc-dims=

  1. Initialisez une variable de tableau pour collecter vos objets de données.

 Image4" width = "545" height = "140" srcset = "https://i1.wp.com/blogs.perficient.com/files/2019/11/Image4.png?w=669&ssl=1 669w, https://i1.wp.com/blogs.perficient. com / files / 2019/11 / Image4.png? resize = 300% 2C77 & ssl = 1 300w, https://i1.wp.com/blogs.perficient.com/files/2019/11/Image4.png?resize=640 % 2C165 & ssl = 1 640w "tailles =" (largeur maximale: 545 px) 100 vw, 545 px "data-recalc-dims =" 1 "/> </a data-recalc-dims=

  1. Répertoriez les enregistrements de l'Association de produits. [19659020] Image5 "width =" 541 "height =" 135 "srcset =" https://i1.wp.com/blogs.perficient.com/files/2019/11/Image5.png?w=666&ssl=1 666w, https : //i1.wp.com/blogs.perficient.com/files/2019/11/Image5.png? resize = 300% 2C75 & ssl = 1 300w, https://i1.wp.com/blogs.perficient.com/ files / 2019/11 / Image5.png? resize = 640% 2C160 & ssl = 1 640w "tailles =" (largeur maximale: 541px) 100vw, 541px "données-recalc-dims =" 1 "/>

    1. Pour chaque produit association, récupérez les enregistrements du produit et du lot de produits. Ces étapes sont automatiquement encapsulées dans une pour chaque action lorsque vous ajoutez du contenu dynamique à partir de l'étape d'enregistrement de la liste. Vous pouvez également les récupérer en développant l’étape de la liste au numéro 3 et en analysant les données.

     Image6 "width =" 529 "height =" 395 "srcset =" https://i1.wp.com/blogs.perficient .com / files / 2019/11 / Image6-1.png? w = 696 & ssl = 1 696w, https://i1.wp.com/blogs.perficient.com/files/2019/11/Image6-1.png? resize = 300% 2C225 & ssl = 1 300w, https://i1.wp.com/blogs.perficient.com/files/2019/11/Image6-1.png?resize=640%2C479&ssl=1 640w "tailles =" ( max-width: 529px) 100vw, 529px "data-recalc-dims =" 1 "/> </a data-recalc-dims=

    1. Ajoutez un objet JSON au tableau contenant les données que vous souhaitez dans votre fichier d'exportation.

     Image7" width = "519 "height =" 345 "srcset =" https://i0.wp.com/blogs.perficient.com/files/2019/11/Image7.png?w=664&ssl=1 664w, https: //i0.wp. com / blogs.perficient.com / files / 2019/11 / Image7.png? resize = 300% 2C199 & ssl = 1 300w, https://i0.wp.com/blogs.perficient.com/files/2019/11/Image7 .png? resize = 640% 2C425 & ssl = 1 640w "tailles =" (largeur maximale: 519px) 100vw, 519px "données-recalc-dims =" 1 "/> </a data-recalc-dims=

    Le code ci-dessous montre plus de détails Vous pouvez indiquer l’origine de chaque donnée pour l’objet créé dans cette action.

     Image8 "width =" 520 "height =" 210 "srcset =" https://i0.wp.com /blogs.perficient.com/files/2019/11/Image8.png?w=829&ssl=1 829w, https://i0.wp.com/blogs.perficient.com/files/2019/11/Image8.png? resize = 300% 2C121 & ssl = 1 300w, https://i0.wp.com/blogs.perficient.com/files/2019/11/Image8.png?resize=768%2C310&ssl=1 768w, https: // i0. wp.com/blogs.perficient.com/files/2019/11/Image8.png?resize=640%2C259&ssl=1 640w "tailles =" (largeur maximale: 520px) 100vw, 520px "données-recalc-dims =" 1 "/> </a data-recalc-dims=

    1. Passez le tableau de données à l'action de création de table CSV et créez un fichier de sortie. Je produis mon fichier dans le stockage d'objets blob.

     Image9 "width =" 506 "height =" 323 "srcset =" https://i2.wp.com/blogs.perficient.com/files/2019/11/Image9. png? w = 673 & ssl = 1 673w, https://i2.wp.com/blogs.perficient.com/files/2019/11/Image9.png?resize=300%2C192&ssl=1 300w, https: // i2. wp.com/blogs.perficient.com/files/2019/11/Image9.png?resize=640%2C409&ssl=1 640w "values ​​=" (max-width: 506px) 100vw, 506px "data-recalc-dims =" 1 "/> </a data-recalc-dims=

    Il s’agit du flux complet qui s’est effondré.

     Image10" width = "498" height = "571" srcset = "https: //i2.wp. com / blogs.perficient.com / files / 2019/11 / Image10.png? w = 659 & ssl = 1 659w, https://i2.wp.com/blogs.perficient.com/files/2019/11/Image10.png ? resize = 262% 2C300 & ssl = 1 262w, https://i2.wp.com/blogs.perficient.com/files/2019/11/Image10.png?resize=640%2C733&ssl=1 640w "tailles =" (max -width: 498px) 100vw, 498px "data-recalc-dims =" 1 "/> </a data-recalc-dims=

    Une fois toutes les données exportées, suivez les étapes ci-dessous pour importer les données dans votre cible Dyna micros en utilisant l’assistant d’importation Mappez les champs du fichier exporté sur le champ correspondant à importer. Lors de l'importation, j'ai ignoré les champs créés sur, créés par, etc. qu'il n'était pas important de conserver dans mon environnement cible.

    1. Importer les groupes d'unités.
    2. Importer les unités.
    3. Importer les listes de prix.
    4. Importer les produits . Mappez les champs Statut et Motif sur «Actif» pour tous les produits importés.

     Image11 "width =" 388 "height =" 409 "srcset =" https://i0.wp.com/blogs.perficient .com / files / 2019/11 / Image11.png? w = 564 & ssl = 1 564w, https://i0.wp.com/blogs.perficient.com/files/2019/11/Image11.png?resize=284% 2C300 & ssl = 1 284w "tailles =" (largeur maximale: 388 px) 100 vw, 388 px "data-recalc-dims =" 1 "/> </a data-recalc-dims= Image12" width = "386" height = "408" srcset = "https: //i2.wp.com/blogs.perficient.com/files/2019/11/Image12.png?w=566&ssl=1 566w, https://i2.wp.com/blogs.perficient.com/files/2019 /11/Image12.png?resize=284%2C300&ssl=1 284w "values ​​=" (max-width: 386px) 100vw, 386px "data-recalc-dims =" 1 "/> </a data-recalc-dims=

    1. Importer le produit paquets. Mappez les champs Status et Status Reason sur «Draft» pour tous les groupes de produits importés.
    2. Importez les associations de produits. Mappez le champ source ProductID au champ de recherche Produit associé et le champ source ProductBundleID au champ Produit. Mappez les champs Statut et Motif sur «Brouillon» pour tous les groupes de produits importés.

     Image13 "width =" 378 "height =" 398 "srcset =" https://i2.wp.com/blogs. perficient.com/files/2019/11/Image13.png?w=573&ssl=1 573w, https://i2.wp.com/blogs.perficient.com/files/2019/11/Image13.png?resize=285 % 2C300 & ssl = 1 285w "tailles =" (largeur maximale: 378 px) 100 vw, 378 px "data-recalc-dims =" 1 "/> </a data-recalc-dims= Image 14

    1. Importer les éléments de la liste de prix. Visualiser les cartes Définissez le champ Nom de la liste de prix sur le champ de recherche Liste de prix. Mappez l'ID de produit sur le champ de recherche de produit au lieu du mappage généré automatiquement pour le champ de recherche de produit Définissez le champ ID de processus sur Ignorer.

     Image15 "width =" 394 "height =" 417 "srcset =" https://i0.wp.com/blogs.perficient.com/files/2019/11/Image15.png?w=567&ssl=1 567w, https: //i0.wp .com / blogs.perficient.com / files / 2019/11 / Image15.png? resize = 284% 2C300 & ssl = 1 284w "tailles =" (largeur maximale: 394 pixels), 100vw, 394 pixels "données-recalc-dims =" 1 "/> </a data-recalc-dims= Image16" largeur = "400" height = "420" srcset = "https://i2.wp.com/blogs.perficient.com/files/2019/11/Image16.png?w=569&ssl=1 569w, https: // i2 .wp.com / blogs.perficient.com / fichiers / 2019/11 / Image16.png? resize = 286% 2C300 & ssl = 1 286w "tailles =" (largeur maximale: 400px) 100vw, 400px "données-recalc-dims = "1" /> </a data-recalc-dims= Image17 "width =" 393 "height =" 422 "srcset =" https://i0.wp.com/blogs.perficient.com/files/2019/11/Image17.png?w = 557 & ssl = 1 557w, https://i0.wp.com/blogs.perficient.com/files/2019/11/Image17.png?resize=280%2C300&ssl=1 280w "tailles =" (largeur maximale: 393 pixels) ) 100vw, 393px "data-recalc-dims =" 1 "/> </a data-recalc-dims=

    1. Après l'importation, liez les listes de prix par défaut aux produits. Définissez chaque produit ou groupe de produits sur le statut approprié dans l'ordre suivant:
      1. Activez les ensembles de produits.
      2. Supprimez tous les ensembles de produits retirés.
      3. Supprimez tous les produits abandonnés.




Source link