Subscriptions and Delivery (Reporting Services)Subscriptions and Delivery (Reporting Services)

Подписка Службы Reporting ServicesReporting Services представляет собой конфигурацию, создающую отчет в определенное время или в ответ на конкретное событие. Отчет выводится в указанном формате файла.A Службы Reporting ServicesReporting Services subscription is a configuration that delivers a report at a specific time or in response to an event, and in a file format that you specify. Например, каждую среду отчет MonthlySales.rdl можно сохранять в виде документа Microsoft Word на общем файловом ресурсе.For example, every Wednesday, save the MonthlySales.rdl report as a Microsoft Word document to a file share. С помощью подписок можно планировать и автоматизировать создание отчетов, в которых будет использоваться заданный набор значений параметров.Subscriptions can be used to schedule and automate the delivery of a report and with a specific set of report parameter values.

Чтобы применить различные варианты подписки, для одного отчета можно создать несколько подписок. Например, можно указать различные значения параметров, чтобы сформировать три версии отчета, а именно: отчет о продажах в западном регионе, отчет о продажах в восточном регионе и отчет об общих продажах.You can create multiple subscriptions for a single report to vary the subscription options; for example, you can specify different parameter values to produce three versions of a report, such as a Western region sales report, Eastern region sales, and all sales.

Пример потока подписки SSRSexample ssrs subscription flow

Подписки доступны не во всех выпусках SQL ServerSQL Server.Subscriptions are not available in every edition of SQL ServerSQL Server. Список функций, поддерживаемых различными выпусками SQL ServerSQL Server, см. в статье Выпуски и поддерживаемые функции SQL Server 2017.For a list of features that are supported by the editions of SQL ServerSQL Server, see Editions and supported features of SQL Server 2017.

В этом разделе:In this topic:

Темы в этом разделеTopics In this section:

Сценарии подписки и доставкиSubscription and delivery scenarios

Для каждой подписки настраиваются варианты доставки, которые зависят от выбранного модуля доставки.For each subscription, you configure delivery options and the available options are determined by the delivery extension you choose. Модуль доставки — это модуль, поддерживающий определенный способ распространения.A delivery extension is a module that supports some manner of distribution. Службы Reporting ServicesReporting Services предлагает несколько модулей доставки. Кроме того, могут быть доступны модули доставки сторонних поставщиков.includes several delivery extensions and delivery extension may be available through third-party vendors.

Разработчик может создавать собственные модули доставки для поддержки дополнительных сценариев.If you are a developer, you can create custom delivery extensions to support additional scenarios. Дополнительные сведения см. в статье Implementing a Delivery Extension.For more information, see Implementing a Delivery Extension.

В следующей таблице описаны распространенные сценарии подписки Службы Reporting ServicesReporting Services .The following table describes the common Службы Reporting ServicesReporting Services subscription scenarios.

СценарийScenario ОписаниеDescription
Отчеты по электронной почтеE-mail Reports Отправка отчетов по электронной почте отдельным пользователям и группам.E-mail reports to individual users and groups. Создайте подписку и укажите псевдоним группы или псевдоним электронной почты для получения отчета, который нужно распространить.Create a subscription and specify a group alias or e-mail alias to receive a report that you want to distribute. Службы Службы Reporting ServicesReporting Services могут определять данные о подписке во время выполнения.You can have Службы Reporting ServicesReporting Services determine the subscription data at run time. Чтобы отправить один отчет группе, список членов которой изменяется, можно составить запрос, получающий список подписки во время выполнения.If you want to send the same report to a group that has a changing list of members, you can use a query to derive the subscription list at run time.
Просмотр отчетов в автономном режимеView Reports off-line Пользователи могут выбрать один из следующих форматов для вывода подписки:Users can select one of the following formats for subscription output:

— XML-файл с данными отчета- XML file with report data
— CSV (с разделителями-запятыми)- CSV (comma delimited)
— PDF- PDF
— MHTML (веб-архив)- MHTML (web archive)
— Microsoft Excel- Microsoft Excel
— TIFF-файл- TIFF file
— Microsoft Word- Microsoft Word

