Pattern 15 (Multiple Instances without Run Time Knowledge)

The number of instances of an activity is not known at design time nor at first run of the activity.


<process-definition
    name="multiple instances"
    revision="1.0"
>
    <!-- flow body -->

    <subprocess ref="launch" />

    <!-- subprocesses -->

    <process-definition name="launch">
        <sequence>
            <subprocess ref="activity" forget="true" />
            <participant ref="b" />
            <if>
                <equals field-value="fire_more_instances_of_activity" other-value="true" />
                <!-- then -->
                <subprocess ref="launch" />
            </if>
        </sequence>
    </process-definition>

    <process-definition name="activity">
        <participant ref="a" />
    </process-definition>

</process-definition>

OpenWFE, as it supports subprocesses can easily implement this pattern.

This way of implementing it is also possible :


<process-definition
    name="multiple instances"
    revision="1.1"
>
    <!-- flow body -->

    <loop>
        <sequence>
            <subprocess ref="activity" forget="true" />
            <participant ref="b" />
        </sequence>

        <while>
            <equals 
                field-value="fire_more_instances_of_activity" 
                other-value="true" 
            />
        </while>
    </loop>

    <!-- subprocesses -->

    <process-definition name="activity">
        <participant ref="a" />
    </process-definition>

</process-definition>