Report Bursting

In a large enterprise reporting deployment, it is important to handle both a large amount of data and a large number of users. Imagine a scenario where a single report such as a monthly statement needs to be delivered to thousands of users. The same queries are run multiple times, taxing the database, and the same report is regenerated for each user to ensure data security.

‘Report Bursting’ is a feature that forces a report to run only once yet provides the appropriate output to each consumer of the report, thus greatly reducing the load on the database and the reporting server, while still ensuring data security. For example, in the case of a monthly statement, one query can be executed to return the data for all users. When the report is distributed to users, it is “burst” into parts, and each user receives a partial report containing only the information pertaining to them. Each user thus receives a report personalized with information relevant to their needs.

report bursting chart

Implementing Report Bursting

The are two stages to implement ‘Report Bursting’:

  1. Create a report with customized bursting settings.
  2. Execute the report to generate with the full data set.

The next section explains the first stage, creating a report with customized bursting settings. The second stage, executing the report, is performed through the Enterprise Manager.

Report Partitioning

Report bursting relies on the action of report partitioning, or splitting, a report based on a username (or role)/data value pair. A report can only be partitioned on one data element (table or section). The person designing the report must perform the partition mapping using the Report Designer. Partitions are created by running a query against a live data source and retrieving a list of unique rows, then mapping that data set to another query result set. The users and roles are defined in the Enterprise Manager and cannot be changed in the Report Designer.

You will now implement a simple example report and set its bursting conditions.

  1. Open the Designer and click the ‘New’ button. In the ‘Create Report’ dialog box select ‘Blank Tabular Report’ and click ‘OK’.
  2. Click the ‘Table Wizard’ button to open the ‘Data Binding’ dialog box for a new table.
  3. Under the Data tab, bind the table to the ‘All Sales’ query from the ‘Orders’ data source.
  4. In the Grouping & Summarization tab, specify grouping by ‘Employee’ and summarization by ‘Total’.
  5. Select File → Bursting to open the ‘Report Bursting’ dialog box. Select the checkbox ‘Enable Report Bursting’ and use the drop down list to select ‘Table1’ as the partition element. Select ‘Employee’ as the ‘Partition Column’.
  6. Click on the User tab. In the ‘User Mapping’ panel, open the ‘Query’ menu and select the ‘Sales by Employee’ query (under the ‘Orders’ data source). This query returns the names of each user that we will filter data for and burst the report to. This mapping may also be created for roles with a query that returns role names. Select ‘First Name’ as the ‘User’. This is the column that returns the user names to filter on. In the ‘Data Mapping’ pane select ‘First Name’ as the ‘Employee’ value. Similar settings can be used in the Role tab to perform role mapping.
  7. Click on ‘OK’ to save the bursting settings. Save the report and use the ‘Deploy’ feature (reached from File → Deploy, see Deploying a Report from the Designer for more details), naming the report “Bursting Example”, to ensure that the report is available in the Web Viewer. This completes the first phase of implementing ‘Report Bursting’.
Read how InetSoft was rated #3 for implementation in G2 Crowd's user survey-based index.