> For the complete documentation index, see [llms.txt](https://docs.ovaledge.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ovaledge.com/connectors/connector-repositories/reporting-tool/microsoft-sql-server-reporting-services-ssrs/microsoft-sql-server-reporting-services-lineage.md).

# Microsoft SQL Server Reporting Services - Lineage

This document outlines the lineage coverage, configuration requirements, supported components, transformation support, supported use cases, partial or limited coverage, unsupported scenarios, and current functional status for lineage extraction in Microsoft SQL Server Reporting Services (SSRS).

The SSRS connector provides end-to-end lineage from backend database tables and columns through report datasets to SSRS report fields and visual elements. It supports static SQL datasets, stored procedure datasets, Shared Datasets, report parameters, and direct report-field mappings. The connector also provides lineage across report elements such as Textboxes, Tablix cells, and Charts, with production-ready coverage for core static SQL and stored-procedure scenarios.

## Lineage Configuration Requirements

Successful lineage extraction depends on valid SSRS connection details, appropriate authentication, available RDL and Shared Dataset metadata, and crawled backend database objects. The following requirements apply to SSRS lineage extraction.

### Configuration Requirements Table

<table data-search="false"><thead><tr><th width="221">Configuration</th><th>Required Detail</th></tr></thead><tbody><tr><td>SSRS Connection</td><td>SSRS connection details must include the Host/IP, Web Port, and SSRS Web URL.</td></tr><tr><td>Authentication</td><td>Username, Password, and Domain are required for Windows or SQL authentication. File Authentication is supported for uploaded RDL and RSD files.</td></tr><tr><td>Backend Database Connection</td><td>A backend database JDBC connection must be available, and referenced database objects must already be crawled or cataloged.</td></tr><tr><td>RDL Metadata</td><td>RDL XML must be available as crawled source metadata for report and report-element lineage.</td></tr><tr><td>Shared Dataset Metadata</td><td>Shared Dataset XML must be available as crawled source metadata where Shared Datasets are used.</td></tr><tr><td>Report Fields and Expressions</td><td>Report fields and expressions must be extracted before lineage is built.</td></tr><tr><td>SQL Parsing Dialects</td><td>SQL parsing dialects can be configured where required for SQL lineage extraction.</td></tr><tr><td>Connection Priority</td><td>Connection priority can be configured for stored-procedure source resolution where multiple connections contain similar database objects.</td></tr><tr><td>JDBC Query Timeout</td><td>JDBC query timeout can be configured where required for stored-procedure processing or long-running metadata queries.</td></tr></tbody></table>

{% hint style="warning" %}
Missing SSRS metadata, unavailable backend database connections, un-crawled database objects, incomplete RDL or Shared Dataset XML, or insufficient authentication access may result in incomplete lineage generation.
{% endhint %}

## Lineage Components

The following table identifies the SSRS components and lineage features supported by the connector.

<table data-search="false"><thead><tr><th>Component / Feature</th><th align="center">Supported</th></tr></thead><tbody><tr><td>Reports (Chart objects)</td><td align="center">✅</td></tr><tr><td>Report Fields / Textboxes / Tablix cells</td><td align="center">✅</td></tr><tr><td>Backend Tables</td><td align="center">✅</td></tr><tr><td>Backend Views</td><td align="center">✅</td></tr><tr><td>Stored Procedures</td><td align="center">✅ / ⚠️</td></tr><tr><td>Shared Datasets</td><td align="center">✅</td></tr><tr><td>Report Parameters</td><td align="center">✅</td></tr><tr><td>Inline SQL Datasets</td><td align="center">✅</td></tr><tr><td>Aggregate / Derived Expressions</td><td align="center">⚠️</td></tr><tr><td>Multi-field Expressions</td><td align="center">⚠️</td></tr><tr><td>Sub Reports / Drill-through</td><td align="center">❌ / ⚠️</td></tr><tr><td>Custom VB.NET <code>&#x3C;Code></code> Functions</td><td align="center">❌</td></tr><tr><td>Dynamic / Expression-built SQL</td><td align="center">❌</td></tr><tr><td>Chart / Gauge / Tablix Grouping Expressions</td><td align="center">⚠️</td></tr><tr><td>File-authenticated RDL / RSD Parsing</td><td align="center">⚠️</td></tr></tbody></table>

{% hint style="info" %}
The ⚠️ icon indicates partially supported functionality where lineage coverage depends on expression complexity, stored-procedure result-set availability, report structure, or the quality of the RDL/RSD metadata.
{% endhint %}

## Column Creation Support

This section outlines lineage support for columns created through direct report-field mappings, aggregate expressions, multi-field expressions, report parameters, stored procedure result sets, and custom expressions.

### Column Creation from Lineage

<table data-search="false"><thead><tr><th>Transformation Type</th><th align="center">Supported</th></tr></thead><tbody><tr><td>Direct Field Bind (<code>=Fields!Col.Value</code>)</td><td align="center">✅</td></tr><tr><td>Aggregate Expressions (<code>=Sum</code> / <code>Count</code> / etc.)</td><td align="center">⚠️</td></tr><tr><td>Multi-field / Concatenated Expressions</td><td align="center">⚠️</td></tr><tr><td>Report-Parameter-Derived Columns</td><td align="center">✅</td></tr><tr><td>Stored Procedure Result Columns</td><td align="center">✅ / ⚠️</td></tr><tr><td>Custom Code / Expressions without Dataset Field Reference</td><td align="center">❌</td></tr></tbody></table>

{% hint style="info" %}
The ⚠️ icon indicates partial column-level lineage coverage. Source fields can be identified in supported expressions, but complex transformation logic may not be decomposed into individual lineage relationships.
{% endhint %}

## Supported Use Cases

The SSRS connector supports lineage extraction across backend database objects, report datasets, report fields, report parameters, and supported report visual elements.

### Supported Lineage Scenarios

<table data-search="false"><thead><tr><th width="234">Supported Scenario</th><th>Details</th></tr></thead><tbody><tr><td>Static SQL Dataset → Report Lineage</td><td>Lineage from static SQL dataset definitions to SSRS Reports and report fields.</td></tr><tr><td>Stored Procedure Dataset → Report Lineage</td><td>Lineage from stored procedure datasets to Reports and report fields when result columns can be resolved.</td></tr><tr><td>Shared Dataset → Report Lineage</td><td>Lineage from Shared Datasets to Reports that reference the datasets.</td></tr><tr><td>Report Parameter → Dataset Field Lineage</td><td>Lineage between Report Parameters and associated Dataset Fields.</td></tr><tr><td>Direct Report-field Mapping</td><td>Direct field mappings such as <code>Fields!Column.Value</code> are traced from dataset fields to report fields or visual elements.</td></tr><tr><td>Backend Table / View → Dataset → Report → Report Field Lineage</td><td>End-to-end lineage from backend Tables and Views through Datasets and Reports to report fields.</td></tr><tr><td>Multi-data-source Report Lineage</td><td>Lineage across Reports that reference multiple data sources when all referenced databases are onboarded and crawled.</td></tr><tr><td>File-based RDL / Shared Dataset Processing</td><td>Lineage processing for standard SSRS RDL and Shared Dataset exports when the required metadata is available.</td></tr><tr><td>Report Field → Visual Element Lineage</td><td>Lineage from report fields to supported Textboxes, Tablix cells, Charts, and other report elements.</td></tr><tr><td>Report Parameter Lineage</td><td>Lineage from supported Report Parameters to associated Dataset Fields.</td></tr></tbody></table>

{% hint style="info" %}
Lineage extraction depends on available RDL and Shared Dataset metadata, crawled backend database objects, SQL parsing, stored-procedure result-set resolution, and supported report-field mappings.
{% endhint %}

## Partial or Limited Coverage

Certain SSRS scenarios provide partial lineage coverage because expression logic, stored-procedure result sets, report navigation, or report-element metadata may not provide enough information for complete lineage resolution.

### Scenarios

<table data-search="false"><thead><tr><th width="201">Scenario</th><th width="327">Limitation Description</th><th width="286">Recommendation / Workaround</th></tr></thead><tbody><tr><td>Aggregate Expressions</td><td>Source fields are traced, but aggregation logic remains represented in the raw expression rather than as a fully decomposed transformation.</td><td>Validate aggregate transformation logic separately where expression-level lineage is required.</td></tr><tr><td>Multi-field / Derived Expressions</td><td>Referenced fields are linked individually, but the combined transformation is not decomposed into a detailed expression-level lineage path.</td><td>Validate complex derived expressions manually where required.</td></tr><tr><td>Stored Procedures with Dynamic Result Sets</td><td>Stored procedures with dynamic or unknown result sets may not provide complete source-column resolution.</td><td>Validate stored-procedure result schemas manually where required.</td></tr><tr><td>Sub Reports / Drill-throughs</td><td>Sub reports and drill-through relationships are inventoried, but parent-to-child lineage is not automatically propagated.</td><td>Validate parent-to-child report dependencies manually where required.</td></tr><tr><td>Chart / Gauge / Tablix Grouping Expressions</td><td>Grouping and series expressions are available for diagnostic purposes but are not converted into lineage edges.</td><td>Validate grouping and series dependencies separately where required.</td></tr><tr><td>File-authenticated RDL / RSD Parsing</td><td>Parsing provides best-effort coverage for malformed or non-standard RDL/RSD exports.</td><td>Use standard RDL/RSD exports where possible and validate affected lineage manually.</td></tr><tr><td>Stored Procedure Result Columns</td><td>Result-column lineage can vary when the stored procedure does not expose a stable result schema.</td><td>Ensure a resolvable result schema is available and validate affected mappings manually.</td></tr></tbody></table>

{% hint style="warning" %}
Complex expressions, dynamic stored-procedure result sets, sub reports, drill-throughs, grouping expressions, and malformed or non-standard RDL/RSD files may reduce lineage completeness and column-level accuracy.
{% endhint %}

## Unsupported Scenarios

The connector does not support lineage extraction for runtime-generated SQL, custom VB.NET code, automatic parent-to-child parameter propagation, or execution-log-based lineage.

### Unsupported Lineage

<table><thead><tr><th width="210">Not Supported</th><th width="354">Description</th><th width="278">Recommendation / Workaround</th></tr></thead><tbody><tr><td>Dynamic SQL</td><td>SQL constructed through string concatenation or expression-built <code>CommandText</code> is not resolved for lineage extraction.</td><td>Use statically defined SQL where possible and validate dynamic dependencies manually.</td></tr><tr><td>Custom VB.NET <code>&#x3C;Code></code> Functions</td><td>Custom VB.NET code functions are not parsed for lineage extraction.</td><td>Validate dependencies introduced through custom code separately where required.</td></tr><tr><td>Automatic Parent → Sub report / Drill-through Parameter Propagation</td><td>Parameter propagation between parent Reports and Sub Reports or drill-through Reports is not automatically represented as lineage.</td><td>Validate report navigation and parameter dependencies separately.</td></tr><tr><td>ExecutionLog3-based Lineage</td><td>Usage or audit-log-based lineage from <code>ExecutionLog3</code> is not part of the active lineage pipeline.</td><td>Use metadata-based lineage for supported SSRS dependencies and review execution information separately where required.</td></tr><tr><td>Custom Code / Expressions without Dataset Field Reference</td><td>Expressions that do not reference a Dataset Field are not resolved into source-column lineage.</td><td>Validate custom expression dependencies manually where required.</td></tr></tbody></table>

{% hint style="info" %}
Unsupported scenarios do not generate complete lineage and may result in missing or disconnected lineage relationships within lineage visualization.
{% endhint %}

## Current Functional Status

This section outlines the current lineage capabilities and coverage of the Microsoft SQL Server Reporting Services connector.

<table data-search="false"><thead><tr><th width="220">Status Area</th><th>Details</th></tr></thead><tbody><tr><td>Overall Coverage</td><td>Production-ready coverage across core SSRS static SQL and stored-procedure dataset scenarios, Shared Datasets, Reports, report fields, and supported visual elements.</td></tr><tr><td>Lineage Depth</td><td>Backend table- and column-level lineage through Datasets to Reports, report fields, Textboxes, Tablix cells, and Charts.</td></tr><tr><td>Supported Inputs</td><td>Reports, Chart objects, Report Fields, Textboxes, Tablix cells, backend Tables and Views, Stored Procedures, Shared Datasets, Report Parameters, Inline SQL Datasets, and RDL/RSD metadata.</td></tr><tr><td>Functional Scope</td><td>End-to-end lineage from backend database Tables and Views through SQL or stored-procedure Datasets to SSRS Reports and report visual elements.</td></tr><tr><td>Transformation Support</td><td>Direct field bindings and Report-Parameter-Derived Columns are supported. Aggregate, multi-field, derived, and stored-procedure result-column transformations have partial coverage.</td></tr><tr><td>Limitation Areas</td><td>Aggregate and multi-field expressions, dynamic stored-procedure result sets, Sub Reports, Drill-throughs, grouping expressions, and non-standard RDL/RSD files have partial coverage.</td></tr><tr><td>Unsupported Areas</td><td>Dynamic SQL, custom VB.NET <code>&#x3C;Code></code> functions, automatic parent-to-child parameter propagation, execution-log-based lineage, and custom expressions without Dataset Field references are not supported.</td></tr><tr><td>Resulting Output</td><td>Reliable lineage for the core SSRS workflow from static SQL or stored-procedure Datasets through Dataset Fields to Report Fields and visual elements, with partial or unsupported coverage for dynamic and complex scenarios.</td></tr></tbody></table>

{% hint style="warning" %}
The Microsoft SQL Server Reporting Services connector provides production-ready lineage coverage for the core SSRS scenario of static SQL or stored-procedure Datasets → Dataset Fields → Report Fields and visual elements. Backend Tables, Views, Shared Datasets, Report Parameters, and direct field mappings are supported. Aggregate and multi-field expressions, dynamic stored-procedure result sets, Sub Reports, Drill-throughs, grouping expressions, and non-standard RDL/RSD files have partial coverage. Dynamic SQL, custom VB.NET code, automatic parent-to-child parameter propagation, and execution-log-based lineage are not supported and may require manual validation or lineage supplementation.
{% endhint %}

***

Copyright © 2026, OvalEdge LLC, Peachtree Corners, GA, USA.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ovaledge.com/connectors/connector-repositories/reporting-tool/microsoft-sql-server-reporting-services-ssrs/microsoft-sql-server-reporting-services-lineage.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
