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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.