Sharepoint reporting services - IT Новости из мира ПК
Semenalidery.com

IT Новости из мира ПК
55 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Sharepoint reporting services

SharePoint + Reporting Services = нюансы

Я и мои коллеги занимаемся разработкой и внедрением прикладных внутрикорпоративных решений на базе платформы Microsoft SharePoint, а так же Российских СЭД, внедрение которых обосновано накопленным годами опытом и целесообразно в определенных случаях.

На своих проектах обожаю использовать Microsoft Reporting Services (далее — SSRS) для быстрой реализации отчетов и печатных форм, не требующих сложной динамики поведения.

При наличии доступности данных в структуре таблиц СУБД, а, следовательно, и DataSet отчета, с SSRS все легко и просто, если не сказать тривиально (естественно не для всех случаев). А что, если доступа к БД нет или же он запрещен лицензионной политикой или же даже применяются попытки сделать его технически сложно реализуемым? Надо готовить витрину данных средствами ETL. А что, если условия, бюджет и сроки проекта не допускают этого? Надо использовать доступные источники данных (DataSource).

Как можно было догадаться, речь пойдет о создании отчетов SSRS с ипользованием данных из списков SharePoint.

Арсенал доступных источников данных SSRS хоть и велик, но на практике можно «вляпаться» в нюансы, которые не всегда очевидны.

Итак, переходим к постановке задачи.

  • Информационная система на базе Microsoft SharePoint 2010 Foundation;
  • Microsoft SQL Server 2008 R2 (причем, R2 — принципиальное условие);
  • Microsoft SQL Server Reporting Services в режиме интеграции с SharePoint.

Постановка задачи:

  • Реализовать специализированный отчет, использующий данные, распределенные по нескольким различным спискам (Lists) SharePoint.
  • Не использовать витрины данных или кастомизированные веб-сервисы (их конечно можно использовать, но в рамки задачи и трудоемкость уже не влезает дополнительная разработка).

Казалось бы, что может быть проще? На практике может оказаться печаль.

К слову, для SharePoint прямое обращение к данным в БД технически возможно, да, но затруднено, и не разрешено лицензионной политикой. И, если честно, лучше даже и не пытаться напрямую получать доступ к объектам БД SharePoint, поверьте.

Ладно, продолжим. SQL Server 2008, начиная с версии R2, подарил нам новый источник данных в виде списков SharePoint. Чудно? Да как бы не всегда!

Проблема заключается в следующем:

  • Хотите Join в рамках одного DataSet? Забудьте.
  • Хотите получать данные из структуры папок в списке? Забудьте.

По поводу объединения различных списков в рамках одного DataSet. Да, это невозможно. DataSet, получающий данные из списка SharePoint может содержать только данные из одного списка. Как выход — для каждого списка создавать отдельный DataSet, хитрым образом фильтровать зависимые DataSet’ы через системные параметры SSRS отчета, чтобы не забирать весь массив данных по всем объединяемым спискам, и делать Join данных из различных списков с помощью функций SSRS (Lookup, LookupSet или MultiLookup) в самом представлении отчета, например, в таблице.

По второму пункту. В списках SharePoint есть такое понятие, как Throttling, когда задается ограничение количества элементов в папке, по умолчанию оно равняется 5К элементов. Что же обычно делается для больших списков? По-простому, структура хранения элементов меняется таким образом, чтобы в списке были папки (скрытые), а данные архивировались так, чтобы в каждой конкретной папке не было более 5К элементов или же того значения, что задан в настройках списка (по опыту – лучше пусть 5К и остается).

Мы как раз и имеем дело с таким списком, где элементов много, все по папкам, данные, прошедшие свой жизненный цикл архивируются, но остаются в списке и нужны, в том числе и для отчетов.