Отчеты, которые нужно поместить в архив, можно отправлять непосредственно в общую папку, для которой по ночам создаются резервные копии.Reports that you want to archive can be sent directly to a shared folder that you back up on a nightly schedule. Крупные отчеты, на загрузку которых в браузере уходит слишком много времени, можно отправить в общую папку в формате, позволяющем просмотр в приложении для настольных систем.Large reports that take too long to load in a browser can be sent to a shared folder in a format that can be viewed in a desktop application.
Предварительная загрузка кэшаPre-load cache При наличии нескольких экземпляров параметризованного отчета или большого количества пользователей, просматривающих отчеты, можно предварительно загрузить отчет, что позволит сократить время обработки, необходимое для отображения отчета.If you have multiple instances of a parameterized report or a large number of report users who view reports, you can preload reports in the cache to reduce processing time required to display the report.
Отчеты, управляемые даннымиData-driven reports Управляемые данными подписки позволяют настраивать выходные данные отчета, параметры доставки и значения параметров отчета во время выполнения.Use data-driven subscriptions to customize report output, delivery options, and report parameter settings at run time. Подписка с помощью запроса получает входные значения из источника данных во время выполнения.The subscription uses a query to get input values from a data source at run time. Управляемые данными подписки позволяют выполнять операцию слияния почты, которая отправляет отчет списку подписчиков, определяемому во время обработки подписки.You can use data-driven subscriptions to perform a mail-merge operation that sends a report to a list of subscribers that is determined at the time the subscription is processed.

Стандартные и управляемые данными подпискиStandard and data-driven subscriptions

Службы Reporting ServicesReporting Services поддерживают два типа подписок: стандартные и управляемые данными.supports two kinds of subscriptions: standard and data-driven. Стандартные подписки создаются и управляются отдельными пользователями.Standard subscriptions are created and managed by individual users. Стандартная подписка состоит из статических значений, которые не могут изменяться в течение обработки подписки.A standard subscription consists of static values that cannot be varied during subscription processing. Для каждой стандартной подписки есть только один набор параметров представления отчета, параметров доставки и параметров отчета.For each standard subscription, there is exactly one set of report presentation options, delivery options, and report parameters.

Управляемые данными подписки получают сведения о подписке динамически, направляя запросы внешнему источнику данных, который предоставляет значения, используемые для указания получателя, параметров отчета или формата приложения.Data-driven subscriptions get subscription information at run time by querying an external data source that provides values used to specify a recipient, report parameters, or application format. Можно использовать управляемые данными подписки, если существует очень большой список получателей или если желательно менять вывод отчета для каждого получателя.You might use data-driven subscriptions if you have a very large recipient list or if you want to vary report output for each recipient. Чтобы использовать управляемые данными подписки, необходимо иметь опыт в построении запросов и понимать, как применяются параметры.To use data-driven subscriptions, you must have expertise in building queries and an understanding of how parameters are used. Создают эти подписки и управляют ими обычно администраторы сервера отчетов.Report server administrators typically create and manage these subscriptions. Дополнительные сведения см. в следующих разделах:For more information, see the following:

Требования к подпискеSubscription requirements

Прежде чем может быть создана подписка на отчет, должны быть соблюдены следующие требования.Before you can create a subscription to a report, the following prerequisites must be met:

ТребованиеRequirement ОписаниеDescription
РазрешенияPermissions Пользователь должен иметь доступ к отчету.You must have access to the report. Прежде чем можно будет подписаться на отчет, пользователь должен иметь разрешения на его просмотр.Before you can subscribe to a report, you must have permission to view it.

Для серверов отчетов в основном режиме на подписки влияют следующие назначения ролей:For Native mode report servers, the following role assignments affect subscriptions:

