Hi,
I am creating a sub-task from the script-Post Function that creates a sub-task on the transition.
am copying all the fields from parent task to sub-task
When I update a Custom Date Field in the Parent task, It should get carried to the subtask as well.
It was resolved
and I want to extend the functionality to the linked issues if that's possible.
Hi Bunny,
In the case of the subtasks you will need a Custom Script Listener that will listen for issue updated events and you script will look like
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
def issue = event.issue as MutableIssue
def change = event?.getChangeLog()?.getRelated("ChildChangeItem")?.find {it.field == "First DateTime"}
if (!change) {
//the update was not caused by a change to First DateTime field so do nothing
return
}
def cf = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("First DateTime")
def parentValue = issue.getCustomFieldValue(cf)
// update the cf value for all the subtasks
issue.subTaskObjects?.each {
updateCFValue(it, cf, parentValue)
}
// update the cf value for all the linked issues
getOutwardLinkedIssues(issue)?.each {
updateCFValue(it, cf, parentValue)
}
def updateCFValue(MutableIssue issue, CustomField cf, def newValue) {
def changeHolder = new DefaultIssueChangeHolder()
cf.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(cf), newValue),changeHolder)
log.debug "Value for custom field ${cf.name} for issue ${issue.key} updated to ${newValue}"
}
def getOutwardLinkedIssues(MutableIssue issue) {
ComponentAccessor.getIssueLinkManager().getOutwardLinks(issue.id)?.collect {it.destinationObject}
}
So what this script does is, in an issue updated event, it checks if the field that go updated is the First DateTime and if it is then it goes through the subtasks and the links of that issue (if there are any) and update the value of that custom field.
regards, Thanos
Hi Thanos,
I would you like to use your script for update the Due Date field in Sub-Task if the Parent Due Date Field is Updated using a script listener, BUT your code gives the error below ...
Could you suggest me the correction with the modification for use the Due Date field?
Thanks in advance,
Francesco
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
So your main question is regarding updating linked issues if the customfield is updated.
You would need to write a script listener on issue updated events for that.
Which would pick up changes on the customfield and propagate them onto the linked issues.
But issue links don't have relationship of parent/child.
So if you update the customfield from either side of the issue link, the other issue would be updated.
Or you would have to make a logic that suits your need and code it with script listener.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.