I'm attempting to update the Tempo Account custom field of a linked issue during the IssueLinkCreatedEvent. The below code executes successfully, but does not update the account field. I am using Custom Listener inside of scriptrunner
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.event.issue.link.IssueLinkCreatedEvent
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.bc.issue.IssueService.UpdateValidationResult
import com.atlassian.jira.bc.issue.IssueService.IssueResult
import com.atlassian.jira.user.ApplicationUser
import org.apache.log4j.Logger
import org.apache.log4j.Level
def log = Logger.getLogger("com.acme.CreateSubtask")
log.setLevel(Level.INFO)
def CustomFieldManager = ComponentAccessor.getCustomFieldManager()
def IssueManager = ComponentAccessor.getIssueManager()
def event = event as IssueLinkCreatedEvent
def sourceIssue = event.getIssueLink().getSourceObject()
log.info("sourceIssue: " + sourceIssue.key)
IssueService issueService = ComponentAccessor.getIssueService()
IssueInputParameters issueInputParameters = issueService.newIssueInputParameters();
if (sourceIssue.issueType.name != "Epic"){
log.info("Exiting ... sourceIssue type of" +sourceIssue)
}
MutableIssue issue = event.getIssueLink().getDestinationObject() as MutableIssue
log.info("issue: " + issue.key)
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def CfAccount = customFieldManager.getCustomFieldObjectByName("Account")
log.info("CfAccount: " + CfAccount)
def cfValue = event.issueLink.sourceObject.getCustomFieldValue(CfAccount)
log.info("Epic Account Value: "+cfValue)
def issueAccount = customFieldManager.getCustomFieldObjects(issue).find {it.name == "Account"}
if(issue){
issueInputParameters.addCustomFieldValue(issueAccount.getIdAsLong(),cfValue.toString());
ApplicationUser loggedInUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
UpdateValidationResult validationResult = issueService.validateUpdate(loggedInUser, issue.getId(), issueInputParameters);
if (validationResult.isValid()){
IssueResult result = issueService.update(loggedInUser, validationResult);
}
}
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.