Back Forward Flow form
Editing the Split-ForEach shape properties

About Flow rules

Purpose

The Split-ForEach task provides a form of searching or enumeration over the pages in a property. Use a Split-ForEach shape to iterate over the pages of a Page List or Page Group property. For each page, you can conditionally start a flow execution for the work object.

Processing in the original flow pauses while the subflows execute. Processing in the original flow can resume after all the subflows complete, or after the any one of them completes. For an example, see the standard flow Work-.StandardApprovalsAll or similar "approvals" flows.

NoteYou can't use the Split-ForEach shape to create work objects. At runtime, this shape process the work object's embedded Page List or Page Group properties; the embedded pages must exist before the Split-ForEach shape is reached.

Adding a Split-ForEach task to a flow

1. Select and drag the Split-ForEach shape (zzz) to any location in the flow.

2. Complete the Split-ForEach Properties fields as follows:

Field

Description

Name

Enter a text name for this Split-ForEach shape . Choose a name meaningful to application users who see this on the work object history display, the breadcrumbs control (for entry points), and the Where-Am-I? diagram. For example, BeginContractProcessing or Find Nearest Branch Office.

The task name is only descriptive; it does not affect runtime execution of the flow. This name also appears inside the Split-ForEach shape on the Diagram tab.

Join

Select Any, All or Iterate. Choose:

  • Any to cause processing in this flow execution to resume after any one of the split subflows completes. At that time, processing of the other split subflows — which have not completed — stops. Open assignments for these subflows are cancelled. (If you choose Any and at runtime one flow execution ends before some others are started, the others are not started.)
  • All if the current flow is to resume only when all the split flows complete and return.
  • Iterate to spawn flows for elements of the Page Group or Page List property one-by-one, testing conditions you list below to determine whether to continue.

CautionIf you choose Iterate, execution of the subflows must not alter the index values in the Page Property value, to prevent unreliable results. For example, if an activity in the subflow started for the fifth element of a Page List deletes the first element of the Page List, the original sixth element (now fifth) may be unintentionally skipped.

Note When used in a screen flow, there is no Join option in a Split-ForEach task. The only processing mode is Iterate. The conditions When and Abort Iterations are not available. A Page Group property used in a screen flow Split-ForEach task is processed in an indeterminate order and all pages are shown. Therefore, Page Group-specific iteration settings are not available; that is, you cannot determine a different order as you can in a regular flow.

Page Property

SmartPromptIdentify the property of mode Page List or Page Group that is the basis of the split.

Class

SmartPromptIdentify the class of the embedded pages. Usually, this value does not usually need to be altered as the class appears when you enter Page Property.

Flow Type

Select Regular or Screen Flow, whichever applies to the subflows.

When

SmartPromptOptional. Select a when condition rule. The system uses the class of the embedded page as the Applies To key part of the when condition rule. At runtime, it evaluates this when condition rule once for each page of the property in the Page Property field, and a starts a subflow for any page for which this rule evaluates to True. (For Iterate, additional tests are applicable.)

For example, you can use this field to start subflows only for subscript values "OH" and "VA" of a Page Group property that uses state codes as subscripts.

Flow Rule

SmartPromptSelect a flow rule (the second key part) for the Foreach over an embedded page list. At runtime, the system uses the value in the Class field to find the flow rule.

Parameters

If the flow accepts parameters, click the plus sign to access and complete values for the parameters.

Abort iterations when?

SmartPromptOptional. This field appears only when you select Iterate in the Join field. Select a when condition rule. The system uses the class of the parent flow as the Applies To key part of the when condition rule.

If this field is not blank, at runtime the system evaluates this when condition rule once for each page of the property in the Page Property field. If false, no additional flow executions are started and the flow is resumed.

For example, you can use this field to start subflows only when a top-level work object property was set to 6 or less, where the subflow executions contain assignments recording committee member votes, and 6 yes votes count as a majority.

PageGroup Iterations

zzzOptional. This array and the Remaining Pages field appear only when you select Iterate in the Join field. If the Page Property field identifies a Page Group property, you can specify subscript values and the order in which the subflows are started.

For example, if the subscripts correspond to United States state codes, you can specify that subflows are to be created for ME (Maine), NH (New Hampshire) and VA (Virginia), in that order, and not for the remaining 47 states.

