| title | Delivery extensions overview | ||
|---|---|---|---|
| description | Read an overview of delivery extensions, which you can use to deliver Reporting Services reports in various ways, such as through email or file sharing. | ||
| ms.date | 09/25/2024 | ||
| ms.service | reporting-services | ||
| ms.subservice | extensions | ||
| ms.topic | reference | ||
| ms.custom |
|
||
| helpviewer_keywords |
|
[!INCLUDEssNoVersion] [!INCLUDEssRSnoversion] enables users to create and publish reports that, once created and published, can be delivered to various locations. In addition, [!INCLUDEssRSnoversion] includes several delivery extensions and a delivery API that enable developers to create more delivery extensions to further extend the functionality of delivery in [!INCLUDEssRSnoversion].
The following table lists the delivery extensions included with [!INCLUDEssRSnoversion].
| Delivery extension | Description |
|---|---|
| Report Server E-Mail | Uses an SMTP server to e-mail reports to individual users or groups. |
| Report Server File Share | Used to distribute reports within your organization to network file shares. Lets you automatically copy a report to a file share on a designated schedule. |
:::image type="content" source="../../../reporting-services/extensions/delivery-extension/media/bk-reportservicedelivery.gif" alt-text="Screenshot of the Reporting Services delivery extension architecture.":::
Reporting Services delivery extension architecture.
Delivery extensions are paired with subscriptions. When a user creates a subscription, they can choose one of the available delivery extensions to determine how the report is delivered. In [!INCLUDEssRSnoversion], subscriptions are located in the report server database. When an event occurs, [!INCLUDEssRSnoversion] matches the event against subscriptions contained in the report server database. For each subscription tied to the event, the report server creates a notification. For data-driven subscriptions, a notification is created for each recipient. Once a notification is created, the report server invokes a particular delivery extension and passes in values for the extensions settings specified in the notification. The delivery extension sends the notification to the user as specified by the selected delivery extension.
Delivery extensions implement the [!INCLUDEssRSnoversion] delivery extension API. Supporting the [!INCLUDEssRSnoversion] delivery extension API enables delivery extensions to receive notifications from the report server and provide status of the notification.
The report server doesn't manage delivery destinations for notifications and reports. Gathering destination information is accomplished through the code you write in your delivery extension.
Client applications create subscriptions that use delivery extensions using two methods of the Report Server Web service: xref:ReportService2010.ReportingService2010.CreateSubscription%2A and xref:ReportService2010.ReportingService2010.CreateDataDrivenSubscription%2A. For modifying subscriptions that already exist, the xref:ReportService2010.ReportingService2010.SetSubscriptionProperties%2A and xref:ReportService2010.ReportingService2010.SetDataDrivenSubscriptionProperties%2A methods are used. When a user creates a subscription, they also select a delivery extension for the subscription and enters values for the required extension settings. When a user saves a subscription, it's stored in the report server database. Subscriptions create notifications based on a schedule or an event. When a delivery begins, the selected delivery extension first loads any configuration data from the configuration file. Next, the extension settings for the subscription are retrieved, and values are set. Finally, the xref:Microsoft.ReportingServices.Interfaces.IDeliveryExtension.Deliver%2A method is called, and the notification is sent.
Developing a [!INCLUDEssRSnoversion] delivery extension requires you to have:
-
A deployment computer with a report server installed.
-
A development computer with [!INCLUDEvsprvs2008] or the [!INCLUDEmsCoName] [!INCLUDEdnprdnshort] Software Development Kit (SDK) installed.
-
An in-depth understanding of [!INCLUDEssRSnoversion] features and capabilities, specifically subscription and delivery.
-
An in-depth understanding of [!INCLUDEvstecasp] and Web controls if you're planning to implement your own subscription user interface for Report Manager.
-
Development experience in a [!INCLUDEdnprdnshort] language such as [!INCLUDEmsCoName] Visual C# or [!INCLUDEmsCoName] [!INCLUDEvisual-basic] .NET.