Copy Value From Field to Field Function Groovy Condition

I'm using the Copy Value From Field to Field Function Post-Function, but am struggling to figure out the condition portion. Basically, I don't want it to execute the post-function unless a custom field "Reorder Type" contains the string value of "Replace Empty".


What would the Groovy expression be?

1 answer

1 accepted

Many of the conditions for post functions have some handy-dandy variables injected into the binding. I don't see a post function with the name you used, but it might be as simple as:

cfValues['Reorder Type']?.value == 'Replace Empty'

If the Condition blank has a little question mark next to it, click that to see what's available in the binding.

 

In a more general case (outside Post Functions and such like), you could use the CustomFieldMananger to determine the value of the field. Something like

import com.atlassian.jira.component.ComponentAccessor

def customFieldMananger = ComponentAccessor.getCustomFieldManager()
def field = customFieldMananger.getCustomFieldObjectByName("Reorder Type")
def reorderTypeValue = issue.getCustomFieldValue(field)
reorderTypeValue == "Replace Empty"

Notably, that assumes the the Reorder Type field is a simple plain text input. For select lists and other more complex input types, you may need to bust out the OptionsManager as well. See https://scriptrunner.adaptavist.com/latest/jira/recipes/behaviours/select-list-other.html for an example of using the optionsManager to get and set values in a select list.

This is what is displayed under the condition input field.

 

Type a Groovy expression that returns true if the post-function should run. 
You can use the following variables in your Groovy script:

  • issue: a simple wrapper around the Issue object. Use issue.get("<fieldname>") to get the value of a field
  • issueObject: the Issue object itself
  • log: a Logger instance that writes into atlassian-jira.log (useful for debugging)

Got it. In that case, you'll want to go the more general route and use the ComponentAccessor and CustomFieldMananger classes to interact with the data. Instead of the issue.getCustomFieldValue() method that I used, you might could just use issue.get("Reorder Type"), assuming that covers custom fields. I suspect this is just an older version of ScriptRunner with some slightly different conveniences.

Thanks for the help! That worked!

issue.get("Reorder Type") == "Replace Empty"

This workflow function is actually from the JMWE plugin.

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published Thursday in Jira

Meet the AUG leaders of Northern Virginia

@Rachel Wright (Jira Genie), @Billy Poggi (AUG NOVA, DC), and @Dana Jansen (Confluence Queen) are just some of the folks that lead one of the world's most active Atlassian User Group (AUG)....

125 views 4 9
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you