Package Deployer құралы үшін бумалар жасау

Package Deployer құралы әкімшілердің Microsoft Dataverse даналарында бумаларды орналастыруына мүмкіндік береді. Package Deployer бумасы келесілердің бірінен тұруы немесе барлығын қамтуы мүмкін:

  • Dataverse шешім файлдарының бірі немесе бірнешеуі.
  • Configuration Migration Tool құралынан алынған құрылымданбаған файлдар немесе экспортталған конфигурация деректері файлы. Құрал туралы қосымша ақпаратты Configuration Migration Tool құралы арқылы конфигурация деректерін даналар және ұйымдар арасында жылжыту бөлімінен қараңыз.
  • Бума Dataverse данасында орналастырылмас бұрын, кезінде немесе орналастырылғаннан кейін іске қосуға болатын теңшелетін код.
  • HTML мазмұны орналастыру үрдісінің басында және аяғында көрсетілетін бумаға арналған. Бұл контент бумада орналастырылған шешімдер және файлдардың сипаттамасын ұсыну үшін пайдалы болуы мүмкін.

Ескертпе

Қосылатын модуль бумасы деп аталатын басқа бума түрі бар. Мұндай бума түрі қосылатын модульге тәуелді жинақтарға арналған және Package Deployer бумаларына қатысы жоқ.

Алғышарттар

  • Бумаға қосу керек барлық шешімдер мен басқа файлдардың бар екеніне көз жеткізіңіз.
  • Visual Studio 2019 немесе одан кейінгі, немесе Visual Studio Код.

Процеске шолу

Бума жасау Package Deployer үшін келесі қадамдарды орындаңыз.

  • Visual Studio немесе MSBuild жобасын жасаңыз
  • Жобаға шешімдер мен басқа файлдарды қосыңыз
  • Берілген HTML файлдарын жаңартыңыз (міндетті емес)
  • Буманың конфигурация мәндерін көрсетіңіз
  • Буманың реттелетін кодын анықтаңыз
  • Буманы құрастырыңыз және орналастырыңыз

Бұл қадамдар осы мақалада егжей-тегжейлі сипатталған.

Бума жобасын жасаңыз

Бірінші қадам — бума үшін Visual Studio немесе MSBuild жобасын жасау. Ол үшін әзірлеу компьютерінде екі қолжетімді құрал кеңейтімінің бірі орнатылған болуы керек. Егер Visual Studio Code пайдалансаңыз, Microsoft Power Platform CLI қызметін орнатыңыз. Ал Visual Studio 2019 бағдарламасын пайдалансаңыз, Visual Studio бағдарламасына арналған Power Platform Tools құралдарын орнатыңыз. Power Platform Қазіргі уақытта құралдарды кеңейту тек 2019 жылға Visual Studio ғана қолжетімді. Дегенмен жасалған жобаны Visual Studio 2019 немесе одан кейінгі нұсқасының көмегімен жасауға болады.

Қажетті құрал кеңейтімінің көмегімен жобаны жасау жолын білу үшін төмендегі жерден сәйкес қойыншаны таңдаңыз. Екі құрал да жобаны ұқсас пішімде шығарады.

Бастапқы буманы жасау үшін pac package init пәрменін орындаңыз. Қосымша ақпарат: pac бумасы

pac package init help
pac package init --outputDirectory DeploymentPackage

Алынған CLI шығысында төменде көрсетілген қалталар мен файлдар бар. Мұнда мысал ретінде "DeploymentPackage" қалта атауы пайдаланылған.

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

Жасалған жобада PkgAsset қалтасы мен PackageImportExtension.cs файлынан Импорттау Конфиг.xml конфигурация файлын табыңыз. Бұл файлдарды кейінірек осы мақалада сипатталғандай өзгертесіз.

Бума файлдарын қосу

Бума жобасын жасағаннан кейін, сол жобаға шешімдер мен басқа файлдарды қоса бастауыңызға болады.

CLI қызметін пайдаланған кезде, сыртқы бумаларды, шешімдерді және сілтемелерді бума жобасына add ішкі пәрмендерінің бірін пайдаланып қосуға болады. Ішкі пәрмендер тізімін көру үшін pac package help пәрменін енгізіңіз. Бумаға шешім қосайық.

