Hello,
I need to fetch values of label(System field) through groovy script. Can you please help me.
Thanks in Advance
And why is groovy script the needed way? What values are you trying to fetch? All of them? Some?
Labels is a fully implemented field shown both in issue results and searches.
Hello @Radek Dostál
Thanks for the Reply!!
We are implementing the customization like based on the priority field auto populating the due date field . And we need to find the label value through groovy script. because based on the label value the customization should works .
For suppose if label value is A the customization should work. We need to fetch only one value from labels.
For field customization we have script and we kept in the post function and it is working as expected. but we stucked for finding the label values through groovy script.
Thanks
Sagar
Post-functions have 'issue' as binding variable (assuming that you are using scriptrunner), meaning you can use https://docs.atlassian.com/software/jira/docs/api/8.20.8/com/atlassian/jira/issue/Issue.html#getLabels--
import com.atlassian.jira.issue.label.LabelSet<Label> labels = issue.getLabels()if (labels.find { it.getLabel() == "MyLabel"}) {//if labels contains MyLabel, do something here}
So this should be a relatively simple check. Just to remember that Label itself is a class and to compare it's "human readable" value you need to use Label#getLabel() as in the example, which is the string representation of the label as you see in webUI.
Hi @Radek Dostál , Thanks you , The code is working fine!! We have Tested in Post Function for Existing ticket it Worked , But The Problem we are facing is We are unable to create issues when we select label PDE_Support
Script :
import static com.atlassian.jira.issue.IssueFieldConstants.LABELSimport com.atlassian.jira.issue.label.Label;import com.atlassian.jira.component.ComponentAccessorimport com.atlassian.jira.issue.IssueManagerimport com.atlassian.jira.issue.Issueimport com.opensymphony.workflow.InvalidInputExceptionimport java.sql.Timestamp;import com.atlassian.jira.issue.customfields.manager.OptionsManagerimport com.atlassian.jira.issue.customfields.option.Optionimport groovy.time.*import com.atlassian.jira.event.type.EventDispatchOptionimport com.atlassian.crowd.embedded.api.Userimport com.atlassian.jira.config.PriorityManagerimport org.slf4j.Loggerimport org.slf4j.LoggerFactoryimport com.atlassian.sal.api.user.UserManagerimport static com.atlassian.jira.issue.IssueFieldConstants.PRIORITY
def constantsManager = ComponentAccessor.getConstantsManager()
def userUtil = ComponentAccessor.getUserUtil()log.debug ComponentAccessor.getComponent(UserManager)
def priority = issue.getPriority()def pname=priority.name.toString()
def customFieldManager = ComponentAccessor.getCustomFieldManager()def issueManager = ComponentAccessor.getIssueManager()
Issue issue = issue
def duedate = customFieldManager.getCustomFieldObject("customfield_47440")
Calendar cal = Calendar.getInstance();def temp = cal.getTimeInMillis();def add = 0;def x = 1000*24*60*60Ldef mydueDate = new Timestamp(cal.getTimeInMillis());
Set<Label> labels = issue.getLabels()
if (labels.find {issue.getLabel() == "PDE_Support"}) {if (pname == "0"){add = 1*xtemp = temp+addmydueDate.setTime(temp)
issue.setCustomFieldValue(duedate, mydueDate)
def currentUserObj = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()issueManager.updateIssue(currentUserObj, issue, EventDispatchOption.DO_NOT_DISPATCH, false)
}else if (pname == "1"){add = 14*xtemp = temp+addmydueDate.setTime(temp)
}else if (pname == "2"){add = 28*xtemp = temp+addmydueDate.setTime(temp)
issue.setCustomFieldValue(TargetCompletionDate, mydueDate)
}else if(pname == "3"){add = 90*xtemp = temp+addmydueDate.setTime(temp)
def currentUserObj = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()issueManager.updateIssue(currentUserObj, issue, EventDispatchOption.DO_NOT_DISPATCH, false)}else if(pname == "4"){add = 180*xtemp = temp+addmydueDate.setTime(temp)
def currentUserObj = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()issueManager.updateIssue(currentUserObj, issue, EventDispatchOption.DO_NOT_DISPATCH, false)}}
It looks like you're new here. Sign in or register to get started.