In this example, the implementation for iterating over a Page List in Pega 7 Data Transform is described. A data page that uses a Page List structure is used as an example. See this example on how to create a data page using the Data Table Wizard. The page list data page is backed by a data table of car makes and is used here to show how to iterate over its entries in a data transform.
- Sort Dropdown Options with Data Transform in Pega 7.1.9
- Group Dropdown Options with Data Transform in Pega 7.1.9
- Example of Cascading Drop Downs in Pega 7
- Pega 7 String Manipulation with Expressions and Functions
- Description of Data Table for Class ABC-Insurance-Data-Make Used in this Example
- List Data Page for ABC-Insurance-Data-Make Rule Instances
- Creating a Data Transform for Iterating over the Data Page
1 Data Table for Class ABC-Insurance-Data-Make
- The screen shot below shows an example of a Data Table. In this case, the rows represent car makes. See the link under Related Posts on how the data table was created.
- The data table contains instances of the class
ABC-Insurance-Data-Make. This class has the properties
IDis a unique identifier (Key) and the
pyLabelproperty contains the actual car make values.
2 List Data Page for ABC-Insurance-Data-Make Rule Instances
- The below screen shot shows the configuration of a list-structure data page named
D_Makes. Its purpose is to store a list of car makes. The Data Page Definition section is configured as follows:
- Node scope causes the data page to be available to all users on a node (i.e. it will be loaded once per PRPC node).
- The Data Table Wizard creates a default Report Definition. Here it is named
dataTableListReportand it returns all rows in the underlying data table.
- The data page can be unit tested by clicking on Actions > Run.
- The XML of the data page will be shown and the node
pxResults(a PageList) will contain all of the rows in the data table.
- After running the data page once, it will appear in the Clipboard Tool under Data Pages > Node.
- Due to its Node scope, the data page
D_Makeswill remain on the clipboard until the PRPC instance is restarted or the data page is deleted using the Designer Studio or the Clipboard Tool is used to delete it (see the Actions button in upper right-hand corner).
3 Creating a new Data Transform for Iterating over the Data Page
- In Designer Studio, create a data transform using +Create > Data Model > Data Transform.
- The Data Transform Record Configuration form requires the user to enter a name, here it is
IterateOverMakesand to select an Apply to class. Here, the class is
- Click on the Create and open button to create the data transform rule.
- On the Parameters tab, an output parameter named
MakeStringof data type String is defined.
- It will be used to return a comma-separated String of car makes that is created by the data transform while it iterates over the data page
- On the Pages & Classes tab, the data page
D_Makesneeds to be listed with a class of
- The class
Code-Pega-Listhas a page list property named
pxResultswhich holds instances of the object type specified when the data page was configured. Here the object type is
- Specify the class of
D_Makes.pxResultsas shown below.
- On the Definition tab, the first row will use the action For Each Page In to iterate over the
- The checkbox
Also use each page as source contextin the Source column should be checked so that the
.dot operator can be used to refer directly to the current page of the iteration instead of having to use
- In the second row,
param.MakeStringis concatenated with the
pyLabelproperty of the current
- The third row uses a simple expression to remove the last comma in the comma-separated string after the iteration. The complete expression is:
- Save the data transform and open the Tracer. Make sure that the check boxes for Start and End for data transforms under the section Events to Trace are checked.
- The data transform can be unit tested by selecting Actions > Run and then clicking on the Execute button in the new window. Note: Make sure that the Tracer is running before executing the data transform.
- A new window opens and shows XML output from executing the data transform. The
pzStatuswill contain the value
validif the exeution was successful.
- Switch to the Tracer window and search for the row where the event type shows Data Transform End and click on that row.
- A new window opens, showing the properties of the test page that was created for running the data transform. Click on the link
=unnamed=link of the Parameter Page Name property in the
- This will open the
TraceEvent[=unnamed=]page, showing the output parameter named
MakeStringwhich was set by concatenating the car make values while iterating over the data page
D_Makesto generate a comma-separated String value of the car makes.
- The page also shows some Pega out-of-the-box properties, prefixed with
- In the below screen shot, a property named
pyForEachCountwith a value of
8is shown. This is the number of iterations that were executed by the For Each Page In data transform action (i.e. the number of items in the D_Makes.pxResults list).