Казалось бы, в веб-сервис RSSharePointList, из которого получаются данные, встроен CAML и достаточно для обхода нюанса, но, к сожалению, скоуп в SharePoint List Datasource не внедрен. Просто-напросто такие данные с помощью Datasource «Список SharePoint» не получить никак.

SharePoint 2010. Отчеты MS SSRS без сервера отчетов

Сегодняшний пост будет посвящен использованию отчетов, созданных с помощью Microsoft SQL Server Reporting Services (MS SSSRS), в портальных решениях под управлением MS SharePoint 2010. Более подробно я расскажу о вариантах работы с отчетами без сервера отчетов.

Режим работы сервера отчетов

Начну с небольшого вступления, описав режимы работы сервера отчетов:

  • стандартный — сервер отчетов работает сам по себе. В SharePoint эти отчеты можно просматривать с помощью соответствующих веб-частей. Учетные данные для доступа к отчетам задаются в центре администрирования;
  • интеграция с SharePoint 2010 — сервер отчетов хранит все свои данные в библиотеках документов SharePoint;

В случае интеграции сервера отчетов с SharePoint придется включить сервер, на котором работает MS SSRS в ферму SharePoint, что потребует наличия установленного SharePoint. При этом не стоит забывать, что в ферму SharePoint можно включать ТОЛЬКО ОДИНАКОВЫЕ РЕДАКЦИИ SHAREPOINT. Подробнее можно почитать на MSDN.

SQL Server 2012

С выходом SQL Server 2012 режим интеграции сервера отчетов с SharePoint кардинально изменился. Теперь сервер отчетов в режиме интеграции работает как общая служба-приложение. Следовательно, поддается конфигурации через центр администрирования SharePoint, масштабированию, работе с Claim-based аутентификации и прочему. Подробнее здесь.

Отчеты без сервера отчетов

Отчеты можно использовать и при отсутствии сервера отчетов. Здесь есть два варианта.

Report Builder

Первый способ заключается в использовании построителя отчетов (Report Builder) для создания отчетов. В дальнейшем эти отчеты можно хранить в библиотеке документов на портале и там же просматривать. Вот небольшой step-by-step:

Запускаем Report Builder и создаем новый источник данных. В типе соединения мы выбираем «Microsoft SharePoint List». Строкой подключение в этом случае будет просто URL-адрес сайта, из списков которого мы будем получать данные:

Источников данных в одном отчете может быть много. Теперь нам необходимо создать набор данных (DataSet). Здесь Report Builder более чем дружелюбен: он отображает информацию о списках и библиотеках документов на указанном в источнике данных сайте. Нам достаточно просто отметить те поля, которые нас интересуют:

Читать еще:  Как поменять разрешение в powerpoint

Report Builder по умолчанию выбирает все данные без учета их типа содержимого. Чтобы в отчет не попали папки придется наложить фильтр.

Фильтр — это ерунда по сравнению с вот такой особенностью Report Builder’а: Данные можно выбирать только из корневой папки списка/библиотеки. Если очень надо обойти это ограничение, то можно работать со списками SharePoint через веб-сервисы, куда передавать CAML-запрос с фильтром по папке. В Report Builder’е обойти это не удастся. Я был уверен, что в новой версии построителя Microsoft исправит этот недочет, но я ошибался. Я пользовался версией 11.0.2100.60 (SQL Server 2012):

Недостатков в таком случае много. Например подписка на отчет и вызов редактора отчета через контекстное меню элемента в таком случае не работают. К тому же при просмотре отчета SharePoint попросит указать учетные записи для каждого источника данных (DataSource).

ReportViewer и объектная модель

Второй способ заключается в использовании ReportViewer’а — контрола, позволяющего отображать отчеты на формах. Так как мы будем отображать отчеты без использования сервера отчетов, то использовать мы будем LocalReport, а в качестве источника данных будет выступать объектная модель.

Для начала добавим новый отчет в наш проект

Далее создадим новые источник данных (DataSource) и набор данных (DataSet). В разделе Data Source нажимаем кнопку New. для создания нового источника данных

