It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

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

1 vote
Answer 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
Community showcase
Published in Jira

[Survey] Development tools and DevOps - share your thoughts!

Hey Community! I work at Atlassian in product marketing and we are conducting a survey to better understand how people feel about their development tool chain and DevOps. We would love if you could...

101 views 1 2
Read article

Community Events

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

Find an event

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

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you