Order is significant. If the subscript is present in the Page Group, subflows are started in the order listed.

Subscript Order

Optional. Enter the literal text of (or an initial portion of) a subscript value that may be present in the Page Group property at runtime. For example, enter M to match the eight state codes ME, MA, MO, MT, MS, MD, MN, and MI.

At runtime, a subflow is started, one at a time, for each match of the first row. Then a subflow is started for each match of the second row, and so on. (This requires repeated scanning of the pages in the group to access subscript values.)

Exact Match?

If the Subscript Order field is not blank, select to require an exact match. For example, the value M does not exactly match any state code.

Remaining Pages?

If the Page Group Iterations array is not blank, select to indicate that a subflow is to be started for any subscript value not yet selected (subject to the Abort Iterations when? result.)

For example, if the subscript values correspond to state codes and the array contains the single character M (without exact matching), select this box to create subflows for each of the remaining 42 states (in an unspecified order) after creating subflows for the eight states that match M.

Audit Note

Optional. Text you enter here appears in the history of the work object, recording the subflow started by this Split-ForEach task. (If you selected Iterate for the Join field, the history is written for each iteration over the work object, even if subflows were started only for some.)

NoteWhen you plan to localize the application so that it can support users in various languages or locales, choose the text carefully and limit text length to 64 characters. A field value rule with this text as the final key part is needed for each locale. When practical, choose a caption already included in a language pack to simplify localization. See About the Localization wizard.

Entry Point?

Select to indicate that this Split-ForEach shape is an entry point, which provides a navigation link for that step. The links appear after you complete a step. For example, after you complete Step A and go to Step B, a link appears to Step A. Links are displayed according to the type of harness you use:

  • Links in a Perform harness or a screen flow harness display as a breadcrumb trail.
  • A tree navigation screen flow harness displays tree nodes.
  • A tabbed screen flow harness displays a tab.

If you click a navigation link for the Split-ForEach shape, you return to the first step (assignment) and the split runs again. You can click the links in the tree and breadcrumb harnesses to return to any step (subflow) within the flow.

zzzTabbed and tree harnesses require that Entry Point? be selected.

By default, the box is cleared.

Only going back?

Optional. This check box appears only when you select the Entry Point? check box for the Split-ForEach shape. If selected, users cannot click the Split-ForEach shape's tab or tree node until they have reached it or passed it. Users cannot jump forward to this step.

NoteIf you enable jump-forward in your tabbed or tree harness, then configure the last flow action in the screen flow to provide comprehensive validation, in case steps were skipped.

TipFor maximum user flexibility, leave this check box unselected if your flow accepts inputs in any order. However, this approach is typically not workable for flows that contain fork and decision shapes, or that have intermediate tasks that are not entry points.

Note The setting is applicable only to tabbed and tree screen flows.
Subflow Entry Points?

In a regular flow, this field appears only when you select Iterate in the Join field. Select to allow users to return to the entry points within the Split-ForEach subflows using the breadcrumbs control, or clicking a tree-harness node from a completed subflow or the standard flow action -Work.Previous.

For example, assume that a Split-ForEach task calls a flow containing two assignments ("Review" and "Approve) and the Page List has three entries. The label property is set to .myString and that the values of .myString on each page of the Page List are pg1, pg2, and pg3. Then the breadcrumbs appear as:

pg1 -Review - Approve - pg2 - Review - Approve — pg3 - Review - Approve.

zzzTabbed nodes and tree harnesses require Subflow Entry Point? to be selected.

By default, the box is cleared.

Label Property

This field appears only when you select the SubFlow Entry Points? check box. Enter the property for the navigation labels used on subflow tab headers or tree nodes.

3. Click  Apply  .

4. Connect at least one incoming connector to the Split-ForEach shape. Connect one outgoing connector from the Split-ForEach shape.

Notes

To edit these shape properties after you save the Flow form, open the Diagram tab, right-click the shape, and select the Edit tab on the pop-up window.

At runtime, the standard function rule AddFlow() is called for each page in the Page List property, and limits this to a maximum of 500 new flows. This limit is imposed to detect and trap possible infinite loops. If required by your applications, you can increase or decrease this limit. See More about Flow rules.

zzz About Flow rules