Dynamics 365 (crm) Импортировать правило календаря для расписания выходных из одной системы в другую

  1. Я создал запись Расписание выходных в OrgA. Эта Запись создается в "календаре" Сущности.
  2. Я мог переместить эту запись с помощью XrmToolBox Data Transport Tool.
  3. Внутри (относящейся) к записи Расписание выходных есть много правил, то есть могут быть записи. Они взяты из "Правила календаря" Сущности.
  4. Я хочу импортировать эти записи «Правила календаря» из OrgA в OrgB.

Дополнительная информация:

Когда я попытался получить «Правило календаря» с помощью fetchxml Builder, он дал мне сообщение об ошибке

Получить несколько не поддерживается

Использование сущности «Правило календаря» в CRMRESTBuilder недоступно. Используя Data Transporter, он не переносил записи и выдавал ошибку как

«Получить несколько не поддерживается»

Ссылка ниже полезна для понимания Календаря и всех связанных с ним объектов. https://www.inogic.com/blog/2014/08/calendars-and-expand-calendar-request-in-crm-2013-sp-1/


person AnkUser    schedule 22.05.2019    source источник


Ответы (1)


Сущность CalendarRule можно получить с помощью тестера XrmToolbox FetchXml, который указывает, что он поддерживает ExecuteFetchRequest, но не RetrieveMultiple.

Я написал статью в CRM Tip of the Day об объектах, которые демонстрируют такое поведение: https://crmtipoftheday.com/796/long-live-executefetchrequest/

Запрос:

<fetch>
    <entity name="calendarrule" />
</fetch>

Ответ (первая запись):

<result>
    <groupdesignator>
        FC5769FC-4DE9-445d-8F4E-6E9869E60857
    </groupdesignator>
    <rank formattedvalue="2" >
        2
    </rank>
    <createdon date="4/11/2019" time="8:55 PM" >
        2019-04-11T20:55:16-04:00
    </createdon>
    <starttime date="12/31/1999" time="7:00 PM" >
        1999-12-31T19:00:00-05:00
    </starttime>
    <organizationid>
        {3906F615-4DCD-422D-A3E3-F79134C7CCEF}
    </organizationid>
    <isselected name="Yes" >
        1
    </isselected>
    <duration formattedvalue="1,440" >
        1440
    </duration>
    <innercalendarid type="4003" >
        {7177F09C-BD5C-E911-A817-000D3A37FFD3}
    </innercalendarid>
    <isvaried name="No" >
        0
    </isvaried>
    <modifiedon date="4/11/2019" time="8:55 PM" >
        2019-04-11T20:55:16-04:00
    </modifiedon>
    <createdby name="--- ---" dsc="" yomi="--- ---" type="8" >
        {EE10412E-68E7-471D-A10C-D28FCE63B6F3}
    </createdby>
    <calendarruleid>
        {7277F09C-BD5C-E911-A817-000D3A37FFD3}
    </calendarruleid>
    <timezonecode formattedvalue="92" >
        92
    </timezonecode>
    <pattern>
        FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
    </pattern>
    <description>
        Weekly Single Rule
    </description>
    <modifiedby name="--- ---" dsc="" yomi="--- ---" type="8" >
        {EE10412E-68E7-471D-A10C-D28FCE63B6F3}
    </modifiedby>
    <calendarid type="4003" >
        {7077F09C-BD5C-E911-A817-000D3A37FFD3}
    </calendarid>
    <effectiveintervalend date="12/30/9999" time="6:59 PM" >
        9999-12-30T18:59:59-05:00
    </effectiveintervalend>
    <businessunitid>
        {79263477-AA5C-E911-A817-000D3A37FFD3}
    </businessunitid>
</result>

Вот пример кода C # (не тестировался в текущей форме):

using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Tooling.Connector;

public void Run()
{
    var connectionString = "Url=https://foobar.crm.dynamics.com; [email protected]; Password=myPass; AuthType=Office365";     
    var crmSvcClient = new CrmServiceClient(connectionString);

    var fetch = @"<fetch mapping='logical'>
                    <entity name='calendarrule' />                                  
                  </fetch>";

    var executeFetchReq = new ExecuteFetchRequest 
    { 
        FetchXml = fetch 
    };

    //Works
    var crmSvcExecuteFetchResponse = crmSvcClient.Execute(executeFetchReq);
    //Doesn't work
    var crmSvcRetrieveMultipleResponse = crmSvcClient.RetrieveMultiple(new FetchExpression(fetch));
}
person Aron    schedule 22.05.2019
comment
Идеальный Арон !! Имеет смысл. Я сделаю консоль Tool и углублюсь в нее. Но это направило меня в правильном направлении. - person AnkUser; 22.05.2019