> 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.

Буманы конфигурациялау

  1. Бума туралы ақпаратты жобадағы ImportConfig.xml файлына қосу арқылы бума конфигурациясын анықтаңыз. Өңделетін файлды ашыңыз. Келесі тізімде конфигурация файлындағы әр параметр және түйін туралы ақпарат берілген.

    installsampledata
    True немесе false. Егер true күйінде болса, деректердің үлгісін Dataverse данасына орнатады. Бұл деректер Dataverse қызметіндегі Параметрлер>Деректерді басқару аймағынан орнатуға болатын сол деректер үлгісі болып табылады.

    waitforsampledatatoinstall
    Шын немесе жалған. Егер шын күйінде болса және деректер үлгісін орнату да шын күйіне орнатылса, буманы орналастырмас бұрын деректердің үлгісін орнатылуы күтіледі.

    Ескертпе

    Егер waitforsampledatatoinstallшын күйіне орнататын болсаңыз деректер үлгісін орнатудышын күйіне орнатыңыз.

    agentdesktopzipfile
    Ашуға арналған zip файлының атауы. Егер сіз мұнда .zip файлының атауын көрсетсеңіз, ол файл мазмұнын ашқыңыз келетін орынды таңдауды сұрайтын буманы орналастыру процесі барысында экран қосады.

    Бұл атрибут көбінесе Dynamics 365 қызметіне арналған Unified Service Desk бумаларын жасау үшін пайдаланылады. Unified Service Desk туралы ақпаратты Unified Service Desk 3.0 басқару нұсқаулығы тақырыбынан қараңыз.

    agentdesktopexename
    Орналастыру процесінің соңында шақырылатын zip файлындағы немесе URL мекенжайындағы .exe немесе .msi файлының атауы.

    Бұл атрибут көбінесе Unified Service Desk бумаларын жасау үшін пайдаланылады.

    crmmigdataimportfile
    Configuration Migration Tool құралы көмегімен экспортталатын әдепкі конфигурация деректері файлының (.zip) файл атауы.

    • Сондай-ақ Package Deployer іске қосу барысында жаңа орындалу уақыты параметрлерін пайдалану арқылы анықталған тіл идентификаторына (LCID) негізделген конфигурация файлының локализацияланған нұсқасын импорттауға болады. Бумадағы конфигурация деректері файлының локализацияланған нұсқаларын көрсету үшін <cmtdatafile> түйінін (кейінірек түсіндірілген) пайдаланыңыз да, содан соң орындалу уақыты параметрлерін пайдаланып көрсетілген тіл идентификаторына негізделген конфигурация деректері файлын импорттауға арналған логиканы көрсету үшін OverrideConfigurationDataFileLanguage әдісін (кейінірек түсіндірілген) пайдаланыңыз. Бір уақытта бума арқылы бірнеше конфигурация деректер файлын импорттау мүмкін емес.

    • For Dataverse (жергілікті), егер конфигурация деректер файлында пайдаланушы ақпараты болса және бастапқы және мақсатты Dataverse нұсқалар бірдей Active Directory доменінде болса, пайдаланушы ақпараты мақсатты Dataverse нұсқаға импортталады. Пайдаланушы ақпаратын басқа домендегі Dataverse (жергілікті) данаға импорттау үшін жобада Configuration Migration Tool құралы арқылы жасалған пайдаланушылық салыстыру файлын (.xml) қамтып, оны кейінірек түсіндірілген <cmtdatafile> түйініндегі usermapfilename төлсипатын пайдаланып конфигурация деректері файлымен бірге көрсету қажет. Пайдаланушы ақпаратын даналарға Dataverse импорттау мүмкін емес.
      <solutions> түйіні
      Импортталатын шешімдерді сипаттайтын <configsolutionfile> түйіндері массивін қамтиды. Осы түйіннің астындағы шешімдердің реті шешімнің Dataverse данасында мақсатты түрде импортталатын ретін көрсетеді.

      <configsolutionfile> түйіні
      Жеке шешімдерді, сондай-ақ импортталатын әрбір шешімнің келесі ақпаратын көрсету үшін <solutions> түйіні астындағы осы түйінді пайдаланыңыз:

    • solutionpackagefilename: Шешімнің .zip файлының атауын көрсетіңіз. Талап етіледі.

    • overwriteunmanagedcustomizations: Мақсатты Dynamics 365 данасында бұрыннан бар шешімді импорттау кезінде басқарылмайтын теңшелімдерді қайта жазу керектігін көрсетіңіз. Бұл атрибут міндетті емес, егер бұл атрибутты көрсетпесеңіз, әдепкі бойынша бұрыннан бар шешімдегі басқарылмайтын реттеулер 365 нысана динамикасында сақталады.

    • publishworkflowsandactivateplugins: Шешім импортталғаннан кейін жұмыс ағындарын жариялап, қосылатын модульдерді мақсатты Dynamics 365 данасына белсендіру қажеттігін көрсетіңіз. Бұл атрибут міндетті емес, егер бұл атрибутты көрсетпесеңіз, әдепкі бойынша жұмыс процестері жарияланады және қосылатын модульдер мақсатты Dynamics 365 нұсқасында шешім импортталғаннан кейін белсендіріледі.

      Бумада көптеген <configsolutionfile> түйіндерін қосу арқылы бірнеше шешім файлы атауларын қосуға болады. Мысалы, үш шешім файлының импортталуын қаласаңыз, оларды төменде көрсетілгендей қосыңыз:

    
    <solutions>  
    <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" />  
    </solutions>  
    
    

    <filestoimport> түйіні
    Тиісті түрде импортталатын жеке файлдар мен zip файлдарын сипаттай үшін пайдаланылатын <configimportfile> және <zipimportdetails> түйіндерін қамтиды.

    <configimportfile> түйіні
    <configimportfile> түйіні астындағы бұл түйінді Dataverse қызметіне импортталатын файлды сипаттау үшін пайдаланыңыз. Бумада көптеген <configimportfile> түйіндерін қосу арқылы бірнеше файлдарды қосуға болады.

    
    <filestoimport>  
    <configimportfile filename="File.csv"  
    filetype="CSV"  
    associatedmap="FileMap"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true" />  
    <configimportfile filename="File.zip"  
    filetype="ZIP"  
    associatedmap="FileMapName"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true"/>  
    
    </filestoimport>  
    
    

    Төменде қолдау көрсетілетін атрибуттардың тізімі берілген:

    Төлсипат Сипаттама
    filename Импорттық деректерден тұратын файл атауы. Егер файл .zip файлы болса, <zipimportdetails> түйіні .zip файлындағы әрбір файлдың <zipimportdetail> түйінімен болуы тиіс.
    filetype Бұл мән csv, xml немесе zip болуы мүмкін.
    associatedmap Осы фалмен пайдаланылатын Dataverse импорттық деректер картасының атауы. Егер бос болса, жүйені пайдалану әрекеттері осы файл үшін деректерді импорттау картасының атауын анықтайды.
    importtoentity Орналастыру процесінің соңында шақырылатын сілтемені беру үшін zip файлында, URL мекенжайында немесе .msi файлында exe атауы болуы мүмкін.
    datadelimiter Импорт файлында пайдаланылатын деректерді бөлгіш атауы. Жарамды мәндер - жалғыз дәйексөз немесе қос тырнақша.
    fielddelimiter Импорт файлында пайдаланылатын өрісті бөлгіш атауы. Жарамды мәндер үтір немесе қос нүкте немесе жалғыз дәйексөз болып табылады.
    enableduplicatedetection Деректерді импорттауда қайталанатын деректерді іздеу ережелерін қосу керектігін анықтайды. Жарамды мәндер – шын немесе жалған.
    isfirstrowheader Импорттау файлының бірінші жолында өріс атаулары бар екенін белгілеу үшін пайдаланылады. Жарамды мәндер – true немесе false.
    isrecordownerateam Импорт бойынша жазба иесінің топ болуы қажеттігін көрсетеді. Жарамды мәндер – true немесе false.
    owneruser Жазбаларға иелік ететін пайдаланушы идентификаторын көрсетеді. Әдепкі мән - бұл ағымдағы уақытта жүйеге кірген пайдаланушы.
    waitforimporttocomplete Егер true болса, жалғастыру алдында жүйе импорттың аяқталуын күтеді. Егер false болса, ол тапсырмаларды кезекке қойып, жалғасады.

    <zipimportdetails> түйіні
    Бұл түйін Dynamics 365 жүйесіне импорттау үшін пайдаланылатын zip файлына қосылған файлдарды сипаттайтын <zipimportdetail> түйіндерінің массивінен тұрады.

    <zipimportdetail> түйіні
    <zipimportdetails> түйіні астындағы бұл түйінді <configimportfile> түйінінде көрсетілген .zip файлындағы жекке файл туралы ақпаратты беру үшін пайдаланыңыз.

    <filestoimport>  
    ...  
    ...  
    <zipimportdetails>  
    <zipimportdetail filename="subfile1.csv" filetype="csv" importtoentity="account" />  
    <zipimportdetail filename="subfile2.csv" filetype="csv" importtoentity="contact" />  
    </zipimportdetails>  
    </filestoimport>  
    
    

    Төменде қолдау көрсетілетін атрибуттардың тізімі берілген:

    Төлсипат Сипаттама
    filename Импорттық деректерден тұратын файл атауы.
    filetype Бұл мән csv немесе xml болуы мүмкін.
    importtoentity Орналастыру процесінің соңында шақырылатын сілтемені беру үшін zip файлында, URL мекенжайында немесе .msi файлында exe атауы болуы мүмкін.

    <filesmapstoimport> түйіні
    Бұл түйінде импортталатын <configmapimportfile> түйіндерінің массиві бар. Карта файлдарының реті осы торапта оларды әкелу тәртібі көрсетіледі. Деректер карталары туралы ақпарат алу үшін Импорттау үшін деректер карталарын жасау тақырыбын қараңыз.

    <configimportmapfile> түйіні
    <filesmapstoimport> түйіні астындағы бұл түйінді Dataverse жүйесінде импортталатын жеке салыстыру файлы туралы ақпарат беру үшін пайдаланыңыз.

    <filesmapstoimport>  
    <configimportmapfile filename="FileMap.xml" />  
    </filesmapstoimport>  
    

    <cmtdatafiles> түйіні
    Бұл торапта импорттауға жататын конфигурация деректер файлының локализацияланған нұсқасы бар тораптар массиві <cmtdatafile> бар.

    <cmtdatafile> түйіні
    <cmtdatafiles> түйіні астындағы бұл түйінді локализацияланған конфигурация деректері файлдарын тіл идентификаторы (қажетті) және пайдаланушы ақпаратының салыстыру файлымен (қосымша) бірге көрсету үшін пайдаланыңыз. Мысалы:

    <cmtdatafiles>  
    <cmtdatafile filename="data_1033.zip" lcid="1033" usermapfilename="UserMap.xml" />  
    <cmtdatafile filename="data_1041.zip" lcid="1041" usermapfilename="" />  
    </cmtdatafiles>  
    

    Реттелетін логиканы OverrideConfigurationDataFileLanguage әдісінде (кейінірек түсіндіріледі) орындалу уақытының параметрлерін (кейінірек түсіндіріледі) пайдаланып тіл идентификаторы (LCID) мәніне негізделген әдепкі (crmmigdataimportfile ішінде көрсетілген) орнына локализацияланған конфигурация деректері файлын импорттау үшін анықтауға болады.

  2. Барлығын сақтау пәрменін таңдаңыз.

    Келесі xml үлгі ImportConfig.xml файлдың мазмұнын білдіреді.

    <?xml version="1.0" encoding="utf-16"?>  
    <configdatastorage xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"  
    xmlns:xsd="https://www.w3.org/2001/XMLSchema"  
    installsampledata="true"  
    waitforsampledatatoinstall="true"  
    agentdesktopzipfile=""  
    agentdesktopexename=""  
    crmmigdataimportfile="data_1033.zip">  
    <solutions>  
    <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" />  
    </solutions>  
    <filestoimport>  
    <configimportfile filename="SampleOption.csv"  
    filetype="CSV"  
    associatedmap="SampleOption"  
    importtoentity="sample_option"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="false"/>  
    <configimportfile filename="File.zip"  
    filetype="ZIP"  
    associatedmap="FileMapName"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true"/>  
    <zipimportdetails>  
    <zipimportdetail filename="subfile1.csv"  
    filetype="csv"  
    importtoentity="account" />  
    <zipimportdetail filename="subfile2.csv"  
    filetype="csv"  
    importtoentity="contact" />  
    </zipimportdetails>  
    </filestoimport>  
    <filesmapstoimport>  
    <configimportmapfile filename="SampleOption.xml" />  
    </filesmapstoimport>  
    <cmtdatafiles>  
    <cmtdatafile filename="data_1033.zip"  
    lcid="1033"  
    usermapfilename="UserMap.xml" />  
    <cmtdatafile filename="data_1041.zip"  
    lcid="1041"  
    usermapfilename="" />  
    </cmtdatafiles>  
    </configdatastorage>  
    
    

