Knowledge Base Articles
Breadcrumbs

Formula that rolls up values in a column to the parent issue

This article is for Data Center.

Problem

We have created a custom formula that decides a column value based on attributes. This formula determines whether the issue is within a Plan. They need to have the value rolled up to determine at the parent levels if this should be in the plan.

Hierarchy:

  • Epic Story Sub-Task

Options/Values:

  • Committed, Not in Plan

If a Sub-Task is “Not In Plan” (as determined by the formula), it should be rolled up to the parent Story, which would also effectively roll up to the Epic.

Say a parent Epic has 2 Stories, each with 2 Sub-Tasks. If any Sub-Tasks are “Not In Plan”, then “Not In Plan” should be rolled up to the parent Story. Likewise, if any Story is “Not In Plan”, this should be rolled up to the parent Epic.
If any Sub-Task is “Not in Plan,” we know both the parent Story and the parent Story’s parent Epic should also be “Not in Plan”.

The column is using a formula already that looks like the following:

KEY AND
If (NotInPlanSand, "Not In Plan",
  If (NotInPlanSandEpic, "Not In Plan",
    If (AtRiskSand, "At Risk",
      If (UndeterminedSand, "TBD", "Committed"))))

Is there a way to add to this so that if “Not in Plan” is the option, it is rolled up to the parent issue?

I need something like this:

  • Epic

    • Story - Not In Plan

      • Sub-Task 1 - Committed

      • Sub-Task 2 - Committed

Sub-Tasks don’t change the Story because they are both “Committed”.

Story DOES change the Epic because Story is “Not In Plan”.

Each level needs to change the one directly above it.

In this case:

  • Epic

    • Story - Committed

      • Sub-Task 1 - Not In Plan

      • Sub-Task 2 - Committed

This would change Story to Not In Plan, then the Epic to Not In Plan.

Solution

This formula gathers the information filled in the Subtasks issues and rolls it up (according to the formula conditions) to the Story (parent) and the Story’s parent (Epic).

WITH child_values = VALUES#CHILDREN{SelectListCf}:
IF SEARCH("Not In Plan", child_values):
    "Not In Plan"
    ELSE IF SEARCH("Committed", child_values):
    "Committed"
    ELSE SelectListCf