Back Forward Flow form — Editing in Visio
Split For Each shape properties
 

About Flows

Purpose

The Split For Each shape provides a form of searching or enumeration over the pages in a property. Use a Split For Each 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 item.

Processing in the original flow pauses while the subprocesses execute. Processing in the original flow can resume after all the subprocesses 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 For Each shape to create work items. At runtime, this shape process the work item's embedded Page List or Page Group properties; the embedded pages must exist before the Split For Each shape is reached.

Adding a Split For Each shape to a flow

1. Select and drag the Split For Each shape () to any location in the flow.

2. Complete the Split For Each Properties fields as follows:

Field

Description

Name

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

The shape name is only descriptive; it does not affect runtime execution of the flow. This name also appears inside the Split For Each 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 subprocesses completes. At that time, processing of the other split subprocesses — which have not completed — stops. Open assignments for these subprocesses 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 subprocesses must not alter the index values in the Page Property value, to prevent unreliable results. For example, if an activity in the subprocess 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 For Each shape. 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 For Each shape 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 subprocesses.

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 subprocess 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 subprocesses only for subscript values "OH" and "VA" of a Page Group property that uses state codes as subscripts.

Flow Rule

SmartPromptSelect a flow (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.

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 subprocesses only when a top-level work item property was set to 6 or less, where the subprocess executions contain assignments recording committee member votes, and 6 yes votes count as a majority.

PageGroup Iterations

Optional. 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 subprocesses are started.

For example, if the subscripts correspond to United States state codes, you can specify that subprocesses 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, subprocesses 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 subprocess is started, one at a time, for each match of the first row. Then a subprocess 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 subprocess 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 subprocesses for each of the remaining 42 states (in an unspecified order) after creating subprocesses for the eight states that match M.

Audit Note

Optional. Text you enter here appears in the history of the work item, recording the subprocess started by this Split For Each shape. (If you selected Iterate for the Join field, the history is written for each iteration over the work item, even if subprocesses 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 For Each 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 For Each 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 (subprocess) within the flow.

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

By default, the box is cleared.

Only going back?

Optional. This checkbox appears only when you select the Entry Point? checkbox for the Split For Each shape. If selected, users cannot click the Split For Each 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 checkbox 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 shapes 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 For Each subprocesses using the breadcrumbs control, or clicking a tree-harness node from a completed subprocess or the standard flow action -Work.Previous.

For example, assume that a Split For Each shape 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.

NoteTabbed nodes and tree harnesses require Subflow Entry Points? to be selected.

By default, the box is cleared.

Label Property

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

3. Click  Apply  .

4. Connect at least one incoming connector to the Split For Each shape. Connect one outgoing connector from the Split For Each 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 Flows.

Up About Flows