Hi,
I have 2 Projects. Project A and Project B. Project B has a Custom Field called "ProjectA- Key" The Key of Project A that relates to project B is copied into the "ProjectA-Key" field.
I have another field called "Change Request"
I will like to write a listener script that copies the Change Request field on Project B to Project A when an update event happens in Project B by looking up the Key entered in the "ProjectA-Key" field to get the Project A issue to be updated with the value from Project B
It would help to know the type of each of those custom fields and see more concrete examples.
Also, does ProjectA-Key contain a project key? Or does it contain an issue key that happens to belong to Project A?
But something like this should put you on the right track:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
def issueService = ComponentAccessor.issueService
def issue = event.issue as Issue
def currentUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def projectAKeyCf = ComponentAccessor.customFieldManager.getCustomFieldObjectsByName('ProjectA-Key')[0]
def changeRequestCf = ComponentAccessor.customFieldManager.getCustomFieldObjectsByName('Change Request')[0]
def projectAKey = issue.getCustomFieldValue(projectAKeyCf)
def changeRequest = issue.getCustomFieldValue(changeRequestCf)
def projectAIssue = ComponentAccessor.issueManager.getIssueObject(projectAKey as String)
def iip = issueService.newIssueInputParameters()
iip.addCustomFieldValue(changeRequestCf.id, changeRequest as String)
def validationResult = issueService.validateUpdate(currentUser, projectAIssue.id, iip)
assert validationResult.valid, validationResult.errorCollection
def updateResult = issueService.update(currentUser, validationResult)
assert updateResult.valid, updateResult.errorCollection
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.