— Задача "Управление отдельными подписками" дает возможность пользователям создавать, изменять и удалять подписки для конкретного отчета.- The "Manage individual subscriptions" task allows users to create, modify, and delete subscriptions for a specific report. Что касается стандартных ролей, эта задача входит в состав ролей «Браузер» и «Построитель отчетов».In the predefined roles, this task is part of Browser and Report Builder roles. Назначения ролей, которые включают эту задачу, позволяют управлять только подписками, создаваемыми пользователем;Role assignments that include this task allow a user to manage only those subscriptions that he or she creates.
— Задача "Управление всеми подписками" дает возможность пользователям обращаться ко всем подпискам и изменять их.- The "Manage all subscriptions" task allows users to access and modify all subscriptions. Эта задача необходима для создания подписок, управляемых данными.This task is required to create data-driven subscriptions. Из стандартных ролей эту задачу включает только роль «Диспетчер содержимого».In predefined roles, only the Content Manager role includes this task.
Сохраненные учетные данныеStored credentials Чтобы создать подписку, отчет должен использовать или не использовать сохраненные учетные записи для извлечения данных во время выполнения.To create a subscription, the report must use stored credentials or no credentials to retrieve data at run time. Нельзя подписаться на отчет, настроенный для использования олицетворенных или делегированных учетных данных текущего пользователя для подключения к внешнему источнику данных.You cannot subscribe to a report that is configured to use the impersonated or delegated credentials of the current user to connect to an external data source. Хранимые учетные данные могут быть или учетной записью Windows, или учетной записью базы данных.The stored credentials can be a Windows account or a database user account. Дополнительные сведения см. в разделе Задание учетных данных и сведений о соединении для источников данных отчета.For more information, see Specify Credential and Connection Information for Report Data Sources

Для просмотра отчета и создания отдельных подписок необходимо иметь соответствующее разрешение.You must have permission to view the report and create individual subscriptions. На сервере отчетов должны быть включеныЗапланированные события и доставка отчетов .Scheduled Events and Report Delivery must be enabled on the report server. Дополнительные сведения см. в разделе old_Создание подписок для работающих в основном режиме серверов отчетов и управление этими подписками.For more information, see old_Create and Manage Subscriptions for Native Mode Report Servers.
Зависящие от пользователя значения в отчетеUser dependent values in a report Только для стандартных подписок можно создавать подписки на отчеты, которые включают сведения пользовательской учетной записи в фильтре или как текст, появляющийся в отчете.For standard subscriptions only, you can create subscriptions to reports that incorporate user account information in a filter or as text that appears on the report. В таком отчете имя учетной записи пользователя указывается через выражение User!UserID , которое разрешается в текущего пользователя.In the report, the user account name is specified through a User!UserID expression that resolves to the current user. При создании подписки текущим считается пользователь, создающий эту подписку.When you create a subscription, the user who creates the subscription is the considered the current user.
Отсутствие безопасности элементов моделиNo model item security Нельзя подписаться на отчет построителя отчетов, который в качестве источника данных использует модель, содержащую настройки безопасности элементов модели.You cannot subscribe to a Report Builder report that uses a model as a data source if the model contains model item security settings. Только отчеты, использующие безопасность элементов модели отчета, входят в это ограничение.Only reports that use model item security are included in this restriction.
Значения параметраParameter values Если отчет использует параметры, их значения должны быть заданы в самом отчете или в определяемой подписке.If the report uses parameters, a parameter value must be specified with the report itself, or in the subscription you define. Если в отчете были определены значения по умолчанию, то в параметрах можно указать, чтобы использовались они.If default values have been defined in the report, you can set the parameter value to use the default.

модули доставки;Delivery extensions

Подписки обрабатываются на сервере отчетов и распространяются с помощью модулей доставки, развернутых на этом сервере.Subscriptions are processed on the report server and are distributed through delivery extensions that are deployed on the server. По умолчанию допускается создание подписок, которые направляют отчеты в общую папку или на адрес электронной почты.By default, you can create subscriptions that send reports to a shared folder or to an e-mail address. После настройки сервера отчетов на работу в режиме интеграции с SharePoint можно также отправить отчет в библиотеку SharePoint.If the report server is configured for SharePoint integrated mode, you can also send a report to a SharePoint library.

