Partekatu honen bidez:


Sortu paketeak CRM Package Deployer tresnarentzako

Package Deployer utzi administratzaileei inplementatzen paketeak Microsoft Dataverse instantzietan. Package Deployer paketea oinarri daiteke hurrengo edozeinekin edo guztiekin:

  • Dataverse soluzio-fitxategi bat edo gehiago.
  • Konfigurazioaren migrazio tresnako konfigurazio lauak edo bertatik esportatutako datu-fitxategia. Tresnari buruzko informazio gehiagorako, ikusi Mugitu konfigurazioko datuak instantzia eta erakundeen artean Konfigurazioa migratzeko tool tresnarekin.
  • Paketea Dataverse instantziara inplementatu baino lehenago, bitartean edo ondoren exekutatu daitekeen kodea pertsonalizatua.
  • Paketearen HTML eduki espezifikoa inplementazio prozesuaren hasieran edo amaieran bistara daitekeena. Eduki hau erabilgarria izan daiteke paketean inplementatutako soluzio eta fitxategien deskribapen bat eskaintzeko.

Oharra

Beste pakete mota bat dago plugin paketea. Pakete mota hori menpeko plugin-muntaietarako da eta ez dauka erlaziorik Package Deployer paketeekin.

Aurrebaldintzak

  • Ziurtatu paketean sartu nahi dituzun irtenbide eta fitxategi guztiak prest dituzula.
  • Visual Studio 2019 edo geroago, edo Visual Studio Kodea.

Prozesuaren informazio orokorra

Package Deployer Pakete bat sortzeko, egin urrats hauek.

  • Sortu Visual Studio edo MSBuild proiektua
  • Gehitu irtenbideak eta bestelako fitxategiak proiektuari
  • Eguneratu emandako HTML fitxategiak (aukerakoa)
  • Zehaztu paketearen konfigurazio-balioak
  • Definitu zure paketerako kode pertsonalizatua
  • Eraiki eta zabaldu paketea

Artikulu honetan urrats hauek xehetasunez deskribatzen dira.

Sortu paketearen proiektua

Lehen urratsa sortzea da Visual Studio edo MSBuild proiektua paketerako. Horretarako, erabilgarri dauden bi tresna-luzapenetako bat izan behar duzu zure garapen-ordenagailuan instalatuta. Erabiliz gero Visual Studio Code, instalatu Microsoft Power Platform CLI. Bestela, Visual Studio 2019 edo berriagoa erabiltzen baduzu, instalatu Power Platform erremintak Visual Studio.

Hautatu beheko fitxa egokia nahi duzun tresnaren luzapena erabiliz proiektu bat nola sortu jakiteko. Bi tresnek proiektua antzeko formatuan ateratzen dute.

Exekutatu pac paketearen init komandoa sortzeko hasierako paketea. Informazio gehiago: pac paketea

pac package init help
pac package init --outputDirectory DeploymentPackage

Ondorioz, CLI irteerak behean agertzen diren karpetak eta fitxategiak ditu. "DeploymentPackage" karpetaren izena hemen erabili da adibide gisa.

C:.
└───DeploymentPackage
    │   DeploymentPackage.csproj
    │   PackageImportExtension.cs
    │
    └───PkgAssets
            ImportConfig.xml
            manifest.ppkg.json

Sortutako proiektuan, bilatu ImportConfig.xml konfigurazio fitxategia PkgAssets karpetan eta PackageImportExtension.cs fitxategia. Artikulu honetan geroago deskribatzen den moduan aldatuko dituzu fitxategi hauek.

Gehitu pakete fitxategiak

Pakete-proiektu bat sortu ondoren, proiektu horri irtenbideak eta bestelako fitxategiak gehitzen has zaitezke.

CLI erabiltzean, kanpoko paketeak gehi ditzakezu, soluzioak eta erreferentziak zure pakete-proiekturako erabilita gehitu azpikomandoetako bat. Idatzi pac package help ikusteko azpikomandoen zerrenda. Gehi diezaiogun irtenbide bat gure paketeari.

> pac package add-solution help

Commands:
Usage: pac package add-solution --path [--import-order] [--skip-validation] [--publish-workflows-activate-plugins] [--overwrite-unmanaged-customizations] [--import-mode] [--missing-dependency-behavior] [--dependency-overrides]

> cd .\DeploymentPackage\
> pac package add-solution --path ..\TestSolution_1_0_0_1_managed.zip

The item was added successfully.

Konfiguratu paketea

