ALM Structure - How to Get in Formula the Custom Field Id of the Custom Field used to group?

Avi Bachar
Contributor
July 21, 2021

Let Say I have grouped by some Custom Fields

So I have Hierarchy of :

[Scrum Team]

       [Budget Bucket]

                [Source]

All three are custom field

but the user can try another Hierarchy 

[Budget Bucket]]

       [Scrum Team]

                [Source]

so I do not know in the formula that Scrum Team is in a certain Level

How can I find out in a formula, that the row I am in, is a Group item of the Custom Field [Scrum Team]?

if I check itemtype I get cf-option but I do not know if this is [Scrum Team] or other

1 answer

1 accepted

2 votes
Answer accepted
Stepan Kholodov _ALM Works_
Atlassian Partner
July 23, 2021

Hello Avi,

If you have Group generators by three different fields and you want to change the order of them in the hierarchy, you can simply rearrange the three Group generators in a different order as well - the higher the generator on the list of generators at the top of the structure, the higher its group will be shown.

I hope this helps. If it doesn't and you're enquiring about something else, please submit a ticket at support.almworks.com so we could support you properly. In this case, we will need to have more details about the requirements and take a look into your setup to better understand the use case.

Best regards,
Stepan Kholodov
ALM Works

Avi Bachar
Contributor
July 23, 2021

Hi Thanks got the answer

but it has nothing to do with generators

I'll try again

it is about formula

I would like to identify in a formula column that I am now at a row that represent a group by a certain [Scrum Team] (which as I say it is a custom field of type select list of values)

if, for example, I group by sprint then I check if the itemtype=sprint and if so then this is a sprint grouping row

now, for custom fields I get in itemtype the value cf-option

if I have more than one CF as a group I will get for both cf-option and I do not know I am specifically in [Scrum Team] CF or other

I would like to know that I am on [Scrum Team] not just any CF group level

*** the column itemtype is simply a formula returning itemtype

image.png 

Stepan Kholodov _ALM Works_
Atlassian Partner
July 26, 2021

There is no way for the Formula to extract a field's id. If you want to reference the right group in the formula, then you can do it with the #level=x modifier. Existing groups are part of the hierarchy within the structure and each of them represents a specific level. You can reference these levels in the formula using certain aggregate functions and adding the #level modifier to them for the formula to consider attributes on a specific group's level. You can find out more about the modifier and the functions it can be used here on our wiki: https://wiki.almworks.com/display/structure/Aggregate+Function+Reference#AggregateFunctionReference-#level

Also, you can reference groups simply by their names using the summary=name condition.

Best regards,
Stepan Kholodov
ALM Works

Like Dave Rosenlund _Trundl_ likes this
Avi Bachar
Contributor
July 27, 2021

Unfortunately I am aware of all these options

however the level of Scrum Team or any other CF is unknown

or let say not pre-fixed

cause it is caused by the user selection in transformation

I have created a  button for Group By ... some CFs

and the user can select the order of grouping based of its interests

and I wish the calculation of follow the Scrum Team no matter if it is on first level or 3rd level.

the Ugly way which I hoped not to do

is to check if the "summary " is one of a list of strings which are also the list of values in Scrum Teams.

it is Ugly case I will now have to manage this list in 2 places, one in the CF and one in the Structure.

is there a way to implement this psaudo?

if (summary in GetArrayOfCustomFieldOptionalValues( ScrumTeam ),

             CalculateForScrumTeam, 

             CalculateForOtherGroups

   )

 

Thanks anyway :-) 

Avi

Nicholas Ellis _ALM Works_
Atlassian Partner
July 27, 2021

Hi Avi,

I believe your assessment is correct. There is not a nicer way to do this.  Hopefully this ugly formula will help.

with scrum_teams = Array("team1", "team2"):

if(scrum_teams.contains(summary); CalculateForScrumTeam;
CalculateForOtherGroups)

This way you can easily change and add scrum teams as needed, and then if the current grouping is a scrum team to the scrum calculation, otherwise do something else.  I hope this helps.

Cheers,
Nick
[ALM Works]

Like Dave Rosenlund _Trundl_ likes this
Avi Bachar
Contributor
July 27, 2021

Yes :-)

this is the Ugly way.

10x anyway 

I guess I will have to do that.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events