Need help to execute Groovy Script in Jira 3.13

Arpita Argulwar June 30, 2014

Hello Team,

I am trying to copy the Asset Class custom field's value into Security Level system field by using following script.

Script is running sucessfully but value is not getting coppied. I am able to use the similar script for the another project while creating the issue. Not sure where I am going wrong here.

Please help me out to correct the scrpit or to get the results.

try {

ComponentManager componentManager = ComponentManager.getInstance()

CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()

IssueSecurityLevelManager securityLevelManager = componentManager.getComponentInstanceOfType(com.atlassian.jira.issue.security.IssueSecurityLevelManager)

IssueSecuritySchemeManager issueSecuritySchemeManager = ManagerFactory.getIssueSecuritySchemeManager()

IssueSecurityLevelManager issueSecurityLevelManager = ManagerFactory.getIssueSecurityLevelManager()

GenericValue srcProjectGV = issue.getProject()

log.debug(srcProjectGV)

def issueSecurityScheme = issueSecuritySchemeManager.getSchemes(srcProjectGV).size() == 0 ? null : issueSecuritySchemeManager.getSchemes(srcProjectGV)[0]

User currentUser = componentManager.getJiraAuthenticationContext().getUser()

def sourceFieldName = "customfield_10130"

CustomField cf = customFieldManager.getCustomFieldObjectByName("Asset Class")

CustomFieldParams sourceFieldVal = issue.getCustomFieldValue(cf) as CustomFieldParams

//CustomField cfBusiness = customFieldManager.getCustomFieldObjectByName("Catch Business Value")

if (sourceFieldVal) {

Collection values = sourceFieldVal.getAllValues()

def business = values[0]

log.debug("business: '$business'")

def level = values[0]

log.debug("level: '$level'")

//def business= sourceFieldVal.getFirstValueForNullKey()

//def level = sourceFieldVal.getFirstValueForKey("1")

//set the text field

cfBusiness.createValue(issue, business.toString())

//set security level

def secLevelGvList = issueSecurityLevelManager.getUsersSecurityLevels(issue.getGenericValue(), currentUser)

def secLevelGv = secLevelGvList.find ({it.get("name") == "$level"})

log.debug("secLevelGv: $secLevelGv")

if (secLevelGv) {

log.debug ("Set ${issue.getKey()} to $level")

issue.setSecurityLevel (secLevelGv)

}

issue.store()

}

else {

log.debug("Custom field not present on this issue")

}

log.debug("done")

} catch (Exception e) {

log.error("oops", e)

}

Let me know incase you need any further details.

Regards,

Arpita

1 answer

0 votes
JamieA
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 30, 2014

Can you use the CODE formatting on the toolbar, it's not possible to read that.

Suggest an answer

Log in or Sign up to answer