Definitu paketearen konfigurazioa informazioa gehituz zure paketeari buruz ImportConfig.xml fitxategia proiektuan. Ikus ImportConfig Reference erabili beharreko elementu eta atributu baliozkoen adibide bat eta deskribapenak lortzeko.

Gehitu pertsonalizatutako kodea

Paketea ingurune batera inportatu aurretik, bitartean eta ondoren exekutatzen den kode pertsonalizatua gehi dezakezu. Hori egiteko, ondorengo argibideei jarraitu.

  1. Editatu PackageTemplate.cs (edo PackageImportExtension.cs) fitxategia proiektuaren erroko karpetan.

  2. C# fitxategian, zuk egin dezakezu:

    1. Sartu kode pertsonalizatua pakete hasiberriena zehaztapenean zehazteko InitializeCustomExtension.

      Metodo hau erabil daiteke paketeak exekutatzen dituzten bitartean exekuzio parametroak erabiltzeko. Garatzaile gisa, exekuzio parametroetarako edozein euskarri gehitu diezazuke paketean RuntimeSettings propietateak prozesatzeko kodea baduzu erabiltzailearen sarreran oinarrituta.

      Adibidez, adibideko kode hau deitzen den exekuzio parametroa gaitzen da SkipChecks Bi balio posible dituen paketearentzat: egia edo gezurra. Lagin-kodea egiaztatzen du erabiltzaileak exekutatzen ari den bitartean parametroren bat zehaztu badu Package Deployer (komando-lerroa edo PowerShell erabiliz), eta, ondoren, informazioa prozesatzen du. Paketeak exekutatzen dituen erabiltzaileak ez badu exekuzio-parametrorik zehaztu, balioa izango du RuntimeSettings jabetza nulua izango da.

      public override void InitializeCustomExtension()  
      {  
      // Do nothing.  
      
      // Validate the state of the runtime settings object.  
      if (RuntimeSettings != null)  
      {  
      PackageLog.Log(string.Format("Runtime Settings populated.  Count = {0}", RuntimeSettings.Count));  
      foreach (var setting in RuntimeSettings)  
      {  
      PackageLog.Log(string.Format("Key={0} | Value={1}", setting.Key, setting.Value.ToString()));  
      }  
      
      // Check to see if skip checks is present.  
      if ( RuntimeSettings.ContainsKey("SkipChecks") )  
      {  
      bool bSkipChecks = false;  
      if (bool.TryParse((string)RuntimeSettings["SkipChecks"], out bSkipChecks))  
      OverrideDataImportSafetyChecks = bSkipChecks;  
      }  
      }  
      else  
      PackageLog.Log("Runtime Settings not populated");  
      }  
      

      Kode horrek gaitzen dio administratzaileari komando lerroa edo Inportazio-CrmPackage cmdlet, exekutatzen ari zaren bitartean segurtasun egiaztapenak saihestu nahi dituzun zehazteko Package Deployer paketea inportatzeko tresna. Informazio gehiago: Inplementatu paketeak Package Deployer erabiliz eta Windows PowerShell

    2. Sartu kode pertsonalizatuak, irtenbideak inprobisazio metodoaren definizioan inportatu aurretik exekutatu PreSolutionImport Xede batean zehaztutako irtenbidea eguneratzen ari zaren bitartean pertsonalizazioak mantendu edo gainidatzi behar diren zehazteko Dataverse instantzia, eta ea automatikoki pluginak eta laneko fluxuak aktibatu behar diren.

    3. Erabili RunSolutionUpgradeMigrationStep ren ordezko metodoaren definizioa irtenbide baten bi bertsioren artean datuak eraldatzeko edo berritzeko. Metodo honi inportatzen ari zaren soluzioa xedean dagoeneko badago soilik deitzen zaio Dataverse instantzia.

      Funtzio honek parametro hauek espero ditu:

      Parametroa Deskribapenak
      solutionName Soluzioaren izena
      oldVersion Soluzio zaharraren bertsio-zenbakia
      newVersion Soluzio berriaren bertsio-zenbakia
      oldSolutionId Soluzio zaharraren GUID.
      newSolutionId Soluzio berriaren GUID.
    4. Idatzi pertsonalizazio kodea exekutatzeko soluzioaren inportatzea osatu aurretik gainidatzi definizioan BeforeImportStage metodoan. Laginaren datuak eta fitxategiak planoan zehaztutako irtenbideetarako ImportConfig.xml fitxategia inportatu egiten da irtenbideen inportazioa amaitu aurretik.

    5. Gainidatzi konfigurazio-datuak inportatzeko unean hautatutako hizkuntza OverrideConfigurationDataFileLanguage baliogabetzeko metodoaren definizioa erabiliz. Paketeko hizkuntza erabilgarrien zerrendan zehaztutako hizkuntza ID (LCID) zehaztua ez bada aurkitzen, datu-fitxategi lehenetsia inportatuko da.

      Konfigurazio datuetarako erabilgarri dauden hizkuntzak zehazten dituzu <cmtdatafiles> nodoan ImportConfig.xml fitxategia. Lehenetsitako konfigurazio - datuak inportatzeko fitxategia zehazten da crmmigdataimportfile atributuan ImportConfig.xml fitxategia.

      Datu-egiaztapenak saltatzea (OverrideDataImportSafetyChecks = egia) eraginkorra izan daiteke hemen xede Dataverse instantziak ez duela daturik ziur bazaude.

    6. Idatzi pertsonalizazio kodea exekutatzeko soluzioaren inportatzea osatu ondoren gainidatzi definizioan AfterPrimaryImport>metodoan. Soluzio-inportazioa hasi aurretik lehenago inportatu ez ziren gainerako fitxategi lauak inportatzen dira orain.

    7. Aldatu zure pakete-karpetaren izen lehenetsia nahi duzun pakete-izenera. Hori egiteko, berriro izena eman PkgFolder (edo PkgAssets) karpeta Soluzioaren arakatzailea panelean, eta gero editatu itzultzeko balioa azpian GetImportPackageDataFolderName propietatean.

      public override string GetImportPackageDataFolderName  
      {  
      get  
      {  
      // WARNING this value directly correlates to the folder name in the Solution Explorer where the ImportConfig.xml and sub content is located.  
      // Changing this name requires that you also change the correlating name in the Solution Explorer  
      return "PkgFolder";  
      }  
      }  
      
    8. Aldatu paketearen izena itzultzearen balioa editatuz GetNameOfImport Jabetza.

      public override string GetNameOfImport(bool plural)  
      {  
      return "Package Short Name";  
      }  
      

      Itzulitako balio hau Dynamics 365 Package Deployer morroian paketeak hautatzeko orrian agertzen den paketearen izena da.

    9. Aldatu paketearen deskribapena itzultzearen balioa editatuz GetImportPackageDescriptionText Jabetza.

      
      public override string GetImportPackageDescriptionText  
      {  
      get { return "Package Description"; }  
      }  
      
      

      Itzulitako balio hau Package Deployer morroian paketearen izenarekin batera agertzen den paketearen deskribapena da.

    10. Aldatu paketearen izen luzea itzultzearen balioa editatuz GetLongNameOfImport Jabetza.

      
      public override string GetLongNameOfImport  
      {  
      get { return "Package Long Name"; }  
      }  
      
      

      Paketearen izen luzea hurrengo orrian agertzen da instalatu beharreko paketea hautatu ondoren.

  3. Gainera, hurrengo funtzioa eta aldagaiak eskuragarri daude paketean:

    Izena Mota Deskribapenak
    CreateProgressItem(String) Function Erabiltzaileen interfazean (UI) aurrerapen berri bat sortzeko erabiltzen da.
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Deiak sortutako aurrerapena eguneratzeko erabiltzen da CreateProgressItem(String).

    ProgressPanelItemStatus honako balioak dituen enumea da:

    Lanean = 0
    Osatuta = 1
    Huts egin du = 2
    Abisua = 3
    Ezezaguna = 4
    RaiseFailEvent(String, Exception) Function Salbuespen mezuarekin uneko egoera inportazioan huts egiteko erabiltzen da.
    IsRoleAssoicatedWithTeam(Guid, Guid) Function Eginkizuna zehaztutako talde batekin lotzen den ala ez zehazteko erabiltzen da.
    IsWorkflowActive(Guid) Function Erabilitako zehaztutako lan-fluxua aktiboa den zehazteko erabiltzen da.
    PackageLog Klaseko erakuslea Paketearen hasierako erregistro-interfazera erakuslea da. Interfaze hau pakete batek erabiltzen du paketeak erregistratzeko fitxategian mezuak eta salbuespenak erregistratzeko.
    RootControlDispatcher Propietatea Paketeen hedapenean zure kontrolak bere UI errendatzeko aukera ematen duen banatzailearen interfaze bat da. Erabili interfaze hau edozein UI elementuak edo komandoak estaltzeko. Garrantzitsua da aldagai hau balio nuluak egiaztatzea erabili aurretik, baliteke baliteke balio bat ezarrita ez egotea.
    CrmSvc Propietatea Honen erakuslea da CrmServiceClient Pakete batetik Dynamics 365-era zuzentzeko pakete bat lortzeko aukera ematen duen klasea. Erabili erakusle hau SDK metodoak eta bestelako ekintzak gainidazteko metodoetan gauzatzeko.
    DataImportBypass Propietatea Zehaztu erabili hau Dynamics 365 ala ez zehazteko Package Deployer Inportazioa bezalako datuak inportatzeko eragiketa guztiak saltatzen ditu Dataverse lagin datuak, fitxategi lauen datuak eta Konfigurazio migrazio tresnatik esportatutako datuak. Zehaztu egia edo faltsua. Lehenetsia da false.
    OverrideDataImportSafetyChecks Propietatea Zehaztu Dynamics 365 Package Deployer k bere segurtasun-egiaztapen batzuk saihesten dituen ala ez, eta horrek inportazioaren errendimendua hobetzen laguntzen du. Zehaztu true edo false. Lehenetsia da false.

    Propietate hau ezarri beharko zenuke true helburuko Dataverse instantziak daturik ez badu soilik.
  4. Gorde zure proiektua. Hurrengo pausoa zure paketea eraikitzea da.

