Обойти ограничение внешнего соединения FetchXML - PullRequest
1 голос
/ 20 декабря 2011

Есть ли способ получить список всех возможностей по территориям (территория определена в учетной записи), закрытие в ближайшие 30-60-90 дней с использованием FetchXML в онлайн-версии Dynamics CRM 2011.

Iпопытался сделать это, написав SQL в тестовой базе данных, и это возможно с помощью следующего SQL:

select Territory.TerritoryId ,
 (select count(OpportunityId) from Opportunity where Opportunity.AccountId = Account.AccountId and Account.TerritoryId = Territory.TerritoryId and EstimatedClosureDate < '12/12/2011') as OppIn30Days,
 (select count(OpportunityId) from Opportunity where Opportunity.AccountId = Account.AccountId and Account.TerritoryId = Territory.TerritoryId and EstimatedClosureDate < '12/1/2012') as OppIn60Days,
 (select count(OpportunityId) from Opportunity where Opportunity.AccountId = Account.AccountId and Account.TerritoryId = Territory.TerritoryId and EstimatedClosureDate < '12/2/2012') as OppIn90Days
  from territory left outer join Account on Territory.TerritoryId = Account.TerritoryId --group by Territory.TerritoryId, Account.TerritoryId, Account.AccountId
-- TODO parameterization of query, etc. 

результат для SQL выглядит следующим образом.

Columns: TerritoryId|OpportunitiesClosingIn30Days|OpportunitiesClosingIn60Days
Data:   US              5                                   1
        Europe          1                                   4
        Asia            4                                   5

ЭтоМожно ли сделать это с помощью FetchXML, поскольку внешние объединения не поддерживаются?

Поможет ли это, если я добавлю скрытое поле территории в Opportunity и напишу некоторый код, чтобы при каждом создании возможности территория копировалась из соответствующего аккаунта?

1 Ответ

1 голос
/ 08 мая 2012

К сожалению, это невозможно с FetchXML. Вы можете иметь возможность подвести итоги, используя отчет, который собирает все соответствующие данные, а затем манипулирует ими для отображения, но для этого вам потребуется гуру SSRS.

Ваше предположение о денормализованных данных, вероятно, находится на правильном пути: если вы добавите Territory к своей возможности, вы сможете использовать панели мониторинга MSCRM, чтобы показать возможности, закрывающиеся по месяцам по территории.

...