Использование 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:
- Запускаем Visual Studio 2005, создаем новый проект и указываем, что мы хотим создать Report Model Project. Вводим имя проекта и нажимаем кнопку Ок.
- В Solution Explorer нажимаем правой кнопкой мыши на пункте Data Sources и выбираем пункт Add New Data Source.
- В появившемся окне нажимаем кнопку New, вводим необходимую информацию (название сервера, тип аутентификации, базу данных CRM) и нажимаем кнопку Ок.
- Нажимаем кнопку Next и, затем, Finish.
- Мы создали источник данных. Теперь, нам необходимо создать представление данных. Для этого, нажимаем правую кнопку мыши на пункте Data Source Views (в окне Solution Explorer) и выбираем пункт Add New Data Source View.
- В появившемся окне выбираем соответствующий источник данных (созданный на предыдущем этапе) и нажимаем кнопку Next.
- Теперь выбираем объекты, которые мы хотим включить в нашу модель. В моем случае все просто - я хочу включить в модель только организации и соответствующие потенциальные продажи. Соответственно, я выбираю FilteredAccount и FilteredOpportunity (всегда помните про безопасность данных). Переносим их в правую часть и нажимаем кнопки Next и Finish.
- Теперь мы должны установить логические связи между нашими двумя объектами. Те, кто смотрел структуру данных, знают, что представления, которые мы выбрали не связаны в самой БД, но мы можем установить логическую связь между ними. Для этого, надо кликнуть мышкой на соответствующем Data Source View. В результате, отобразится структура наших данных, состоящая из двух объектов - FilteredAccount и FilteredOpportunity.
- Сначала, нам надо переназвать наши объекты, чтобы их названия были более дружественны для пользователей. Выбираем объект FilteredAccount, и в окне Properties меняем атрибут FriendlyName на Организация.
- Аналогично поступаем с FilteredOpportunity, меняя название на Потенциальная продажа.
- Теперь надо установить связь. Для этого нажимаем правую кнопку мыши на любом объекте и выбираем пункт New Relationship.
- В качестве primary key используем accountid из FilteredAccount.
- В качестве foreign key используем accountid из FilteredOpportunity.
- Нажимаем кнопку Ок. Система сообщает нам, что у нас не объявлен первичный ключ и предлагает создать логический первичный ключ. Соглашаемся, нажимая кнопку Yes.
- Создаем логический первичный ключ для Потенциальная продажа (opportunityid).
- И теперь осталось создать саму модель данных. Нажимаем правую кнопку мыши на пункте Report Models и выбираем пункт Add New Report Model.
- Выбираем соответствующее представление источника данных (data source view) и нажимаем кнопку Next.
- В окне выбора правил генерации ничего не меняем и нажимаем кнопку Next 2 раза.
- Нажимаем кнопку Run. Процедура генерации займет некоторое время.
- По окончании процесса, нажимаем кнопку Finish и, затем, Yes to All.
- Теперь, нам надо разместить эту модель на нашем сервере. Выбираем пункт меню 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 и получаем требуемую нам информацию.
Все просто!!!