Сущность 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; Username=user@foobar.onmicrosoft.com; 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));
}