You are here: Reference > Rule types > Report Definitions > More about Report Definitions

More about report definition rules

  1. About 
  2. New 
  3. Query 
  4. Chart 
  5. Report Viewer 
  6. Data Access 
  7. Parameters 
  1. Pages & Classes 
  2. History 
  3. More... 

About the pxRetrieveReportData activity

Use the Rule-Obj-Report-Definition.pxRetrieveReportData activity to run the retrieval and sorting operations, but not the formatting and display processing, of a report definition.

Parameters

Specify both key parts of a report definition.

Parameter

Description

pyReportClass Select the Applies To key part of a report definition. This might identify an internal class or class group, or an external class.
pyReportName Select the Purpose key part of a report definition.
pyPageName Optional. Specify the name of the clipboard page that holds the report results. If you do not specify a name, the results are included in the default Code-Pega-List page called pyReportContentPage.
pyReportParamPageName
Optional. Use this parameter to override the columns returned by the report. This parameter enables you to add or remove the columns that the report returns. You can also change the sorting order of these columns.

This parameter is of class Embed-QueryInputs. The page structure is like the following example:

Embed-QueryInputs page structure

<? xml version="1.0" ?>
<pageData>
     <pxObjClass>Embed-QueryInputs </pxObjClass>
     <pyListFields REPEATINGTYPE="PageList">
               <rowdata REPEATINGINDEX="1">
                      <pxObjClass> Embed-ReportListFields </pxObjClass>
                      <pyFieldName>.pyLabel</pyFieldName>
                      <pyPrefix>PCO</pyPrefix>                                                           <pySortType>ASC</pySortType>
                      <pySortOrder> 1 </pySortOrder>
                </rowdata>
     </pyListFields>
     <pyMaxRecords>Maximum no. of records to fetch</pyMaxRecords>
     <pyPagingSettings>
     <pxObjClass>Embed-PagingSettings</pxObjClass>
     <pyPageIndex>Page Number</pyPageIndex>
     <pyPageSize>Records per page</pyPageSize>
     <pyPagingEnabled>True/False<pyPagingEnabled>
  </pyPagingSettings>
</pagedata>

Results

The system uses rule resolution to find the report definition and run it, but does not produce any HTML output display. The selection criteria of the report definition rule and the sorting requirements (recorded on the Design tab) are converted to an SQL query that is sent to the PegaRULES database.

The database results are organized into a results page of class Code-Pega-List. The name of this page is the value you provided for the pyPageName parameter.

Each embedded page contains the properties listed on the Design tab. If the Maximum Number of Rows to Retrieve field on the Data Access tab is not blank, the activity returns at most the number of embedded pages specified in the Maximum Number of Rows to Retrieve field.

However, if report paging is enabled on the User Interactions tab, only the rows for the first page are returned.

Performance

This method can return thousands of database rows and create large clipboard pages. To minimize any impact to performance, retrieve only the rows (instances) and columns (properties) that you need.

Other ways to run reports

The pzOpenAndRunReport activity runs a report definition.

You can use the <pega:chart> JSP tag to embed a chart created by a report definition in a section.

Displaying the results of a report definition report in a grid layout

You can display the results of a report definition in a grid layout within a section. The section can be referenced in a flow action or harness.

To add the layout, either drag and drop a report definition from the Application Explorer onto a section, or create the layout in the section and specify the report definition as the data source in the grid's repeating area. In the grid layout, use SmartPrompt to select Column Name values to define the grid's columns.

You can specify joins in the grid. The presentation is determined by the grid layout settings, not the report definition settings. Grid report rows are read-only and cannot be re-sorted.

Limitations for reporting on unoptimized properties

Whenever possible, optimize the properties that you use in reports. Reporting on unoptimized properties causes a performance drain on the system. Reports that use unoptimized properties in filters or selects result in a warning message in the Report Editor or the report definition. Reports that have a join filter with unexposed properties result in a run-time error.

Viewing the Java code of a rule

Click Actions > View Java to view the generated Java of a rule. You can use the Java code to debug your application or to examine how rules are implemented.

Unoptimized decimal and double properties on Microsoft SQL Server

On Microsoft SQL Server has a size limitation for the value that a report definition can report on using the Calculation Builder to get values out of the BLOB (that is, from an unoptimized property). If a value is greater than precision 18, scale 6, Microsoft SQL server returns an error.