Back Forward Activity form
Completing the Steps tab — Iteration

About Activity rules

zzz Show all 

Theimage/img00023.gif icon on the Steps tab identifies the iteration column. Use iterations to repeat a step or a contiguous sequence of steps a number of times, or until a condition is met. You can iterate over the elements in an aggregate property — a Value List, Value Group, Page List, or Page Group.

This feature provides a limited form of enumeration or looping, similar to the "repeat until" or "do while" or "repeat from X to Y" structures of programming languages.

TipIn a child step within a multistep iteration, right-click to access a context menu. You can copy, cut, or paste child steps within the same iteration.

zzz Repeating a single step using the iteration box

When a step row is not selected, a zzz indicates that this step is iterated. When a step row is selected, clickzzzto add an iteration or thezzzto access the details of the iteration. Use this selection box to indicate whether and how to repeat the step. You can cause the step to repeat a specific number of times, or until a specific result is reached.

Use the Iteration Box to apply the step to more than one page or object. Select:

To exit the iteration before processing all elements in the iteration, complete a transition that is true after the last desired element is processed.

TipWhen processing the For Loop or iterating over a Value List or Page List property, the parameter param.pyForEachCount holds the current iteration number. You can examine (but not alter) this value in the step. For example, to iterate only over the first ten pages or values, you can exit the iteration when pyForEachCount is greater than 10.

TipIf the body of the iteration requires more than one step to code, create an activity and call the activity in the iterated step. Select the Pass current parameter page? box to share the parameter page of the current activity with the called activity.

zzz For Each Page

Select the For Each Page option to sequence through all pages of a specified class or classes and perform a method or instruction for each page. Leave the Step Page field blank. Each time the step repeats, the step's page changes.

For the optional Valid Classes parameter, enter a class or classes. (Click the Add Row icon Add Rowbeneath the Valid Classes box to add more than one class.)

When Valid Classes is not blank, iteration processing skips over any page with a class that does not appear on the list, or is not derived from one of these classes.

zzz For Each Embedded Page

Use For Each Embedded Page option to apply a method or instruction to each embedded page in a Page List or Page Group property. Use the iteration choice to specify processing that is to occur for each embedded page. For example, you can:

and so on.

Identify the property containing the embedded pages in the Step Page field. The SmartPrompt list for the Step Page field shows only Page List and Page Group properties.

For the optional Valid Classes parameter, enter a class or classes. (Click the Add Row icon Add Rowbeneath the Valid Classes box to add more than one class.)

zzz For Each Element in a Value List

Select the For Each Element in a Value List option to repeat the step for each element in a Value List property.

Each time the step repeats, the system applies a method or instruction of your choice (such as Property-Set) to the current property. Use the <current> index value to refer to the current property element.

When you select this iteration form, a Property Name field appears. Identify the Value List property in the Property Name field.

zzz For Each Element in a Value Group

Select the For Each Element in a Value Group option to repeat the step for each element in a Value Group property.

When you select this iteration form, a Property Name field appears. Identify the Value Group property in the Property Name field.

Each time the step repeats, the system applies a method or instruction of your choice to the current property. Use the <current> index value to refer to the current property.

zzz For Loop

Select the For Loop option to repeat the step a number of times determined by the values of integer constants or integer properties.

Enter integer constant values or integer property references for the Start, Stop, and Increment fields.

For Loop

The system accesses these three values once before starting the iteration. The iteration may occur zero, one, or many times, repeating until the incremented value is greater than or equal to the stop value (unless a transition causes processing to end earlier).

zzz Understanding <CURRENT>

The symbolic reference <CURRENT> may be used only in the activity step that defines the iteration. If that step calls another activity, the symbolic reference <CURRENT> cannot be used in the called activity; rather, aspects of the current iteration are available on the parameter page of the called activity:

Up Multistep iterations

The scope of an iteration can be more than one step. The iteration type and conditions are set in the first step of a multistep iteration.

To create a multistep iteration:

  1. Identify the step that is to be first in the iteration. Click in the iteration column image/img00023.gifto access the Iteration area, and complete the iteration details. The zzz appears in the iteration column.
  2. Complete information for the first step. Identify the step page. Optionally, you can leave the method blank.
  3. Click Add Child Step (Append). The current step is renumbered as NNN.0, where NNN was the previous step number. The form changes to include a new later step NNN.1. The scope of the iteration is now both NNN.0 and NNN.1. This zero-numbered step is known as the parent step.
  4. Complete NNN.1, a child step. Leave the Step Page field blank and the iteration criteria blank in most cases, to have the child steps operate on the step page identified in the parent step. Optionally, you can override this step page of a child step by entering one of the following:
  1. To create an iteration of more than two steps, click within the parent step NNN.0 again to make it active, and click the Add Child Step icon ( Append) again.

Numbered child steps are executed in sequence NNN.0, NNN.1, NNN.2 ... then NNN.0 again, until the iteration ends or a transition causes a jump to a labeled step.

NoteTo convert an iteration sequence to comments, enter two slash characters // in the Label field of the parent step. The parent and all child steps become comments.

NoteYou can't jump from outside a multistep iteration to any step within the iteration (except to the starting — parent — step). You can jump from any step in an iteration (parent or child) to a higher-numbered step (that is not within any iteration).

For an example of multistep and nested iterations, see the Pega Developer Network articlePDN PRKB-25610 How to use multistep loops and nested loops in activities.

Up Nested iterations

By using the Add Child Step icon ( Append) on a child step numbered NNN.Z, you can create a nested iteration.

For example, clicking a child step numbered 14.8 converts this to 14.8.0, and inserts a second-level child step numbered 14.8.1. Complete the iteration conditions for step 14.8.0.

Use care in entering the Step Page for the parent step of a nested iteration (14.8.0 in this example). If you refer to an aggregate property (Value Group, Value List, Page Group or Page List), select a property that reside on the <CURRENT> step page of the parent's parent. (That is, the structure of the iteration must follow the structure of the page).

NoteFrom within a nested iteration, you can jump (using a transition) to a labeled step that is within an outer iteration but higher numbered. You can jump from 14.8.9 to 14.10 or 17, but not from 14.8.9 to 14.3.

zzz Restrictions

If a step is part of an iteration sequence, the method cannot be any of the following:

Connect-Java

Obj-Open

Obj-Open-By-Handle

Obj-Sort


Page-Change-Class

Page-Merge-Into

Page-New

Page-Validate

RDB-Open

zzz Parameters available to called activity

Process Commander automatically adds the following parameters to the parameter page of a called activity with a step that contains an iteration. (These parameter values are not available to other methods in an iteration step.)

zzz About Activity rules