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>