This Activity is like the combination of ParallelActivity and WhileActivity. The parent is ParallelActivity and the child is WhileActivity.
You use the ConditionedActivityGroup by adding one or more child activities that you wish to execute. Like the ParallelActivity, child activities are executed from left to right and each child activity is given a turn at execution. If the child is a composite, only one of its children is executed during any given turn. Each child activity can optionally declare a WhenCondition. This can be a code or rule condition that determines whether the child activity should execute. If a condition is defined and it evaluates to true, the child is executed once during its next turn. The child activity will continue to execute once during its turn until the WhenCondition evaluates to false. If no WhenCondition is defined, the child activity is executed only once
The ConditionedActivityGroup also supports an optional UntilCondition. Like the other condition properties, this can be a code or a rule condition. If defined, this property specifies a condition that causes the CAG to end execution early. If the UntilCondition is not defined, the CAG completes when all of its children have completed and no WhenCondition evaluates to true. With the UntilCondition defined, the CAG will end when the UntilCondition is true, or when all child activities have completed normally.