SSRS report time out issue and how to solve it using x++ in D365FO

Why time out issue occurs:

Microsoft SQL Server Reporting Services (SSRS) generates reports by getting data from the Application Object Server (AOS) using a custom extension with Windows Communication Foundation (WCF). The time it takes to display a report depends on the size of the data set and the complexity of the report. Sometimes, report generation might fail due to time-outs and other limits. In current deployments, interactive connections are limited to 10 minutes. If generating a data set takes longer than this, it won't finish.

This article explains the extensions that allow long-running reports to be generated even if they take more than 10 minutes, ensuring that these reports can be completed without being interrupted by the time-out limit.

we have different types of RDP extension classes.

  1. SrsReportDataProviderBase.

  2. SrsReportDataProviderPreprocessTempDB.

  • Initialization of Reporting Services: Initially, the reporting services are invoked to initiate the report generation process.

  • Data Preparation by AOS Services: Subsequently, the Application Object Server (AOS) services within D365FO prepare the required data by inserting it into designated report tables. This step involves retrieving and organizing the necessary data sets according to the report's specifications.

  • Data Filtering and Rendering: Once the data is prepared and ready for presentation, the reporting services commence the rendering process. This involves filtering the retrieved data based on the report parameters and layout specifications and then rendering the filtered data into the final report format.

SrsReportDataProviderBase:


When utilizing the class for generating reports with extensive transaction data, such as weekly or monthly reports, it's crucial to consider potential challenges related to processing times. Given the substantial volume of data involved, the processing by the Application Object Server (AOS) services might extend beyond the default timeout period for reporting services. Consequently, there's a risk of reporting services being interrupted due to timeouts, leading to incomplete report generation.

we can see the flow how services will initialize..

SrsReportDataProviderPreprocessTempDB.

When employing the class for report generation, the workflow is optimized to address potential timeout issues with larger volume reports. Initially, the data preparation process is triggered based on user selections. Once the data is prepared, the reporting services then commence initializing the report design and rendering. By leveraging the capabilities of the class as an extension, this approach ensures that the report generation workflow is structured to handle larger volumes of data efficiently, mitigating the risk of timeouts and facilitating uninterrupted generation of comprehensive reports.

we can see the flow how services will initialize..

In summary, while both statements address challenges related to processing times in report generation, the first statement suggests that using the class as an extension can effectively resolve timeout issues for large volume reports, offering a structured solution to ensure uninterrupted report generation.

Sohan Prasad Kanti

Senior Technical Consultant - ERP @ UNIFY Dots, Microsoft Dynamics 365 Finance & Operations

1y

This is quite useful! I did face report timeout issues due to the dataset taking time to prepare. Using the Pre processing classes fix this issue

Like
Reply

To view or add a comment, sign in

Others also viewed

Explore topics