My apologies if I'm not posting in the correct place.
I have an inline Script Runner post function that works perfectly on a subsequent transition, but does not work on the create transition.
It takes the value from a custom field (Support Queue) and uses that to generate the user group to select from a single select list.
import com.atlassian.jira.component.ComponentAccessor def projectComponentManager = ComponentAccessor.getProjectComponentManager() def customFieldManager = ComponentAccessor.getCustomFieldManager() def groupManager = ComponentAccessor.getGroupManager() def queueCf = customFieldManager.getCustomFieldObjectByName("Support Queue") String qname = issue.getCustomFieldValue(queueCf) def singleGroupCf = customFieldManager.getCustomFieldObjectByName("Notify Group") def group = groupManager.getGroup("Notify " + qname) issue.setCustomFieldValue(singleGroupCf, [group])
It is working correctly on my "Escalate" transition, but not working on the create transition. On Create, nothing is populated in the "Notify Group" field.
I am thinking maybe something is not available on create that is available in later transitions?
On create, I actually copy the issue type name into the "Support Queue" field, This is done in a post function prior to the script post function.
If need to use "Issue Type" instead of the custom field to find the name, that would be good too.
I tried
String qname = issue.issueType.name
But that didn't work either.
Any help would be greatly apprciated!
For reference:
There is a -- script-only -- solution to this problem in this other question: https://community.atlassian.com/t5/Answers-Developer-Questions/Groovy-Post-function-on-Create-transition-can-t-set-custom-field/qaq-p/474592
What I ended up using was something like:
import com.atlassian.jira.component.ComponentAccessor
import static com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue
def now = (new Date()).toTimestamp() // value to use depends on custom field type
def modifiedValue = new ModifiedValue(null, now)
dateCf.updateValue(null, issue, modifiedValue, new DefaultIssueChangeHolder())
ComponentAccessor.issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false /*sendMail*/)
(and put it just after 'issue created' postfuntion.)
But all credit goes to @JamieA ;)
I have tried moving my post function to just about every position, and could not get my custom field to to take the value.
I did think of a different approach that worked though. I created a scripted field that takes the value from "issuetype" and puts "Notify " in front of it.
Then, added a post function to copy the value of one field to another. Copy My scripted field into "Notify Group", and it works like a charm.
Thanks for the help - it's great to have some input from other when you are totally stuck!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I do more or less the same things. Two remarks:
(1) is your Post Function placed before the "Creates the issue originally" function ?
(2) I use (I think you should, but I do not understand why it works in your "Escalate" transition) a MutableIssue type to update the contents of issues:
import com.atlassian.jira.issue.MutableIssue ... MutableIssue mutableIssue = issue mutableIssue.setCustomFieldValue (singleGroupCf, [ group ])
Give this a try ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I updated both transitions (create and escalate)
It still works on the Escalate transition, but not on the create transition.
Here's the list of post functions on each:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.