В качестве типа источника данных выбираем Object

Указываем класс, который будет выступать источником данных. В моем примере я выбрал класс Employee

Теперь наш отчет обеспечен данными

Поля из модели данных можно использовать при построение самого отчета

Мой демонстрационный отчет будет отображать список сотрудников, сгруппированный по отделам

Отчет готов. Теперь его надо отобразить на странице. Можно делать это программно:

  1. // Путь к файлу отчета
  2. var reportPath = SPUtility.GetGenericSetupPath(
  3. @»templatelayoutsZhukBlogLinqExamplesReports» ) + @»AllEmployees.rdlc» ;
  4. // Содаем новый экземпляр ReportViewer’а
  5. var reportViewer = new ReportViewer
  6. <
  7. Width = new Unit( «100%» )
  8. >;
  9. reportViewer.LocalReport.DisplayName = «Employees» ;
  10. reportViewer.LocalReport.ReportPath = reportPath;
  11. // Данные для отчета будем получать с помощью репозитория
  12. var repository = new EmployeeRepository(true);
  13. var items = repository.GetEntityCollection();
  14. // Создаем новый ситочник данных
  15. var ds = new ReportDataSource( «EmployeeDataSet» , items);
  16. reportViewer.LocalReport.DataSources.Add(ds);
  17. // Добавляем ReportViewer на страницу
  18. Controls.Add(reportViewer);

Декларативно это будет выглядеть примерно вот так:

Генерация документа из отчета

Чтобы программно получить отчет, экспортированный в какой-либо формат, поддерживаемый ReportViewer’ом, можно использовать вот такой код:

  1. var report = reportViewer.LocalReport;
  2. var bytes = report.Render( «IMAGE» );

Метод Render здесь возвращает массив байтов, что крайне удобно для дальнейшего сохранения результата в библиотеке документов SharePoint. В параметре указывается желаемый формат данных. Получить список этих форматов можно, вызвав метод LocalReport.ListRenderingExtensions(). В моем случае были доступны следующие форматы:

  • Excel — Microsoft Excel 2003;
  • EXCELOPNEXML — Microsoft Excel 2007/2010;
  • IMAGE — TIFF-файл;
  • PDF — Adobe Portable Document Format;
  • Word — Mcirosoft Word;
  • WORDOPENXML — Microsoft Word 2007/2010;

Производительность

При построение отчетов MS SQL Reporting с использованием объектной модели в качестве источника данных надо помнить о том, что перед рендерингом очередного элемента произойдет неявное получение значений ВСЕХ свойств объекта. Т.е. lazy-load свойства со сложной логикой внутри в отчетах использовать надо очень аккуратно. Чтобы убрать «лишние» свойства из набора данных, придется открыть файл отчета в XML-редакторе и отредактировать раздел Fields. Содержимое файла-отчета выглядит примерно следующим образом (частично):

Практические нюансы интеграции SharePoint 2010 и
MS SQL Server 2008 Reporting Services

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

Интеграция SharePoint 2010 и MS SQL Server 2008 Reporting Services, позволяющая объединить преимущества этих продуктов, предоставляет мощные, небывалые возможности для этого. О том, как провести интеграцию можно найти немало информации, но, на практике, когда мне пришлось самому решать эту задачу, встретились проблемы, на решение которых, в частности, на поиски среди документации, ушло достаточно времени.

Решил записать все по свежим следам, при этом “Не отличать ищу свои работы, Но утешаюсь тем, смотря на наши соты, Что в них и моего хоть капля меду есть.”

Интеграция SharePoint 2010 и MS SQL Server 2008 Reporting Services в статье описана подробно, шаг за шагом, причем описываю установку на нескольких серверах (обычно идет установка всего программного обеспечения на одном сервере), описываю, как следует провести настройки, чтоб оптимизировать работу при возникающей дополнительной нагрузке на сервер отчетов.