При создании подписки можно задать способ доставки отчета, выбрав один из доступных модулей доставки.When a user creates a subscription, he or she can choose one of the available delivery extensions to determine how the report is delivered. Службы Reporting ServicesReporting Services имеются следующие модули доставки отчета.includes the following delivery extensions.

Модуль доставкиDelivery Extension ОписаниеDescription
Общая папка WindowsWindows File Share Доставляет отчет в виде статического файла приложения в общую папку, доступную в сети.Delivers a report as a static application file to a shared folder that is accessible on the network.
электронная почтаE-mail Доставляет уведомление или отчет в виде электронного вложения или URL-ссылки.Delivers a notification or a report as an e-mail attachment or URL link.
Библиотека SharePointSharePoint library Доставляет отчет в виде статического файла приложения в библиотеку SharePoint, доступную с сайта SharePoint.Delivers a report as a static application file to a SharePoint library that is accessible from a SharePoint site. Этот сайт должен быть интегрирован с сервером отчетов, который выполняется в режиме интеграции с SharePoint.The site must be integrated with a report server that runs in SharePoint integrated mode.
NULLNull Отсутствующий поставщик доставки — узко специализированный модуль доставки, используемый для предварительной загрузки в кэш готовых для просмотра параметризованных отчетов. Этот метод не доступен пользователям при отдельных подписках.The null delivery provider is a highly specialized delivery extension that is used to preload a cache with ready-to-view parameterized reports This method is not available to users in individual subscriptions. Отсутствующий поставщик доставки используется администраторами в управляемых данными подписках, чтобы улучшить работу сервера отчетов путем предварительной загрузки кэша.Null delivery is used by administrators in data-driven subscriptions to improve report server performance by preloading the cache.

Примечание

Доставка отчетов представляет собой расширяемую часть архитектуры служб Службы Reporting ServicesReporting Services .Report delivery is an extensible part of Службы Reporting ServicesReporting Services architecture. Сторонние поставщики могут создавать пользовательские модули доставки для направления отчетов в разные места или на разные устройства.Third-party vendors can create custom delivery extensions to route reports to different locations or devices. Дополнительные сведения о пользовательских модулях доставки см. в разделе Implementing a Delivery Extension.For more information about custom delivery extensions, see Implementing a Delivery Extension.

Части подпискиParts of a subscription

Определение подписки состоит из следующих частей.A subscription definition consists of the following parts:

  • Указатель на отчет, который может запускаться автоматически (то есть отчет, использующий сохраненные учетные данные или не использующий их).A pointer to a report that can run unattended (that is, a report that uses stored credentials or no credentials).

  • Метод доставки (например, электронная почта) и настройки для режима доставки (такие как почтовый адрес).A delivery method (for example, e-mail) and settings for the mode of delivery (such as an e-mail address).

  • Модуль подготовки отчетов, чтобы представить отчет в указанном формате.A rendering extension to present the report in a specific format.

  • Условия для обработки подписки, которая представлена как событие.Conditions for processing the subscription, which is expressed as an event.

    Обычно условия для выполнения отчета основаны на времени.Usually, the conditions for running a report are time-based. Например, можно создавать определенный отчет каждый вторник в 15:00.For example, you may want to run a particular report every Tuesday at 3:00 P.M. Однако,UTC. если отчет запускается как моментальный снимок, можно указать, что подписка запускается каждый раз, когда обновляется моментальный снимок.However, if the report runs as a snapshot, you can specify that the subscription runs whenever the snapshot is refreshed.

  • Параметры, используемые при работе отчета.Parameters used when running the report.

    Параметры являются необязательными и указаны только для отчетов, которые принимают значения параметра.Parameters are optional and are specified only for reports that accept parameter values. Поскольку подписка является обычно пользовательской, указанные значения параметра изменяются от подписки к подписке.Because a subscription is typically user-owned, the parameter values that are specified vary from subscription to subscription. Например менеджеры продаж из различных отделов будут использовать параметры, которые возвращают данные именно в их отдел.For example, sales managers for different divisions will use parameters that return data for their division. Все параметры должны иметь явно определенное значение или иметь допустимое значение по умолчанию.All parameters must have a value explicitly defined, or have a valid default value.