Eraiki eta inplementatu

Hurrengo ataletan pakete bat nola eraiki eta zabaldu deskribatzen da.

Konpilazioa

Zure paketea eraikitzea behean deskribatzen da erabiltzen ari zaren tresnaren arabera.

CLI-rekin sortutako pakete bat eraikitzeko, .csproj fitxategia karga dezakezu Visual Studion, baina horren ordez dotnet komandoa eta MSBuild erabiliko ditugu. Beheko adibideak suposatzen du lan-direktorioak *.csproj fitxategia duela.

> dotnet publish

DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip

Aukeran, eraikitako paketearen xehetasunak ikus ditzakezu.

> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip

Zure paketea egina dago hurrengo fitxategiekin azpian <Proiektua>\Bin\Debug karpeta.

  • <PackageName> karpeta: karpeta-izena zure paketeen karpetaren izenari aldatu duzunaren berdina da atal honetako urrats 2.g Gehitu kode pertsonalizatua. Karpeta horrek barne hartzen ditu soluzio guztiak, konfigurazio-datuak, fitxategi lauak eta zure paketearentzako edukiak.

Oharra

.NET karpeta bat (adibidez, net472) ikus dezakezu pdpublish karpeta duen. Zure DLL eta beste proiektu-fitxategiak pdpublish karpeta horretan daude.

  • <PackageName>.dll: mihiztatzeak barne hartzen du pertsonalizatutako kodea zure paketerako. Modu lehenetsian, muntaiaren izena zure proiektu-izenaren bera da.

