Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to require a custom field during a workflow transition, but only based on Component selection

Wayne Cranford May 15, 2019

Environment - Adaptavist ScriptRunner v5.3.5 with JIRA v 7.4.4

My first time attempting Script Runner's Behaviours, but need to require a custom field (Implementation Risk), but only when Resolving the issue, and only if the Component is = "Active Ethernet".

I have used examples I found online to get to the following, but have not been able to find a way to make this work by combining "if" statements.

If I limit to only the  Component, then the restriction works, but only for the Permissions-based "Edit". 

If I limit to either the transition screen OR the specific workflow action, it works as expected. I need to be able to combine the Component 

import com.onresolve.jira.groovy.user.FieldBehaviours
import groovy.transform.BaseScript
import com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()

def implementationRisk = getFieldByName("Implementation Risk")
def component = getFieldById("components")
def componentV = component.getValue()

//if (componentV.toString().contains("Active Ethernet")) { //THIS WORKS ON PERMISSION-BASED EDIT ONLY
//if (getFieldScreen().name == "CN Resolve Issue Screen") {//THIS WORKS FOR ANY TRANSITION THAT USES THIS SCREEN
//if (getActionName() == "Resolve and Send to Retest") {//THIS WORKS FOR ANY WORKFLOW ACTION USING THIS NAME
if (componentV.toString().contains("Active Ethernet") && getFieldScreen().name == "CN Resolve Issue Screen") {//THIS DOES NOT WORK AT ALL

implementationRisk.setRequired(true)
implementationRisk.setHelpText("This field is required when Active Ethernet is selected as the Component")

} else {

implementationRisk.setRequired(false)

}

 All help will be appreciated!

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events