codeBeamer ALM

Issue Field Value Dependencies

If you have parent/child hierarchies of configuration items or issues, you can now define dependencies between parent field values and the appropriate child field values (recursively). If, for example, you wish to ensure that a parent issue is not closed until all the child-issues (children) are closed, then this dependency can be managed using one of the distribution rules defined in this document. Similarly if you wish to define the parent issue's "Spent Hours" as the sum of the children's "Spent Hours" you can define this aggregation rule, too.

Parent field value updates can be distributed to children (recursively) and child field values can be aggregated into parent field values (recursively).

This is controlled in the distribution and aggregation rules shown in Category/TrackerCustomizeFields for each applicable field:

The set of applicable distribution and aggregation rules for a field depends upon the field and its type.

Standard Distribution Rules

RuleDescriptionApplicable for
SetSet child field value to parent field valueAll fields
DefaultSet child field value to parent field value, but only if the child field is emptyAll fields
LeastSet child field value to the least of parent and child field valueAll fields
GreatestSet child field value to the greatest of parent and child field valueAll fields
FractionSet each child field value to a fraction of the parent field valueNumeric fields
SubsetRemove all child field values that are not also parent field valuesMultiple choice fields
SupersetAdd missing parent field values to the child field valuesMultiple choice fields
Close recursivelyUpon close of a parent, also close all children recursivelyStatus
Close restrictedDeny closing a parent, as long as not all children have been closedStatus

Standard Aggregation Rules

RuleDescriptionApplicable for
MinimumSet parent field value to the minimum of all child field valuesAll fields
MaximumSet parent field value to the maximum of all child field valuesAll fields
Sum/TotalSet parent field value to the sum/total of all child field valuesNumeric fields
AverageSet parent field value to the average of all child field valuesNumeric fields
UnionSet parent field value to the union of all child field values (all distinct field values that appear in any child)Multiple choice fields
IntersectionSet parent field value to the intersection of all child field values (all common field values that appear in every child)Multiple choice fields
Mean statusSet parent status to a mean/average status of all childrenStatus
Close upwardsClose the parent, after the last child has been closedStatus

A field can have no rules at all, either an aggregation rule or a distribution rule, or both.

A field with an aggregation rule, but without a distribution rule, will only be editable as long as the item/issue doesn’t have children.

As soon as children exist, an aggregated field without a distribution rule will become read-only.

For static choice fields: Minimum, Maximum, Least and Greatest will be determined according to the order of field choice values, as defined via Category/TrackerCustomizeChoice Lists .

If the internal order of choice values is logically descending (like the standard CodeBeamer Severity values), in order for an aggregated field to show the logically highest field value, the aggregation rule must be Minimum.

Recommended Combinations of Distribution and Aggregation Rules

If a field has both an aggregation rule and a distribution rule, care must be taken that both rules do not conflict.

Choose the aggregation rule first and then decide which distribution rule (if any) is appropriate.

Distribution ruleAggregation ruleEffect on changing the parent value
SetAny, except Sum/TotalOverwrites child values with parent value
Default--Overwrites empty child values with parent value
LeastMaximumNo child value may be larger than parent value, so if a parent value is reduced, if a child value used to exceed the new parent value, the child's value is now set to the new parent value. Subsequent increases in the parent value have no effect on child values.
GreatestMinimumNo child value may be smaller than parent value. Increasing the parent value also increases the child values that used to be lower than this new parent value. Decreasing the parent value has no effect on child values.
FractionSum/TotalChanging the parent value will set the child values to “Parent value/number of children”
SubsetUnionAll child values must be a subset of the parent value. Removing a parent value will also remove that value from all child value lists. Adding a new parent value has no effect on child values.
SupersetIntersectionAll parent values must also be contained in the child value lists. So adding a parent value will also add that value to all child value lists. Removing a parent value has no effect on child values.
Close recursivelyClose upwardsIf all children are closed, the parent should also be closed. So closing the parent will also close all children. State transitions other than close are neither distributed nor aggregated.
Close recursivelyMinimumSimilar to above, but child state transitions are aggregated into parent state transitions (including close)

These aggregation and distribution rule recommendations don't have to be followed, but the resulting effect may be difficult to predict if the suggestions are ignored.

For new trackers, the recommended aggregation and distribution rules will be placed by default with the corresponding fields. In existing trackers, the distribution and aggregation functions are available, but there is no automatic rule setting. The rules will be implemented only on new issues.


Numeric Field Type Examples:

Aggregation RuleDistribution RuleChangeResult
Maximum--Child values (1, 3, 5, 7) ↑ to (1, 3, 5, 8)Parent Value changes from 7 to 8
MaximumLeastParent value changes from 8 to 7child value changes from 8 to 7

Set or Choice Field Examples:

Aggregation RuleDistribution RuleChangeResult
UnionSubsetChild Value sets change from (1,2,3) & (3,4,5) to (1,2,3) and (4,5,6)Parent Value sets change from (1,2,3,4,5) to (1,2,3,4,5,6)
IntersectionSupersetChild Value sets change from (1,2,3) & (2,3,4) to (1,2) and (1,4)Parent Value set changes from (2,3) to (1)

Dependencies between different fields of the same item (Cascading fields)

Besides the dependencies between the same field of parent and child items in a tracker, which are controlled via the field's Aggregation and Distribution rules, CodeBeamer (since CB-7.0) also allows to define dependencies between different Choice/Country/Language/Reference fields (of the same item).

E.g. The (values of the) Language field of a Contact should depend on (the values of the) Country field:

To define the actual/allowed Country/Language field value combinations, click on "depends on Country" in Layout and Content of the Language field:

In the popup dialog, you can then define the allowed value combinations for the combined fields:

E.g. English is spoken in any country, the official language in Germany and Austria is German, and in Switzerland the official languages are German, French and Italian:

If you now create or edit a Contact, the available values for Language will depend on the selected Country, e.g. for Switzerland: