Reporting in Pega enables you to retrieve, filter, and visualize application data to extract meaningful insights and support data-driven decisions. Reports help business users analyze case progress, operational performance, and overall application behavior.
A Report Definition is a rule in Pega that retrieves, filters, and displays application data from the Pega database. It is the foundation of reporting in Pega and provides business users with the ability to generate list reports and summary reports.
Definition: Columns define which properties (fields) to include in the report.
Scenario: Display a list of loan applications with the following details:
| Property | Column Header |
|---|---|
| LoanID | Loan ID |
| CustomerName | Customer Name |
| LoanAmount | Loan Amount |
| LoanStatus | Status |
| SubmissionDate | Submission Date |
Steps to Add Columns:
Sorting: Arrange rows in ascending or descending order based on a column.
Grouping: Combine rows that share the same value into a single group.
Scenario: Group loan applications by their status (e.g., Approved, Pending, Rejected) and sort them by submission date.
| Loan Status | Loan ID | Customer Name | Submission Date |
|---|---|---|---|
| Approved | 001 | John Doe | 2024-06-01 |
| Approved | 002 | Mary Smith | 2024-06-02 |
| Pending | 003 | Alice Johnson | 2024-06-03 |
Steps to Configure Sorting and Grouping:
Filtering: Apply conditions to limit the data retrieved by the report.
Condition: SubmissionDate >= "2024-06-01"
Steps to Add Filters:
SubmissionDate>="2024-06-01".Requirements:
Create Report Definition:
Add Columns:
Add Filters:
LoanStatus = "Approved".SubmissionDate >= "2024-06-01".Add Sorting:
SubmissionDate.Save and Run:
| Loan ID | Customer Name | Loan Amount | Status | Submission Date |
|---|---|---|---|---|
| 001 | John Doe | $50,000 | Approved | 2024-06-01 |
| 002 | Mary Smith | $75,000 | Approved | 2024-06-02 |
| 004 | Chris Lee | $30,000 | Approved | 2024-06-04 |
To ensure that reports run efficiently and perform well, follow these optimization techniques:
Use Indexed Columns:
SubmissionDate for faster filtering.Limit Data Retrieval:
Fetch Only Required Columns:
Avoid Complex Filters:
Monitor Report Performance:
Pega provides three main types of reports:
These reports allow business users and developers to present data in both detailed and aggregated formats, including visualizations like charts and graphs.
A List Report displays data in a tabular format, showing records in rows and columns. It is ideal for presenting detailed, itemized data from the database.
Scenario: Display all loan applications with their details.
Fields to Display:
Filters:
Steps to Create the List Report:
LoanStatus = "Pending".Result:
| Loan ID | Customer Name | Loan Amount | Status | Submission Date |
|---|---|---|---|---|
| 003 | Alice Johnson | $40,000 | Pending | 2024-06-02 |
| 005 | Tom Harris | $30,000 | Pending | 2024-06-03 |
A Summary Report aggregates and organizes data using functions like SUM, AVG, MIN, MAX, and COUNT. It is ideal for analyzing trends and high-level summaries.
Aggregation Functions: Perform calculations on numeric data:
Group By: Group data by a specific field to organize the report.
Drill Down: Allow users to click on aggregated values to view underlying detailed data.
Scenario: Summarize total loan amounts grouped by Loan Status.
Fields:
Steps to Create the Summary Report:
Result:
| Loan Status | Total Loan Amount |
|---|---|
| Approved | $200,000 |
| Pending | $70,000 |
| Rejected | $50,000 |
Charts provide a visual representation of report data, making it easier to analyze trends, compare values, and gain actionable insights.
Bar Chart: Compare data across categories.
Line Chart: Display trends over time.
Pie Chart: Show proportions as slices of a circle.
Column Chart: Similar to bar charts but vertical.
Scenario: Visualize the percentage of loan applications by Loan Status.
Chart Type: Pie Chart
Steps:
Result:
A Pie Chart will visually display these proportions as slices.
| Report Type | Description | Use Case |
|---|---|---|
| List Reports | Displays detailed, tabular data. | View detailed records (e.g., task list). |
| Summary Reports | Aggregates data using functions like SUM. | Analyze high-level metrics (e.g., totals). |
| Charts | Visualizes data using bar, line, or pie charts. | Display trends, comparisons, or proportions. |
Efficient reporting is essential to ensure your Pega application performs well and delivers timely results. Poorly designed reports can lead to slow response times, database overload, and a poor user experience.
Retrieving excessive rows of data can:
Apply Filters:
Filter Example:
SELECT *
FROM LoanApplications
WHERE LoanStatus = 'Approved';
Pagination:
Limit Results:
Fetch Only Required Columns:
Optimized Query:
SELECT LoanID, CustomerName, LoanAmount
FROM LoanApplications;
Scenario: Generate a Loan Report for pending loans.
Report Definitions can be optimized using the following strategies:
Use Indexed Properties:
SubmissionDate and LoanStatus.Avoid Computed Columns:
Minimize Joins:
Aggregate at the Database:
Before Optimization:
After Optimization:
LoanStatus.LoanID, CustomerName, LoanAmount.SubmissionDate.A database index improves query performance by enabling faster data retrieval. Without indexes, the database must scan the entire table, which is time-consuming.
Frequently Filtered Columns:
Sorted Columns:
Foreign Keys:
If a report frequently filters loans by SubmissionDate, add an index:
CREATE INDEX idx_submission_date
ON LoanApplications (SubmissionDate);
Declarative reports use Declarative Indexing to improve performance by precomputing frequently queried data into a separate index table.
Scenario: Generate a report on child cases within parent loan cases.
Monitoring report execution helps identify bottlenecks and optimize performance.
Pega Predictive Diagnostic Cloud (PDC):
Performance Analyzer (PAL):
Log Files:
| Technique | Description | Use Case |
|---|---|---|
| Limit Large Datasets | Fetch only relevant data using filters. | Avoid unnecessary row retrieval. |
| Optimize Report Definitions | Use indexed columns and minimal columns. | Faster execution of queries. |
| Database Indexes | Add indexes to frequently queried properties. | Improve filtering and sorting speed. |
| Declarative Reports | Precompute data into index tables. | Query embedded or complex data faster. |
| Monitoring Tools | Use PDC and PAL to identify slow reports. | Optimize slow-running reports. |
The Business Intelligence Exchange (BIX) is a Pega feature that enables the extraction of application data for external reporting and analytics tools. BIX allows you to export structured data from the Pega database to external systems in formats like XML, CSV, or database tables.
BIX is designed to:
Multiple Export Formats:
Scheduled vs. On-Demand Exports:
Incremental Extraction:
Extensive Filtering:
Integration with ETL Tools:
Here is a step-by-step explanation of how BIX works:
Identify Source Data:
Configure BIX Rules:
Export Data:
Store Data Externally:
Load into Reporting Tools:
Work-LoanApplication).Scenario: A business team wants to analyze loan application data using Tableau for external reporting.
Steps:
Create Extract Rule:
Work-LoanApplicationConfigure Destination:
/data/exports/loanapplications_approved.csv.Schedule the Export:
Load into Tableau:
| Loan ID | Customer Name | Loan Amount | Loan Status | Submission Date |
|---|---|---|---|---|
| 001 | John Doe | $50,000 | Approved | 2024-06-01 |
| 002 | Mary Smith | $75,000 | Approved | 2024-06-02 |
The data can now be visualized in Tableau as charts, graphs, or summary reports.
Incremental Extraction enables BIX to export only the records that have changed since the last extraction. This reduces the amount of data exported and improves performance.
pxUpdateDateTime) in the Extract Rule.pxUpdateDateTime > Last Export Date.Example:
| Feature | Description |
|---|---|
| Formats | CSV, XML, Database Tables |
| Scheduled/Manual | Run exports manually or schedule them |
| Incremental Extraction | Export only new/updated records |
| Integration | Use Tableau, Power BI, or ETL tools |
| Use Cases | External reporting, trend analysis |
We have now completed all key topics in Reporting Design:
pzQueryBuilderA Report Definition in Pega isn't just a user interface configuration — it's a powerful tool that generates SQL queries under the hood via an internal engine called pzQueryBuilder.
The pzQueryBuilder engine translates your visual report configuration (columns, filters, grouping, etc.) into an executable SQL statement targeting the Pega database.
Understanding this helps developers optimize reports by predicting how filters, joins, and aggregates behave in SQL — crucial for performance.
pzQueryBuilder builds the query logic is essential.Although presented as separate types, Summary Reports are actually an enhanced form of List Reports with additional grouping and aggregation features (SUM, AVG, COUNT, etc.).
| Feature | List Report | Summary Report |
|---|---|---|
| Tabular data | Yes | Yes |
| Grouping | No | Yes |
| Aggregation (e.g., SUM) | No | Yes |
Summary Reports can be configured with Drill Down functionality — allowing users to click on a grouped or aggregated value to open a detail-level List Report.
This provides a hierarchical view: from high-level metrics down to individual records.
Summary: “Total loan amount by status”
Drill-down: Click on “Approved” → See all loans with status = Approved
During report execution, data retrieved from the database is loaded into the Clipboard (memory). The Clipboard Analyzer, available in Dev Studio, allows developers to inspect report-related data pages and their structure.
Inspect the output structure of a Report Definition (especially D_ prefixed pages)
Validate whether grouping and aggregation results are structured correctly
Identify performance bottlenecks related to large result sets or unnecessary data fetching
In large-scale applications, you're often asked to diagnose reports that:
Timeout
Return incorrect structures
Overload memory
Understanding how to trace and analyze report execution on the clipboard is key to providing architectural guidance.
While both BIX (Business Intelligence Exchange) and standard extract functions retrieve data, their purpose and implementation differ.
| Feature | Traditional Extracts | BIX |
|---|---|---|
| Use Case | Real-time or UI-driven data export | Scheduled batch export for reporting |
| Format Support | CSV, Excel via UI | CSV, XML, Relational DB |
| Scale | Small to moderate | Enterprise-grade large-scale exports |
| Integration Target | Users or UI download | BI systems like Tableau, Power BI |
| Filtering/Incremental Support | Limited | Extensive filtering + incremental logic |
Nightly data extraction for analytics
External warehousing for historical analysis
Scheduled export to downstream systems
You may be asked to design a reporting strategy for enterprise analytics.
Knowing when to recommend BIX over UI extracts — especially for offline, high-volume, or scheduled integration — is essential.
How can report performance be optimized in Pega applications?
Report performance can be optimized by limiting data retrieval, using indexed properties, and avoiding unnecessary joins.
Efficient report design focuses on retrieving only required columns and applying proper filters. Indexing frequently queried fields improves query speed. A common mistake is using broad queries or unoptimized joins, which increase database load. Additionally, using summary reports instead of detailed ones when appropriate reduces processing time.
Demand Score: 78
Exam Relevance Score: 88
When should a database view be used instead of a report definition?
Database views should be used for complex queries or when integrating large datasets that require pre-processed joins.
Report definitions are suitable for standard reporting needs, while database views handle advanced scenarios with better performance. A common mistake is forcing complex logic into report definitions, leading to inefficiency. Database views allow leveraging database-level optimizations and simplify report configuration.
Demand Score: 75
Exam Relevance Score: 87
How should joins and associations be used in Pega reports?
Joins and associations should be used to combine data from related classes while minimizing performance overhead.
Associations define reusable relationships, while joins retrieve related data dynamically. Designers should limit the number of joins and ensure proper indexing. A common mistake is excessive joining, which slows down queries. Proper use balances data completeness and performance.
Demand Score: 74
Exam Relevance Score: 86
How can complex SQL functions be effectively used in Pega reporting?
Complex SQL functions should be used selectively to handle advanced calculations and aggregations directly in the database.
They improve efficiency by reducing post-processing in the application layer. However, overuse can reduce maintainability and portability. A common mistake is embedding excessive SQL logic, making reports difficult to debug. Proper balance ensures performance without compromising clarity.
Demand Score: 73
Exam Relevance Score: 85