Если кратко, то процесс интеграции состоит из следующих шагов:

  1. Сервер отчетов – установка на нем SharePoint 2010.
  2. Сервер отчетов — его настройка – в режиме интеграции с SharePoint 2010.
  3. Установка компоненты SQL 2008 R2 Reporting Services SharePoint 2010 Add-in на сервере SharePoint.
  4. Подключение SharePoint к серверу отчетов.

Рассмотрим подробнее данные шаги:

Установка SharePoint 2010 на сервере отчетов

ВНИМАНИЕ! Данный шаг необходим, только если сервер отчетов и сервер SharePoint стоят на разных серверах!

Итак, нужно установить Web фронт-енд на сервер и подключить его к ферме серверов SharePoint.

Для этого делаем все предварительные настройки: запускаем дистрибутив SharePoint 2010. (автозапуск или файл splash.hta). Раздел «Установить», потом пункт «Установить необходимое ПО», далее «Настройка служб отчетов SQL Server 2008R2», следующим шагом жмем «Next».

Потом запускаем инсталляцию и выбираем режим установки в составе фермы (Server Farm).

Выбираем полную инсталляцию.

Проходим все остальные шаги мастера, на вопрос о подключении к существующей ферме серверов, отвечаем утвердительно.

Читать еще:  Date sql access

Вводим имя сервера баз данных и название базы данных конфигурации.

На следующим шаге вводим Passphrase.

И завершаем инсталляцию.

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

Переходим в Центр Администрирования > Параметры системы > управление серверами в этой ферме и отключаем все сервисы, которые на этом сервере не нужны. Можно, например, оставить только Веб-приложение Microsoft SharePoint Foundation.

Настройка сервера отчетов в режиме интеграции с SharePoint 2010

Заходим в менеджер конфигураций, выбираем url веб-сервиса и остальные настройки IIS:

Создаем новую БД для сервера отчетов в режиме интеграции с сервером отчетов.

Вводим имя и пароль подключения к SQL серверу.

Установка компоненты SQL 2008 R2 Reporting Services
SharePoint 2010 Add-in на сервере SharePoint

Скачиваем и устанавливаем SQL 2008 R2 Reporting Services SharePoint 2010 Add-in на сервере. Скачать этот модуль можно отсюда http://www.microsoft.com/en-us/download/details.aspx?id=622.

Подключение SharePoint к серверу отчетов

Идем в Центр Администрирования > Общие параметры приложений > Reporting Services Integration.

Вводим URL сервера отчетов и параметры подключения.

Если подключение завершилось успешно, мы должны увидеть следующее окно:

Возможные ошибки: учетная запись сервера отчетов не может подключиться к базе данных SharePoint’а.

Ну вот и все, что мне хотелось бы рассказать вам о интеграции SharePoint 2010 и MS SQL Server 2008 Reporting Services . Надеюсь, пригодится.

Configure Reporting Services to Run in SharePoint Integrated Mode

By: Ray Barley | Updated: 2008-10-29 | Comments (6) | Related: > Sharepoint

Problem
We have heard about running SQL Server Reporting Services in SharePoint Integrated Mode but are not really sure how to go about configuring this. Can you provide the details on what capabilities this provides as well as how to do it?

Solution
Probably the biggest benefit of running Reporting Services in SharePoint Integrated Mode is that you can deploy and manage reports directly in SharePoint rather than the Report Manager web application. This is probably easier for our business users. As a matter of fact you no longer use the Report Manager after you switch to SharePoint Integrated Mode. The highlights of the capabilities provided by SharePoint Integrated Mode are the following:

  • A Report Viewer Web Part that provides report viewing capability, export to other rendering formats, page navigation, search, print and zoom.
  • Web application pages so that you can create subscriptions and schedules as well as manage reports, models, and data sources.
  • Support for using standard Windows SharePoint Services features including document management, collaboration, security, and deployment with report server content types.
  • A new delivery extension that you can use in subscriptions to deliver reports to SharePoint libraries.

