Hi All,
Is there any way I can pull linked issue values to parent issue.
For example, A is a parent issue and B is linked to A. Is there any way we can retrieve Issue B custom field values in Issue A.
TIA!!
Below is the code I'm using
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
def Issue issue = issue
def User user = ComponentAccessor.getUserManager().getUserByName("username").getDirectoryUser()
def issueLinkManager = ComponentAccessor.issueLinkManager
def linkCollection = issueLinkManager.getLinkCollection(issue, user)
if (linkCollection && linkCollection.allIssues) {
def CustomFieldManager customFieldManager = ComponentAccessor.customFieldManager
def customField = customFieldManager.getCustomFieldObject("customfield_xxxx")
def linkedIssue = linkCollection.allIssues.first()
return linkedIssue.getCustomFieldValue(customField)
}
I get the error at the underlined code.
Hi Ashish,
Were you able to figure it out or do you still need help with this issue?
Josh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Joshua,
Can you please help me on this.
Thanks,
Ash.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Ash,
You could create a scripted field that gets values from issues that are linked. For example, if Parent issue A was of type "Bug", the code for your scripted field would look like this:
import com.atlassian.jira.component.ComponentAccessor
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
if (issue.issueType.name == "Bug") {
issueLinkManager.getOutwardLinks(issue.id).first() { issueLink -> // go through all issues linked off of the Story
def linkedIssue = issueLink.getDestinationObject()
def customField = customFieldManager.getCustomFieldObjectByName("customfield_xxxx")
return linkedIssue.getCustomFieldValue(customField)
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Joshua,
Thanks for your code, I see cannot find matching method error at line 5 as shown
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Ash,
Sorry about that, that script contained a small error.
However, I think that script will not work for you anyway. Could you clarify the relationship between Issue A and Issue B? Is this correct:
In that case, a script like this should work:
import com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def subTasks = issue.getSubTaskObjects()
def childCfValue
if (subTasks) {
issue.getSubTaskObjects().each { subtask -> // go through sub-task issues
def customField = customFieldManager.getCustomFieldObject("customfield_12220")
childCfValue = subtask.getCustomFieldValue(customField)
}
}
return childCfValue
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Issue A is a Parent issue and Issue B is a linked issue to the parent issues.
Thank you, I will try this code and update you.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Joshua
Can I get the script for linked issues? I am trying to get it for a linked issue which should have a custom text field filled. If it is empty, my validator should through error.
Above script is working for subtasks. I tried to change it for linked issues but in vain, the linked issues script is not working, throwing error as shown in above screenshot of Ash
-Sumedh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.