Реттелетін кодты қосу

Бума ортаға импортталғанға дейін, импортталу кезінде және импортталған кейін орындалатын реттелетін кодты қосуға болады. Ол үшін келесі нұсқауларды орындаңыз.

  1. Жобаның түбірлік қалтасындағы PackageTemplate.cs (немесе PackageImportExtension.cs) файлын өңдеңіз.

  2. C# файлында келесі әрекеттерді орындай аласыз:

    1. Бума InitializeCustomExtension алдын ала анықтау әдісі анықтамасында баптандырылғанда орындалатын реттелмелі кодты енгізіңіз.

      Бұл әдісті пайдаланушыларға буманы орындау кезінде орындалу уақыты параметрлерін пайдалануға мүмкіндік беру үшін пайдалануға болады. Әзірлеуші ретінде сізде оны пайдаланушы кірісі негізінде жалғастыру үшін код болғанда RuntimeSettings сипатын пайдаланып кез келген орындалу уақыты параметріне қолдау қосуға болады.

      Мысалы, келесі үлгі коды шын немесе жалған екі ықтимал мәні бар бума үшін SkipChecks деп аталатын орындалу уақыты параметрін іске қосады. Үлгі коды пайдаланушының Package Deployer іске қосу кезінде (немесе командалық жолды немесе PowerShell көмегімен) қандай-да бір орындалу уақыты параметрлерін көрсеткенін тексереді, содан кейін ақпаратты сәйкесінше өңдейді. Пайдаланушы буманы іске қосу кезінде орындалу уақыты параметрін көрсетпесе, RuntimeSettingsмүлік мәні нөлге тең болады.

      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");  
      }  
      

      Бұл код буманы импорттау үшін Package Deployer құралын іске қосу кезінде қауіпсіздік тексерістерін өткізіп жіберу қажеттігін көрсету үшін әкімшіге пәрмен жолын немесе Import-CrmPackage командлетін пайдалануға мүмкіндік береді. Қосымша ақпарат: Package Deployer және Windows PowerShell пайдаланып бумаларды орналастыру

    2. Шешімдерді көрсетілген шешімді мақсатты Dataverse данасында жаңарту барысында теңшелімдерді сақтау немесе қайта жазу қажеттігін, сондай-ақ қосылатын модульдер мен жұмыс ағындарын автоматты түрде белсендіру қажеттігін көрсету үшін PreSolutionImport алдын ала анықтау әдісі анықтамасында импорттау алдында орындалатын реттелмелі кодты енгізіңіз.

    3. Шешімнің RunSolutionUpgradeMigrationStep екі нұсқасы арасында деректерді түрлендіруді немесе жаңартуды орындау үшін шамадан тыс әдіс анықтамасын пайдаланыңыз Бұл әдіс тек сіз импорттайтын шешім мақсатты Dataverse нұсқада болған жағдайда ғана аталады.

      Бұл функция келесі параметрлерді күтеді:

      Параметр Сипаттама
      solutionName Шешімнің атауы
      oldVersion Ескі шешімнің нұсқа нөмірі
      newVersion Жаңа шешімнің нұсқа нөмірі
      oldSolutionId Ескі шешімнің GUID.
      newSolutionId Жаңа шешімнің GUID.
    4. Шешімді импорттау BeforeImportStage әдісінің алдын ала анықтау анықтамасында аяқталуы алдында орындалатын реттелмелі кодты енгізіңіз. Деректер үлгісі мен ImportConfig.xml файлында көрсетілген шешімдердің кейбір тегіс файлдары шешімді импорттау аяқталғанша импортталады.

    5. Баптау деректерін импорттау үшін таңдалған тілді жою әдісінің OverrideConfigurationDataFileLanguage анықтамасын пайдаланып. Егер көрсетілген тілдің көрсетілген жергілікті идентификат (LCID) жиынтығындағы қол жетімді тілдер тізімінде табылмаса, әдепкі деректер файлы импортталады.

      ImportConfig.xml файлындағы <cmtdatafiles> түйінінде конфигурация деректерінің қолжетімді тілдерін көрсетесіз. Әдепкі конфигурация деректерін импорттау файлы ImportConfig.xml файлындағы crmmigdataimportfile төлсипатында көрсетіледі.

      МақсаттыOverrideDataImportSafetyChecks нұсқада ешқандай деректер жоқ екеніне көз жеткізсеңіз, деректерді тексеруді өткізіп жіберу ( Dataverse = true) осында тиімді болуы мүмкін.

    6. Импорттау AfterPrimaryImport> әдісінің алдын ала анықтау анықтамасында аяқталғаннан кейін орындалатын реттелмелі кодты енгізіңіз. Бұрын импортталмаған, шешім импорты басталғанға дейін қалған жалпақ файлдар қазір импортталады.

    7. Бума қалтасының әдепкі атауын қалаған бума атауына өзгертіңіз. Ол үшін Шешім жетектеушісі тақтасындағы PkgFolder (немесе PkgAssets) қалтасының атауын өзгертіп, содан соң GetImportPackageDataFolderName сипатындағы қайтару мәнін өңдеңіз.

      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. GetNameOfImport сипатындағы қайтару мәнін өңдеу арқылы буманың атын өзгертіңіз.

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

      Бұл қайтарылған мән - «Dynamics 365 Package Deployer » шеберіндегі бума таңдау бетінде пайда болатын буманың атауы.

    9. GetImportPackageDescriptionText сипатындағы қайтару мәнін өңдеу арқылы буманың сипаттамасын өзгертіңіз.

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

      Бұл қайтарылған мән — шебердегі бума таңдау бетіндегі Package Deployer бума атауымен қатар пайда болатын бума сипаттамасы.

    10. GetLongNameOfImport сипатындағы қайтару мәнін өңдеу арқылы буманың ұзақ атын өзгертіңіз.

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

      Буманың ұзақ атауы келесі бетте орнатылатын буманы таңдағаннан кейін пайда болады.

  3. Сонымен қатар бумада келесі функция мен айнымалылар қолжетімді:

    Аты Түрі Сипаттама
    CreateProgressItem(String) Function Пайдаланушы интерфейсінде (UI) жаңа орындалу барысы элементін жасау үшін пайдаланылады.
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Function CreateProgressItem(String) шақыру арқылы жасалған орындалу барысын жаңарту үшін пайдаланылады.

    ProgressPanelItemStatus — келесі мәндері бар бағалау болып табылады:

    Орындалуда = 0
    Аяқталған = 1
    Сәтсіз аяқталған = 2
    Ескерту = 3
    Белгісіз = 4
    RaiseFailEvent(String, Exception) Function Ағымдағы күйді импорттауды ерекше хабарлама арқылы сәтсіз аяқтау үшін пайдаланылады.
    IsRoleAssoicatedWithTeam(Guid, Guid) Function Рөлдің белгілі бір топпен байланыстырылғанын анықтау үшін пайдаланылады.
    IsWorkflowActive(Guid) Function Көрсетілген жұмыс ағынының белсенді немесе белсенді еместігін анықтау үшін пайдаланылады.
    PackageLog Сынып көрсеткіші Буманың бастапқы тіркеу интерфейсіне арналған көрсеткіші. Бұл интерфейс бума арқылы бума журналы файлына хабарламалар мен ерекше жағдайларды тіркеу үшін пайдаланылады.
    RootControlDispatcher Сипат Буманы орналастыру барысында басқару элементіне оның өзіндік UI интерфейсін көрсетуге мүмкіндік беру үшін пайдаланылатын диспетчер интерфейсі. Бұл интерфейсті кез келген UI элементтерін немесе пәрмендерін орау үшін пайдаланыңыз. Бұл айнымалыны мәнге орнатылмағандықтан пайдаланбас бұрын нөл мәндері үшін тексерген маңызды.
    CrmSvc Сипат Бумаға Dynamics 365 жүйесіне бума ішінен кіруге мүмкіндік беретін CrmServiceClient сыныбы көрсеткіші. Бұл көрсеткішті SDK әдістерін және алдын ала анықталған әдістердегі басқа әрекеттерді орындау үшін пайдаланыңыз.
    DataImportBypass Сипат Dynamics 365 Package Deployer жүйесінің Dataverse деректер үлгісін, тегіс файл деректерін, сондай-ақ Configuration Migration Tool құралынан экспортталатын деректер секілді барлық деректерді импорттау әрекеттерін өткізіп жіберетінін көрсетіңіз. Шын немесе жалған күйін көрсетіңіз. Әдепкі – false.
    OverrideDataImportSafetyChecks Сипат Dynamics 365 Package Deployer импорт көрсеткіштерін жақсартуға көмектесетін қауіпсіздік тексерістерінің біразын айналып өтетінін көрсетіңіз. true немесе false көрсетіңіз. Әдепкі – false.

    Бұл сипатты true мақсатты Dataverse нұсқада ешқандай деректер болмаған жағдайда ғана орнату керек.
  4. Жобаны сақтау. Келесі қадам — буманы құрастыру.

