Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

JJUPIN SIL sum of hours from linked issues

Carl Thompson July 16, 2015

I want to sum the hours of linked issues into the parent\grouping issue.  It seems like this should be pretty simple in SIL using a for-loop and adding each subordinate value to the running total.

I'm trying to use SIL to do this, but keep getting "illegal workflow operation" error.

I have three custom fields:  "Rsch Hrs", "Prog Hrs", "Test Hrs".

Here is the script

//reset the parent values to zero

key.#{Rsch Hrs} = 0;

key.#{Prog Hrs} = 0;

key.#{Test Hrs} = 0;

// add each of the subordinate linked issue values

string [] linkedIssues =  linkedIssues(key);

for (string issue in linkedIssues) {

    key.#{Rsch Hrs} += %issue%.#{Rsch Hrs};

    key.#{Prog Hrs} += %issue%.#{Prog Hrs};

    key.#{Test Hrs} += %issue%.#{Test Hrs};

}

Any advice?

2 answers

1 accepted

1 vote
Answer accepted
Raluca Panait
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 17, 2015

Hi Carl,

If some of the linked issues have empty values for one of the custom fields, the sum between empty value and a number or an interval can't be calculated.So, if the custom field has empty value, you have to set the values of the custom fields to 0. You can use the script below:

//reset the parent values to zero
 
%key%.#{Rsch Hrs} = 0;
 
%key%.#{Prog Hrs} = 0;
 
%key%.#{Test Hrs} = 0;
 
// add each of the subordinate linked issue values
 
string [] linkedIssues =  linkedIssues(key);
 
for (string issue in linkedIssues) {
	if(%issue%.#{Rsch Hrs} == ""){
        %issue%.#{Rsch Hrs} = 0;
    } 
    if(%issue%.#{Prog Hrs} == ""){
        %issue%.#{Prog Hrs} = 0;
    }
    if(%issue%.#{Test Hrs} ==  ""){
        %issue%.#{Test Hrs} = 0;
    }
 
    %key%.#{Rsch Hrs} += %issue%.#{Rsch Hrs};
 
    %key%.#{Prog Hrs} += %issue%.#{Prog Hrs};
 
    %key%.#{Test Hrs} += %issue%.#{Test Hrs};
 
}

 

Best regards,

Raluca

Carl Thompson July 17, 2015

Thanks. Definitely makes the code more robust.

3 votes
Alexandra Topoloaga
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 17, 2015

Hi Carl,

You should also use substitution for key. You code should look like this:

//reset the parent values to zero
%key%.#{Rsch Hrs} = 0;

%key%.#{Prog Hrs} = 0;

%key%.#{Test Hrs} = 0;

// add each of the subordinate linked issue values

string [] linkedIssues = linkedIssues(key);

for (string issue in linkedIssues) {

%key%.#{Rsch Hrs} += %issue%.#{Rsch Hrs};

%key%.#{Prog Hrs} += %issue%.#{Prog Hrs};

%key%.#{Test Hrs} += %issue%.#{Test Hrs};

 

Hope this helps,
Alexandra 

Carl Thompson July 17, 2015

Thanks. Replacing "key" with "%key%" made it work. This will be a big help

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events