Simple Scripted Conditions not accepting changes in workflow.

Chris Solgat
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 30, 2015

We have several workflows that are using the simple script condition, 

  • Script workflow function : Does not allow the action unless all sub-tasks have the Completed resolution set.

These were implemented prior to our upgrade of both JIRA and Scriptrunner, from 6.1.6 to 6.3.15 and from 2.1.16 to 3.0.16 respectively.  When we try to add this same condition to a workflow in the upgraded environment, it will not accept the chosen resolution.  When we click the preview button, it shows the correct value, but when we hit Update, the value is reset to Any.  I have verified this by viewing the workflow xml files.

 

This is the correct xml that was from the workflow that was created before the upgrade

<condition type="class">
<arg name="RESOLUTION_FIELD_NAME">11</arg>
<arg name="scriptFileName">
com.onresolve.jira.groovy.canned.workflow.conditions.AllSubtasksResolvedCondition
</arg>
<arg name="class.name">com.onresolve.jira.groovy.GroovyCondition</arg>
</condition>

This is the xml from the workflow that is being changed after the upgrade

<condition type="class">
<arg name="RESOLUTION_FIELD_NAME"/>
<arg name="canned-script">
com.onresolve.scriptrunner.canned.jira.workflow.conditions.AllSubtasksResolvedCondition
</arg>
<arg name="class.name">com.onresolve.jira.groovy.GroovyCondition</arg>
</condition>

The Resolution_Field_Name is not accepting the argument value.  Please help!

2 answers

4 votes
JamieA
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 30, 2015

This is an irritating bug that affects the params of just this script. Until the next release, if configuring this script, you have two options.

Either, update the workflow manually to be as it should be, which you already know. Can do this through importing or directly editing in the database etc.

Or, using simple scripted condition. You mention that in the question but you are not actually using that, you are using "All subtasks must be resolved" script. There is another built-in option called Simple Scripted Condition, and the script would be:

issue.subTaskObjects.every {it.resolutionObject?.name == "Won't Fix"}

or

issue.subTaskObjects.every {it.resolutionObject?.id == "11"}

There is not much more to this built-in script than that.

 

0 votes
JamieA
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 30, 2015

Seems there is some kind of issue with that one. I will look at that tomorrow.

Suggest an answer

Log in or Sign up to answer