I need to update a custom field's value on all the child issues (feature issues) that are connected to a project, so that they match their parent whenever it (the project issue) is updated.
I have been able to access all of the child issues of my given project. My second 'log.debug' below returns a List (array?) of the children issues linked to the project 'DEVP'...
I need automatically update a custom field on ALL of these children issues when that same field is updated on the parent...
if (issue.projectObject.key == "DEVP"){
log.debug (issue)
log.debug (issueLinkManager.getOutwardLinks(issue.id))
//field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(field), field), changeHolder)
}Can I implement updateValue() multiple issues at once? Do I need a loop?
Entire script:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.issuetype.IssueType
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.bc.issue.*
import static com.atlassian.jira.workflow.TransitionOptions.Builder;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.link.IssueLinkManager
import com.atlassian.jira.issue.link.IssueLink
import org.apache.log4j.Logger
import org.apache.log4j.Level
MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject("DEVP-384");
IssueLinkManager issueLinkManager = ComponentAccessor.getIssueLinkManager();
def changeHolder = new DefaultIssueChangeHolder()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def issueManager = ComponentAccessor.getIssueManager();
def field = customFieldManager.getCustomFieldObjects(event.issue).find { it.name == "Issue Category" }
def issueService = ComponentAccessor.getIssueService()
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def issueCatValue = issue.getCustomFieldValue(field)
def log = Logger.getLogger("com.acme.CreateSubtask")
log.setLevel(Level.DEBUG)
if (issue.projectObject.key == "DEVP"){
log.debug (issue)
log.debug (issueLinkManager.getOutwardLinks(issue.id))
//field.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(field), field), changeHolder)
}
I can access my Custom Field, the Project, and all of it's children...but I am having trouble putting these parts together. Thank you.