Skip to main content

<foreach>

Define a sequence of activities to be executed iteratively.

Syntax

<foreach property="P1" key="K1">
   ... 
</foreach>

Details

Attribute or Element Description Value
property attribute Required. The collection property (list or array) to iterate over. It must be the name of a valid object and property in the execution context. A string of one or more characters.
key attribute Required. The index used to iterate through the collection. It must be a name of a valid object and property in the execution context. It is assigned a value for each element in the collection. A string of one or more characters.
name, disabled, xpos, ypos, xend, yend attributes See “Common Attributes and Elements.”  
<annotation> element
Other elements Optional. <foreach> may contain zero or more of the following elements in any combination: <alert>, <assign>, <branch>, <break>, <call>, <code>, <continue>, <delay>, <empty>, <flow>, <foreach>, <if>, <label>, <milestone>, <reply>, <rule>, <scope>, <sequence>, <sql>, <switch>, <sync>, <throw>, <trace>, <transform>, <until>, <while>, <xpath>, or <xslt>.  

Description

The <foreach> element defines a sequence of activities that are executed iteratively, once for every element within a specified collection property. For example:

<foreach property="callrequest.Location" key="context.K1">
  <assign property="total"
          value="context.total+context.prices.GetAt(context.K1)"/>
</foreach> 

The <foreach> element can refer to the following variables and their properties. Do not use variables not listed here.

Variable Purpose
context The context object is a general-purpose data container for the business process. context has no automatic definition. To define properties of this object, use the <context> element. That done, you may refer to these properties anywhere inside the <process> element using dot syntax, as in: context.Balance
request The request object contains any properties of the original request message object that caused this business process to be instantiated. You may refer to request properties anywhere inside the <process> element using dot syntax, as in: request.UserID
response The response object contains any properties that are required to build the final response message object to be returned by the business process. You may refer to response properties anywhere inside the <process> element using dot syntax, as in: response.IsApproved. Use the <assign> element to assign values to these properties.
Note:

There is more information about the business process execution context in documentation of the <assign> element.

You can fine-tune loop execution by including <break> and <continue> elements within a <foreach> element. See the descriptions of these elements for details.

FeedbackOpens in a new tab