Inplementatu

Pakete bat sortu ondoren, bertsioan erabil dezakezu Dataverse instantzia bai Package Deployer tresna edo Windows PowerShell edo CLI komando.

  • Inplementatzeko erabili Package Deployer tresna, lehenik, deskargatu tresna deskribatu bezala Dataverse inplementazio tresnak. Ondoren, jarraitu paketeen inplementari buruzko informazio zehatza Inplementatu paketeak Package Deployer edo Windows PowerShell erabiliz artikuluan.

  • Inplementatzeko CLI erabilita, erabili pac package deploy komandoa.

    > pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
    

    Oharra

    CLI erabiliz pakete bat helburu-ingurune batera zabaltzeko, lehenik autentifikazio-profil bat konfiguratu eta erakunde bat hautatu behar duzu. Informazio gehiago: pac auth sortu, pac org hautatu

Jardunbide egokiak

Zerrendatuta beheran daude jardunbide egokien aholku batzuk jarraitzeko Package Deployer paketeekin lan egitean.

Paketeak sortzae

Paketeak sortzerakoan, garatzaileek:

  • Ziurtatu pakete-mihiztatzeak sinatuta daudela.

Inplementatzea paketeak

Paketeak inplementatzeko orduan, Dataverse administratzaileek ondorengo jarraibideak bete behar dituzte:

  • Errepikatu sinatutako pakete-mihiztatzeetan jarraitu ahal izan dezazun mihiztatze bat jatorrira.
  • Probatu paketea aurreprodukzioko instantzia batean, hobe ekoizpen-instantzia-ren ispilu-irudia, ekoizpen-instantzia-en exekutatu aurretik.
  • Babeskopia egin ekoizpen-instantzia paketea inplementazioaren aurretik.

Ikus baita ere

Soluzioaren paketegilearen tresna