Құрастыру және орналастыру

Келесі бөлімдерде пакетті құру және өрістету әдісі сипатталған.

Құрастыру

Буманы құру қай құралды пайдаланып жатқаныңызға байланысты төменде сипатталған.

CLI-мен жасалған пакетті құру үшін .csproj файлын Visual Studio жүктеуге болар еді, бірақ оның орнына dotnet пәрмені мен MSBuild-ті пайдаланамыз. Төмендегі мысал жұмыс каталогында *.csproj файлы бар деп болжайды.

> dotnet publish

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

Құрастырылған бума туралы мәліметтерді көруіңізге болады.

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

Сіздің бумаңыз <Project>\Bin\Debug қалтасындаға келесі файлдардан жасалады.

Ескертпе

pdpublish қалтасын қамтитын .NET қалтасын (мысалы, net472) көруіңіз мүмкін. DLL және басқа жоба файлдары сол pdpublish қалтасында болады.

  • <PackageName>.dll: Жиын буманың реттелетін кодын қамтиды. Әдепкі бойынша жиын атауы жоба атауымен бірдей болады.

Қолдану

Буманы жасағаннан кейін, оны Package Deployer құралы, Windows PowerShell немесе CLI пәрменінің көмегімен Dataverse данасында орналастыруға болады.

Үздік тәжірибелер

Төменде Package Deployer бумалармен жұмыс істеу кезінде ұстануға болатын бірнеше практикалық кеңестер берілген.

Бумаларды жасау

Бумаларды жасау кезінде әзірлеушілер:

  • Бума жиындарына қол қойылғанына көз жеткізуі керек.

Бумаларды орналастыру

Бумаларды орналастыру кезінде Dataverse әкімшілері:

  • Сізге жиын көзіне бақылауға мүмкіндік беру үшін қол қойылған бума жиындарын пайдалануға тырысуы керек
  • өндіріс данасы іске қосылмас бұрын, пакетті алдын ала шығару нұсқасында тексеріңіз, өндіріс данасы айналы суреті болғаны дұрыс.
  • Буманы орналастырмас бұрын, өндіріс данасының көшірмесін жасаңыз.

Сондай-ақ келесіні қараңыз

Шешім бумаларын ораушы құралы