You can review all of the details of SharePoint Integrated Mode in SQL Server Books Online.

This tip will walk through the steps to configure Reporting Services to run in SharePoint Integrated Mode. The following assumptions will be made:

  • You have installed Windows SharePoint Services 3.0 or Microsoft Office SharePoint Server (MOSS) 2007
  • You have installed Reporting Services 2005
  • Both of the above are on a single server. This is not a requirement; it just simplifies the installation. You can get the details on the additional steps for a distributed install here.

Create a Report Server Database for SharePoint Integrated Mode

In order to run Reporting Services in SharePoint Integrated mode, you need to create a new reporting services database. Start Reporting Services Configuration (click Start, All Programs, Microsoft SQL Server 2005, Configuration Tools, Reporting Services Configuration). Click Database Setup and you will see the following:

Note that the Server Mode is Native; this is the default when you install Reporting Services. Click the Change button and you will be prompted: Changing the report server mode requires creating a new report server database. Do you want to continue? Click Yes and the SQL Server Connection Dialog will appear:

Fill in the Database Name, make sure that Create the report server database in SharePoint Integrated mode is checked, then click OK. The Task Status dialog will be displayed; click the Apply button to complete the database setup:

Leave Reporting Services Configuration open; we will return to it after the next step.

Install Reporting Services Add-In for SharePoint Technologies

The SharePoint code required for running Reporting Services in SharePoint Integrated mode is contained in the Reporting Services Add-In for SharePoint Technologies. The add-in is packaged in the file SharePointRS.msi; you can download it here. Launch the msi file to install the add-in accepting the wizard defaults.

Configure Reporting Services Integrated Mode in SharePoint

The final step in setting up Reporting Services in SharePoint Integrated mode is to perform configuration steps in SharePoint itself. Return to Reporting Services Configuration and click on SharePoint Integration. You will see the following:

Click the link Click here to go to SharePoint Central Administration. This will launch a new browser window and navigate to the SharePoint Central Administration web site. Click on the Application Management tab and you will be presented with quite a few options; the only options we are interested in are under the Reporting Services heading as shown below:

Click Manage integration settings. You will be prompted to enter the Report Server Web Service Url and Authentication Mode; e.g. http://bi-moss:5150/reportserver and Windows Authentication. Note that your Report Server Web Service Url will be different than what is used in this example. In my case I installed SQL Server 2005 and allowed the installation to automatically configure Reporting Services. I installed SharePoint on a new IIS web site but allowed it to run on its default port of 80. Since the automatic Reporting Services configuration uses the default IIS web site and port 80, I changed the default web site to use port 5150 to eliminate the conflict. Another point about the default configuration of Reporting Services is that the application pool identity will be set to Network Service. You should change it to a domain account (e.g. the same one as the SharePoint application pool).

Click Grant database access. You will be prompted to specify the server for the report server database. In this example my server is BI-MOSS. Note that your server will be different that what is used in this example.

You can just go with the defaults in the Set server defaults page for now.

Testing Reporting Services in SharePoint Integrated Mode

To test running Reporting Services in SharePoint Integrated Mode, we will use the Adventure Works sample reports that come with SQL Server 2005. Open the sample project then click Project, Properties from the top-level menu. Edit the properties as necessary for your environment; e.g.:

For TargetDataSourceFolder and TargetReportFolder I have selected a document library in my SharePoint site. TargetServerURL is set to the URL of my SharePoint site collection. This would normally be something like http://servername/reportserver. However when you are running in SharePoint Integrated Mode, the URL must be the SharePoint site collection URL.

Right click the project in the Solution Explorer and select Deploy from the context menu. Open a browser and navigate to the document library specified in the project properties above; you will see the following:

