Oddity Knowledge Base Development guide

SQL Server Reporting Services: Reports, Delivery, and Migration

5 min read Practical knowledge from OddityRead the article

A purchasing team can open its supplier-exception report in the browser, yet the Monday delivery never reaches the shared folder. The report designer sees correct rows and assumes the reporting system is working. Operations staff see an empty folder and reach a different conclusion. Both observations can be accurate because designing a report, executing it, and delivering its output are separate parts of the system.

SQL Server Reporting Services (SSRS) is Microsoft's server-based platform for creating, publishing, and managing paginated reports. These reports are useful when readers need a structured document with repeatable grouping, headings, and page layout. Understanding the server's role helps a team support the report after the initial design is finished.

The report definition is the starting point

Microsoft's Reporting Services report documentation explains that an RDL file contains an XML report definition. Processing combines the definition with queried data; rendering produces the presentation, and an optional export creates another file format. An RDL file is therefore different from a PDF someone received yesterday.

For the purchasing team, the definition describes which supplier exceptions to retrieve and how to present them. A delivered PDF contains the result of a particular execution. Reopening that PDF does not ask the database whether an exception has since been resolved.

Identify the actual production dependencies before diagnosing a failure. Record the deployed report location, its data source, the relevant query or dataset, and the parameter values used for the scheduled run. A developer's preview may connect to a different database or use credentials that are unavailable to unattended processing. Compare those settings with the server configuration instead of repeatedly adjusting the page layout.

Decide which moment the report represents

An on-demand report and a retained snapshot serve different purposes. Microsoft's report documentation describes snapshots as a way to give readers consistent results from a point in time, while changing source data can produce different results in successive on-demand executions.

The purchasing team needs to decide whether Monday's document records the position at the start of the meeting or shows whatever is current when each manager opens it. Neither interpretation is automatically wrong, but mixing them creates avoidable disputes. A resolved shortage can legitimately disappear from a later run without invalidating the earlier document.

Put the relevant reporting period or cutoff and generation time where readers can see them. If the upstream supplier feed arrived late, distinguish that source delay from the time the report was rendered. A newly generated document is not necessarily based on newly received information.

When a cached or retained result is intentional, make its purpose clear to the team. When it is unexpectedly old, trace the refresh path. Refreshing a browser window is not evidence that every upstream system has supplied a new set of records.

Make scheduled delivery an explicit operation

An SSRS subscription defines delivery settings, output format, and parameter values for a scheduled or supported event-triggered run. Microsoft's subscription documentation distinguishes standard subscriptions, which use fixed settings, from data-driven subscriptions, which retrieve settings through a query. Availability and prerequisites depend on the installed edition and configuration.

Unattended execution is particularly important. The documentation requires stored credentials or a data source that needs no credentials; subscriptions cannot rely on the current browser user's impersonated or delegated credentials for an external data connection. A report that succeeds while its author is signed in can therefore still fail on schedule.

Follow one delivery from input to destination

For the missing supplier report, inspect the subscription's last result and the applicable report-server logs. Confirm the intended parameters, then investigate data retrieval, rendering, and destination access according to the failure observed. Preserve the error details before retrying so the next attempt does not become the only evidence.

Check the actual delivered file as well as the job status. Is it in the expected folder, readable by the intended team, and associated with the intended cutoff? Give someone responsibility for failed runs and recipient changes. An unattended schedule still needs an operational owner.

Separate report access from data authorization

Folder permissions and role assignments control access to report-server items. They do not make hidden columns or parameters a reliable boundary around the underlying data. Microsoft's report security guidance explicitly says to enforce data access at the source, using appropriate database or model permissions.

If one purchasing group may see only its own suppliers, verify that restriction using the identity and data-access path employed in production. Do not treat a default department selection as proof of isolation. Also assess the destination: a correctly restricted report can still disclose information if its exported copy goes into an overly broad shared folder.

Plan around the current product direction

Microsoft's Reporting Services consolidation FAQ states that no new SSRS versions will follow SSRS 2022. Starting with SQL Server 2025, Power BI Report Server is the default on-premises reporting solution. The FAQ lists support for SSRS 2022 through January 11, 2033, so the transition does not mean every existing installation is already unsupported.

For a migration, inventory the reporting workload as a service: definitions, data connections, permissions, delivery schedules, recipients, and retained outputs. Test representative scheduled runs and exported documents on the destination, not just whether an RDL opens. A successful transition preserves the purchasing team's ability to receive and interpret its Monday report, along with a clear way to investigate the next missed delivery.

Oddity Data Updates

Know when fresh data arrives.

Receive occasional notices about new and substantially updated database releases. No third-party mailing list.

Oddity Software

Details