Использование Report Builder

Добрый день!

 Для отчетности в Microsoft Dynamics CRM существует ряд инструментов - Microsoft Excel или SQL Server Reporting Services. Зачем понадобился еще один? Дело в том, что возможности конечных бизнес-пользователей ограничены, если они хотят построить какой-либо отчет по нескольким объектам, например, отобразить всех клиентов и связанных с ними потенциальные продажи и т.д. В этом случае, надо использовать либо отчет SSRS, либо использовать Excel, но тогда от пользователя требуется знание того, как данные хранятся в системе и умение написать SQL запрос. К сожалению, не все бизнес-пользователи умеют писать запросы. И здесь может помочь Report Builder, который является компонентом SQL Server 2005 Reporting Services.

В чем состоит идея использования Report Builder? Администратор системы или разработчик создает промежуточный уровень между самими данными и пользователями - модель. Пользователи подключаются к Report Builder, выбирают требуемую модель данных и сами строят тот отчет, который им необходим. Важно отметить, что в этом случае пользователи оперируют знакомыми им понятиями, например, КЛИЕНТ, ЗАКАЗ, ПОТЕНЦИАЛЬНАЯ ПРОДАЖА и т.д., а не FilteredAccount, FilteredOpportunity. Кроме того, им не требуется знание основ написания SQL запросов.

 Давайте попробуем создать простую модель и, используя ее, создать простейший отчет в Report Builder:

  1. Запускаем Visual Studio 2005, создаем новый проект и указываем, что мы хотим создать Report Model Project. Вводим имя проекта и нажимаем кнопку Ок.
  2. В Solution Explorer нажимаем правой кнопкой мыши на пункте Data Sources и выбираем пункт Add New Data Source.
  3. В появившемся окне нажимаем кнопку New, вводим необходимую информацию (название сервера, тип аутентификации, базу данных CRM) и нажимаем кнопку Ок.
  4. Нажимаем кнопку Next и, затем, Finish.
  5. Мы создали источник данных. Теперь, нам необходимо создать представление данных. Для этого, нажимаем правую кнопку мыши на пункте Data Source Views (в окне Solution Explorer) и выбираем пункт Add New Data Source View.
  6. В появившемся окне выбираем соответствующий источник данных (созданный на предыдущем этапе) и нажимаем кнопку Next.
  7. Теперь выбираем объекты, которые мы хотим включить в нашу модель. В моем случае все просто - я хочу включить в модель только организации и соответствующие потенциальные продажи. Соответственно, я выбираю FilteredAccount и FilteredOpportunity (всегда помните про безопасность данных). Переносим их в правую часть и нажимаем кнопки Next и Finish.
  8. Теперь мы должны установить логические связи между нашими двумя объектами. Те, кто смотрел структуру данных, знают, что представления, которые мы выбрали не связаны в самой БД, но мы можем установить логическую связь между ними. Для этого, надо кликнуть мышкой на соответствующем Data Source View. В результате, отобразится структура наших данных, состоящая из двух объектов - FilteredAccount и FilteredOpportunity.
  9. Сначала, нам надо переназвать наши объекты, чтобы их названия были более дружественны для пользователей. Выбираем объект FilteredAccount, и в окне Properties меняем атрибут FriendlyName на Организация.
  10. Аналогично поступаем с FilteredOpportunity, меняя название на Потенциальная продажа.
  11. Теперь надо установить связь. Для этого нажимаем правую кнопку мыши на любом объекте и выбираем пункт New Relationship.
  12. В качестве primary key используем accountid из FilteredAccount.
  13. В качестве foreign key используем accountid из FilteredOpportunity.
  14. Нажимаем кнопку Ок. Система сообщает нам, что у нас не объявлен первичный ключ и предлагает создать логический первичный ключ. Соглашаемся, нажимая кнопку Yes.
  15. Создаем логический первичный ключ для Потенциальная продажа (opportunityid).
  16. И теперь осталось создать саму модель данных. Нажимаем правую кнопку мыши на пункте Report Models и выбираем пункт Add New Report Model.
  17. Выбираем соответствующее представление источника данных (data source view) и нажимаем кнопку Next.
  18. В окне выбора правил генерации ничего не меняем и нажимаем кнопку Next 2 раза.
  19. Нажимаем кнопку Run. Процедура генерации займет некоторое время.
  20. По окончании процесса, нажимаем кнопку Finish и, затем, Yes to All.
  21. Теперь, нам надо разместить эту модель на нашем сервере. Выбираем пункт меню Build -> Deploy [Название модели]

Все, теперь осталось только проверить работу. Открываем SSRS, например, по ссылке https://servername/Reports и запускаем Report Builder. Открывается окно Microsoft Report Builder. В правой панели выбираем нашу модель, указываем тип отчета (например, Table) и нажимаем кнопку Ок. В левом верхнем окне отображаются доступные объекты - Организации и Потенциальные сделки, а слева внизу - атрибуты соответствующих объектов. Перетаскиваем в окно (где написано Drag and Drop column fields) атрибут Name объекта Организация и атрибут Name объекта Потенциальная продажа. Добавляем название отчета (в область Click to add title) - "Сделки по организациям". Все, теперь нажимаем кнопку Run Report и получаем требуемую нам информацию.

Все просто!!!