Сведения о подписке сохраняются вместе с индивидуальными отчетами в базе данных сервера отчетов.Subscription information is stored with individual reports in a report server database. Нельзя управлять подписками отдельно от отчета, к которому они привязаны.You cannot manage subscriptions separately from the report to which they are associated. Учтите, что подписки не могут быть расширены для включения описаний, другого заказного текста или других элементов.Note that subscriptions cannot be extended to include descriptions, other custom text, or other elements. Подписки могут содержать только элементы, перечисленные ранее.Subscriptions can contain only the items listed earlier.

Обработка подписокHow subscriptions are processed

Службы Reporting ServicesReporting Services реализован обработчик планирования и доставки, который обеспечивает планирование отчетов и их доставку пользователям.includes a scheduling and delivery processor, which provides functionality for scheduling reports and delivering them to users. Сервер отчетов непрерывно реагирует на контролируемые им события.The report server responds to events that it monitors on an ongoing basis. Когда происходит событие, соответствующее условиям, определенным для подписки, сервер отчетов считывает подписку, чтобы определить, как следует обработать и доставить отчет.When an event occurs that matches the conditions defined for a subscription, the report server reads the subscription to determine how to process and deliver the report. Сервер отчетов запрашивает модуль доставки, указанный в подписке.The report server requests the delivery extension that is specified in the subscription. После запуска модуля доставки сервер отчетов извлекает из подписки сведения о доставке и передает ее для обработки модулю доставки.After the delivery extension is running, the report server extracts delivery information from the subscription and passes it to the delivery extension for processing.

Модуль доставки готовит отчет к просмотру в формате, определенном в подписке, после чего доставляет отчет или уведомление указанному адресату.The delivery extension renders the report in the format defined in the subscription and then delivers the report or notification to the specified destination. Если доставка отчета невозможна, в файл журнала сервера отчетов добавляется соответствующая запись.If a report cannot be delivered, an entry is logged to the report server log file. На сервере отчетов можно настроить повторение попыток доставки в случае, если первая попытка заканчивается неудачей.If you want to support retry operations, you can configure the report server to re-attempt the delivery if the first attempt fails.

Обработка стандартной подпискиProcessing a standard subscription

Стандартные подписки создают один экземпляр отчета.Standard subscriptions produce one instance of a report. Отчет доставляется в одну общую папку или рассылается по адресам электронной почты, указанным в подписке.The report is delivered to a single shared folder or to the e-mail addresses specified in the subscription. Макет отчета и данные не меняются.The report layout and data do not vary. Если в отчете используются параметры, стандартная подписка обрабатывается с одним значением для каждого параметра в отчете.If the report uses parameters, a standard subscription is processed with a single value for each parameter in the report.

Обработка управляемой данными подпискиProcessing a data-driven subscription

Управляемые данными подписки могут формировать несколько экземпляров отчетов, которые доставляются по разным адресатам.Data-driven subscriptions can produce many report instances that are delivered to multiple destinations. Макет отчета не меняется, но данные отчетов могут быть разными, если значения параметров передаются из результирующего набора подписчиков.The report layout does not vary, but the data in a report can vary if parameter values are passed in from a subscriber result set. Параметры доставки, влияющие на подготовку отчета к просмотру и на способ доставки (в виде вложения или ссылки в электронном сообщении), также могут быть разными для разных подписчиков, если они передаются из набора строк.Delivery options that affect how the report is rendered and whether the report is attached or linked to the e-mail can also vary from subscriber to subscriber when the values are passed in from the row set.

Управляемые данными подписки могут создавать большое количество доставок.Data-driven subscriptions can produce a large number of deliveries. Сервер отчетов создает доставку для каждой строки из набора строк, возвращенного запросом подписки.The report server creates a delivery for each row in the row set that is returned from the subscription query.

Характеристики доставки отчетовReport delivery characteristics