Note that you can also deploy reports to the document library by clicking on Upload. Click on one of the reports to display it; e.g. Product Line Sales:

The Actions button provides the following capabilities:

You can also render a report by using the Report Viewer web part which is part of the Reporting Services Add-In for SharePoint Technologies. With the web part you have additional control over the toolbar; the above report shows the full toolbar. You can render the report with just the navigation part of the toolbar:

You can render the report without the toolbar:

  • Give some consideration to running Reporting Services in SharePoint Integrated Mode. As users become acclimated to SharePoint they may be more comfortable managing reports in integrated mode rather than having to resort to the Report Manager web application.
  • From a security standpoint, you can leverage SharePoint security rather than having to replicate that security in the Report Manager.

Last Updated: 2008-10-29

About the author

Ray Barley is a Principal Architect at IT Resource Partners and a MSSQLTips.com BI Expert.

joomla templates Leo Consulting

Настройка Reporting Services в режиме интеграции с SharePoint 2013 для Project Server 2013

Алексей Просницкий, РМР, MVP

Данная статья посвящена настройке Reporting Services в режиме интеграции с SharePoint 2013 для Project Server 2013.

Установка SQL Server с компонентами Reporting Services для SharePoint

Приятно, что для установки SQL Server с компонентами Reporting Services подходит любая версия SQL Server 2012/2014, что нельзя сказать про возможности использования PowerView/PowerPivot (только версии Bussiness Intelligence или Enterprise).
SQL Server с компонентами Reporting Services для SharePoint устанавливаем на WFE(Web Front-End ) сервере.

В перечне функций выбираем две — это «Reporting Services — SharePoint» и «Reporting Services Add-in for SharePoint».

Естественно, куда без службы «Database Engine».

Задаем название инстанса.

На странице «Конфигурация служб Reporting Services», мы ничего не меняем, т.к. выбор сделан.

Неоднократно еще пару раз нажав «Далее» запускаем процесс установки SQL Server и идем слушать пятый концерт Ричарда Хейли.

Настройка Reporting Services в центре администрирования SharePoint

После успешной установки компонент Reporting Services для SharePoint переходим в «Центр администрирования» и создаем новую службу «SQL Server Reporting Services».

В окне создания службы:

  1. Вводим отображаемое имя службы.
  2. Создаем новый отдельный пул приложения для приложения-службы.
  3. Указываем имя SQL сервера, установленного на front-end сервере, и имя новой базы данных.
  4. Ставим галочку для сопоставления веб приложения.

После успешного создания приложения службы нажимаем «ОК».

Создание библиотеки отчетов Reporting Services

После успешного создания службы Reporting Services переходим в «Центр бизнес-аналитики Project Server – Содержимое сайта» (http://. /PWA/ProjectBICenter/_layouts/15/viewlsts.aspx), где добавляем приложение «Библиотека подключения к данным» и указываем имя новой библиотеки.

В параметрах созданной библиотеки выбираем отображение в области быстрого запуска.

В дополнительных параметрах библиотеки включаем разрешение на управление типами контента.

Возвращаемся в параметры библиотеки и заходим на страницу «Добавление типов контента».
Выбираем из типов контента сайта «Типы содержимого служб SQL Server Reporting Services» и переносим вправо (добавляем) доступные типы контента сайта.

Добавив типы контента, возвращаемся в библиотеку, и на ленте «Файлы» выбираем в меню «Создать документ». На выбор вам будет представлены варианты создания отчетов на основании Reporting Services.

Создаем новый источник данных отчета.

В строке подключения, в моем случае, использовалась строка » Data Source=SQL;Initial Catalog=ProjectWebApp_2013 «.

Два варианта создания документов «Отчет в построителе отчетов» и «Модель в построителе отчетов» подразумевают использования компоненты «Report Builder».

А как пользоваться построителем отчетов (Report Builder), это уже другая история…

Ссылка на основную публикацию
Adblock
detector