ActiveBPEL® Designer User’s Guide

Continue

This is an ActiveBPEL extension activity. When you save the process, a message appears informing you that the process contains an activity that is not in the BPEL specification.

You can use the continue activity inside a while, repeat until, or forEach container. The continue activity causes its immediately enclosed looping activity to stop the execution of the current iteration and move on to the next iteration. In the case of a while, the while’s condition expression is evaluated to see if another iteration is possible. In the case of a serial forEach, the next iteration in the sequence executes or the loop completes if the current iteration is the final one. In the case of a parallel forEach, the continue only affects its enclosed iteration, allowing any parallel iterations to complete normally.

The continue activity allows the root scope of a forEach to complete normally so that it is compensatable. Early termination through a continue activity is not considered a faulting state, and therefore does not prevent compensation.

Required and optional properties for continue

Required Properties

Optional Properties

none

Name. See Selecting Activity Labels

Join Condition. See Creating a Join Condition for an Incoming Link

Suppress Join Failure. See Process Properties

Comment. See Adding Comments to a Process

Documentation. See Adding Documentation to a Process

Setting Visual Properties and Using Your Own Library of Images

Execution State. See Viewing the Execution State of an Activity or Link

Extension Attributes and Extension Elements. See Declaring Extension Elements and Attributes.

To add a continue activity:

  1. On the Process Editor canvas, select a while, repeat until, or forEach container.
  2. From the Activity palette, drag a continue activity to it.
  3. The following illustration shows an example.

Continue activity in a Switch container

XML Syntax

<continue standard-attributes>
standard-elements
</continue>

Example

<while>
  <condition>(counter &lt; 10)</condition>
   <targets><target linkName="Link4"/></targets>
   <sources><source linkName="Link12"/></sources>
   <flow>
     <links>
       <link name="Link7"/>
     </links>
     <assign name=”IncrementCounter”>
         <sources><source linkName="Link7"/></sources>
         <copy>
           <from>($counter + 1)</from>
           <to variable="counter"/>
         </copy>
     </assign>
      <if>
        <targets><target linkName=”Link7”/></targets>
         <condition>($counter mod 2=0)</condition>
           <flow>
             <links>
               <link name=”Link6”/>
             </links>
             <extensionActivity>
               <ext:continue
name=”Continue”/>
                <sources><source linkName=”Link6”/></sources>
               </ext:continue>
             </extensionActivity>
                 <assign name=”BreakOutOfLoop”>
                   <target linkName=”Link6”/>
                    <copy>
                     <from expression=”100”/>
                      <to variable=”counter”/>
                    </copy>
                 </assign>
           </flow>
      </if>
   </flow>
</while>