Отчеты, которые доставляются с использованием стандартных подписок, обычно готовятся к просмотру как статические отчеты.Reports that are delivered through standard subscriptions are typically rendered as static reports. Эти отчеты либо основаны на снимке состояния выполнения отчета, либо создаются в виде статических отчетов специально для выполнения доставки.These reports are either based on the most recent report execution snapshot, or generated as a static report for the purpose of completing a delivery. Если выбран параметр Включить ссылку в подписке на выполняемый по требованию отчет, то сервер отчетов будет запускать отчет при щелчке гиперссылки.If you choose the Include Link option in a subscription to a report that runs on demand, the report server runs the report when you click the hyperlink.

Примечание

Отчеты, доставляемые с помощью URL-адреса, остаются подключенными к серверу отчетов, и их можно обновлять или удалять между просмотрами.Reports that are delivered through a URL remain connected to the report server and can be updated or deleted between viewings. Параметры доставки для подписки определяют, доставляется ли отчет в виде URL-адреса, внедренного в тело электронного сообщения, или присылается в виде вложения.The delivery options you choose for your subscription determine whether the report is delivered as a URL, embedded within the body of an e-mail message, or sent as an attachment.

Отчеты, доставляемые с помощью управляемой данными подписки, могут быть сформированы повторно во время обработки подписки.Reports that are delivered through a data-driven subscription may be regenerated while the subscription is being processed. Сервер отчетов не блокирует определенный экземпляр отчета или его набор данных для обработки управляемой данными подписки.The report server does not lock in a specific instance of a report or its dataset to complete a data-driven subscription. Если в подписке разные значения параметров используются для разных подписчиков, то сервер отчетов повторно формирует отчет для достижения необходимых результатов.If the subscription uses different parameter values for different subscribers, the report server regenerates the report to produce the required result. Если лежащие в основе отчета данные обновляются после создания и доставки первой копии отчета, то пользователи, которые получат более поздние копии, могут увидеть данные, основанные на другом результирующем наборе.If the underlying data is updated after the first report copy is created and delivered, users who get reports later in the process may see data that is based on different result set. Чтобы один и тот же экземпляр отчета был доставлен всем подписчикам, можно использовать отчет, запускающийся как моментальный снимок.You can use a report that runs as a snapshot to ensure that the same report instance is delivered to all subscribers. Однако если во время обработки подписки происходит запланированное обновление моментального снимка, то пользователи все же могут получить в отчетах разные данные.However, if a scheduled update to the snapshot occurs while the subscription is processing, users may still get different data in their reports.

Запуск обработки подпискиTriggering subscription processing

Для запуска на сервере отчетов обработки подписки используются два типа событий: события, управляемые временем, которые запланированы в расписании, и события обновления моментального снимка.The report server uses two kinds of events to trigger subscription processing: a time-driven event that is specified in a schedule or a snapshot update event.

Управляемый временем триггер использует расписание отчета или общее расписание, чтобы запустить подписку.A time-driven trigger uses a report-specific schedule or a shared schedule to specify when a subscription runs. Для кэшированных отчетов и отчетов по требованию расписания являются единственным вариантом триггера.For on-demand and cached reports, schedules are the only trigger option.

Событие обновления моментального снимка запускает подписку при запланированном обновлении моментального снимка отчета.A snapshot update event uses the scheduled update of a report snapshot to trigger a subscription. Можно определить подписку, которая будет запускаться при каждом обновлении отчета новыми данными в зависимости от свойств выполнения отчета.You can define a subscription that is triggered whenever the report is updated with new data, based on report execution properties that are set on the report.

Программное управление подпискамиProgrammatic control of subscriptions

Объектная модель Службы Reporting ServicesReporting Services позволяет программно осуществлять аудит и контроль подписок и их обработки.The Службы Reporting ServicesReporting Services object model allows you to programmatically audit and control subscriptions and subscriptions processing. См. следующие примеры для начала работы:See the following for examples and getting started:

См. также:See Also

Создание управляемой данными подписки (учебник по службам SSRS) Create a Data-Driven Subscription (SSRS Tutorial)
Расписания Schedules
Сервер отчетов служб Reporting Services (основной режим) Reporting Services Report Server (Native Mode)
Отслеживание подписок служб Reporting ServicesMonitor Reporting Services Subscriptions