Hello,
I need to implement two separate behaviors as script listeners or post functions:
I am new to scriptrunner and groovy, and have been looking for examples on how to implement this. Unfortunately I couldn't get anything working so far.
Any help from the community will be much appreciated.
Thank you!
Hi,
Maybe this helps you:
/**
* Created by f542 on 9/18/2018.
*/
//import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem
//import com.atlassian.jira.bc.issue.search.SearchService
//import com.atlassian.jira.component.ComponentAccessor
//import com.atlassian.jira.issue.ModifiedValue
//import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
//import com.atlassian.jira.issue.CustomFieldManager
//import com.atlassian.jira.issue.Issue
//import com.atlassian.jira.issue.IssueManager
//import com.atlassian.jira.issue.fields.CustomField
//import com.atlassian.jira.issue.search.SearchResults
//import com.atlassian.jira.issue.watchers.WatcherManager
//import com.atlassian.jira.user.ApplicationUser
//import com.atlassian.jira.user.util.UserManager
//import com.atlassian.jira.issue.MutableIssue
//import com.atlassian.jira.event.type.EventDispatchOption
//import com.atlassian.jira.web.bean.PagerFilter
//import com.atlassian.query.Query
ApplicationUser adminUser = ComponentAccessor.getUserManager().getUserByName("admin")
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()
SearchService searchService = ComponentAccessor.getComponentOfType(SearchService.class)
IssueManager issueManager = ComponentAccessor.getIssueManager()
UserManager userManager = ComponentAccessor.getUserManager()
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
ApplicationUser userApp
def i=0
try {
CustomField developerUserCF = customFieldManager.getCustomFieldObject(24196L)
MutableIssue missue = ComponentAccessor.getIssueManager().getIssueByKeyIgnoreCase("XYZ-1234")
//Issue missue = ComponentAccessor.getIssueManager().getIssueByKeyIgnoreCase("XYZ-1234")
def developerUserName = missue.getCustomFieldValue(developerUserCF)
if(developerUserName == null || developerUserName==""){
issueLinkManager.getOutwardLinks(issue.id).each{ issueLink ->
Issue linkedIssue = issueLink.getDestinationObject()
String devUser = (String)linkedIssue.getCustomFieldValue(developerUserCF)//LINKED ISSUE DEVELOPER USER
if(devUser!=null){
if(issueLink.getIssueLinkType().getId() == 10130){
log.error(issue.getKey()+" - "+linkedIssue+" - "+devUser)
log.error(issueLink.getIssueLinkType().getName())
userApp = userManager.getUserByName(devUser)
FieldLayoutItem fieldLayoutItem = ComponentAccessor.getFieldLayoutManager().getFieldLayout(missue).getFieldLayoutItem(developerUserCF)
Object parentValue = userApp
Object currentValue = issue.getCustomFieldValue(developerUserCF)
ModifiedValue modifiedValue = new ModifiedValue( currentValue, parentValue )
developerUserCF.updateValue( fieldLayoutItem, missue, modifiedValue, new DefaultIssueChangeHolder() )
missue.store()
}
}
}
}
} catch (Exception excp) {
log.error(org.apache.commons.lang.exception.ExceptionUtils.getStackTrace(excp))
}
This script update linked issue's user field by issueTypeId
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.