Я пытаюсь получить все действия, связанные с записью о возможностях в Dynamics CRM 2013. Я пробовал использовать RollupRequest, но я получаю сообщение об ошибке, что activityPoint не является поддерживаемым объектом свертки. Но если я попытаюсь использовать тот же код, используя учетную запись, а не возможность, CRM не будет жаловаться.
Я хочу избежать использования нескольких запросов для извлечения действий, чтобы использовать функцию поискового вызова набора запросов или fetchxml.
Ниже приведен код тестирования, который я использовал. Согласно Microsoft, комбинация не является одной из поддерживаемых: http://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.rolluprequest.aspx
// Create QueryExpression
var query = new QueryExpression() {
EntityName = "activitypointer",
ColumnSet = new ColumnSet(true)
};
// Create RollupRequest
RollupRequest rollupRequest = new RollupRequest();
rollupRequest.Query = query;
rollupRequest.Target = new EntityReference("opportunity", new Guid("1d317b15-dbe0-e311-b505-0050569d9a3e"));
rollupRequest.RollupType = RollupType.Extended;
Console.WriteLine("Created RollupRequest.");
// Execute RollupRequest
RollupResponse rollupResponse = (RollupResponse)_serviceProxy.Execute(rollupRequest);
Console.WriteLine("Executed RollupRequest.");
Я думаю, вы можете заставить свой код работать, установив:
rollupRequest.RollupType = RollupType.None;
Я все равно получаю все указатели activitypointers
напрямую связанные с возможностью.
Согласно странице перечисления RollupType, Extended
и Related
типы накопителей дают более глубокий уровень свертывания, что, вероятно, не было реализовано для возможности из-за причин производительности (просто догадайтесь). Поскольку возможность, связанная с учетной записью или контактом (и вся деятельность, связанная с ними, должна быть в свернутом состоянии), у учетной записи и контактов могут быть другие возможности, у этих возможностей также есть продукт, связанный с ним, в нем, в свою очередь, счет или контакт и т.д. и т.д....
Также возможно, что Microsoft просто не хочет сочетать комбинации объектов, которые могут привести к рекурсии, например.