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

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

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

Visual Studio 2015 үлгісі (жүктеп алуға қолжетімді) бумалар жасау үшін қолданылады. Бума жасағаннан кейін, бумаңызды Dataverse данасына орналастыру үшін Package Deployer құралын пайдаланыңыз.

Алғышарттар

  • Бумаға қосу керек барлық шешімдер мен файлдардың бар екеніне көз жеткізіңіз.
  • Microsoft .NET Framework 4.6.2
  • Visual Studio 2015
  • Visual Studio 2015 арналған NuGet бума менеджері
  • Бума үлгісін қамтитын Visual Studio арналған Microsoft Dynamics CRM SDK үлгілері. Сіз оны Microsoft Dynamics CRM SDK үлгілерін жүктеп алу арқылы ала аласыз және Visual Studio үлгісін орнату үшінCRMSDKTemplates.vsix файлын екі рет басыңыз.

Бума жасау

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

1-қадам: Үлгіні қолдана отырып жоба жасаңыз

  1. Visual Studio іске қосып, жаңа жобаны жасаңыз.

  2. Жаңа жоба диалогтық терезесінде:

    1. Орнатылған үлгілер тізімінен Visual C# кеңейтіп, Dynamics 365 SDK үлгілері таңдаңыз.
    2. .NET Framework 4.6.2 таңдалғанына көз жеткізіңіз.
    3. Dynamics 365 бумасы таңдаңыз.
    4. Жоба атауы мен орнын көрсетіп, OK түймесін басыңыз.

    Реттелетін бума жасауға арналған жаңа жоба

2-қадам: Жобаға файлдарды қосыңыз

  1. Шешімдер жетектеушісі тақтасында шешімдер мен PkgFolder қалтасындағы файлдарды қосыңыз.
  2. PkgFolder қалтасындағы Сипаттар аумағында қосылатын әр файл үшін Шығыс каталогқа көшіру мәнін Әрқашан көшіру орнына орнатыңыз. Бұл файл жасалған бумада қолжетімді екеніне көз жеткізуге көмектеседі.

3-қадам: HTML файлдарын жаңартыңыз: ағылшын және басқа тілдер

  1. Шешім жетектеушісі тақтасында PkgFolder > Мазмұны > en-us тармағын кеңейтіңіз. EndHTML және WelcomeHTML деп аталатын екі қалта табылады. Бұл қалталар буманы орналастыру процесінің соңында және басында ақпаратты көрсетуге мүмкіндік беретін HTML және байланысты файлдардан тұрады. Бумаға ақпарат қосу үшін осы қалталардың HTML қалтасындағы файлдарды өңдеңіз.

  2. Сондай-ақ, HTML файлдарын пайдаланушының компьютерінің жергілікті параметрлеріне негізделген тілде пайда болатындай етіп бумаға HTML файлдарын басқа тілдерде қосуға болады. Мұны істеу үшін:

    1. PkgFolder > Мазмұн тармағындағы en-us қалтасының көшірмесін жасаңыз.
    2. Көшірілген қалтаның атын тиісті тілге өзгертіңіз. Мысалы, испан тілі үшін оның атын былайша өзгертіңіз: es-ES.
    3. Испан мазмұнын қосу үшін HTML файлдарының мазмұнын өзгертіңіз.

4-қадам: Буманың конфигурация мәндерін көрсетіңіз

  1. Бума туралы ақпаратты PkgFolder ішінде қолжетімді 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
    Конфигурацияны тасымалдау құралын пайдаланып экспортталатын әдепкі конфигурация деректері файлының (.zip) файл атауы.

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

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

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

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

    • overwriteunmanagedcustomizations: Мақсатты Dynamics 365 данасында бұрыннан бар шешімді импорттау кезінде басқарылмайтын теңшелімдерді қайта жазу керектігін көрсетіңіз. Бұл міндетті емес, егер сіз бұл төлсипатты көрсетпесеңіз, әдепкі бойынша, қолданыстағы шешімдегі басқарылмайтын теңшелімдер мақсатты Dynamics 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. Барлығын сақтау түймешігін басыңыз.

    Төменде 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>  
    
    

5-қадам: Буманың жеке кодын анықтаңыз

  1. Шешім жетектеушісі тақтасында PackageTemplate.cs файлын өңдеу үшін оны түбінен екі рет шертіңіз.

  2. PackageTemplate.cs файлында мына әрекеттерді орындауға болады:

    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 құралын іске қосу кезінде қауіпсіздік тексерістерін қалдыру қажеттігін көрсету үшін әкімшіге командалық жолды немесе Импорт-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 төлсипатында көрсетіледі.

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

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

    7. Бума қалтасының әдепкі атауын PkgFolder атауынан қалаған бума атауына өзгертіңіз. Ол үшін Шешім жетектеушісі тақтасындағы PkgFolder> қалтасының атауын өзгертіп, содан соң 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 деректер үлгісін, тегіс файл деректерін, сондай-ақ Конфигурацияны тасымалдау құралынан экспортталатын деректер секілді барлық деректерді импорттау әрекеттерін өткізіп жіберетінін көрсету үшін пайдаланыңыз. Шын немесе жалған күйін көрсетіңіз. Әдепкі – false.
    OverrideDataImportSafetyChecks Сипат Мұны Dynamics 365 Package Deployer бағдарламасы импорттау өнімділігін арттыруға көмектесетін кейбір қауіпсіздік тексерістерін айналып өтетінін көрсету үшін пайдаланыңыз. true немесе false көрсетіңіз. Әдепкі – false.

    Мақсатты Dataverse данасында ешқандай деректер болмаса мұны тек true күйіне орнату қажет.
  4. Буманы жасау үшін жобаны сақтап, құрастырыңыз (Құрастыру > Шешімді құрастыру). Сіздің бумаңыз <Project> \Bin\Debug қалтасындаға келесі файлдар болып табылады

    • <PackageName> қалтасы : Қалтаның атауы осы бөлімнің 2.g бума қалтасының атауына өзгерткен атаумен бірдей (5-қадам: Буманың жеке кодын анықтаңыз). Бұл қалта бумаға арналған барлық шешімдер, конфигурация деректері, тегіс файлдар, сондай-ақ мазмұндардан тұрады.

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

      Келесі қадам - буманы орналастыру.

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

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

Package Deployer құралы Microsoft.CrmSdk.XrmTooling.PackageDeployment NuGet бумасының бөлігі ретінде таратылады. Package Deployer құралын жүктеп алу үшін NuGet жүйесінен құралдарды жүктеп алу тақырыбын қараңыз.

Толығырақ ақпаратты Package Deployer немесе Windows PowerShell пайдаланып бумаларды орналастыру тақырыбынан қараңыз.

Бумаларды жасап, орналастырудың ең үздік тәжірибелері

Бумаларды жасау кезінде әзірлеушілер бума жиындарына қол қойылуын қамтамасыз етуі керек.

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

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

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

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