I have customer listener script that updates fixVersions from epic to story. It works fine.
I need to add criteria that will only allow set fixVersoins from epic to story only when
'Merge' custom field is set to "Yes".
'Merge' is checkbox field.
I added following lines. But it does not work. Could you please take a look? Thank you
def CustomField customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName('Merge');
def value = issueObject.getCustomFieldValue(customField);
if (epicissue.getIssueType().getName() == "Epic")
issueLinkManager.getOutwardLinks(epicissue.id).each { issueLink ->
MutableIssue issue = issueLink.getDestinationObject() as MutableIssue;
if (issueLink.issueLinkType.name == "Epic-Story Link" &&
issue.getIssueType().name == "Story" && value == "Yes"
Additionally tried this
issue.getCustomFieldValue('Incremental Dev Merge') == "Yes"
Here is script
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.event.issue.IssueEvent;
import com.atlassian.jira.event.type.EventDispatchOption;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.customfields.CustomFieldType;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItemImpl;
import com.atlassian.jira.issue.index.IssueIndexingService;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.link.IssueLinkManager;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.project.version.VersionManager;
import com.atlassian.jira.util.ImportUtils;
import org.apache.log4j.Category;
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def epicissue = event.issue as MutableIssue
def issueObject = event.issue as Issue
def issueManager = ComponentAccessor.getIssueManager();
def versionManager = ComponentAccessor.getVersionManager();
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def CustomField customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName('Merge');
def value = issueObject.getCustomFieldValue(customField);
if (epicissue.getIssueType().getName() == "Epic")
issueLinkManager.getOutwardLinks(epicissue.id).each { issueLink ->
MutableIssue issue = issueLink.getDestinationObject() as MutableIssue;
if (issueLink.issueLinkType.name == "Epic-Story Link" &&
issue.getIssueType().name == "Story" && value == "Yes"
//issue.getCustomFieldValue('Incremental Dev Merge') == "Yes"
)
{
def currentValue = epicissue.getFixVersions()
issue.setFixVersions(currentValue);
issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
boolean wasIndexing = ImportUtils.isIndexIssues();
IssueIndexingService indexing = (IssueIndexingService) ComponentAccessor.getComponent(IssueIndexingService.class)
indexing.reIndex(issue)
ImportUtils.setIndexIssues(wasIndexing)
}
}
-----------------------------------------------------------------------------------------------------------
Tried this but still does not work.
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.event.issue.IssueEvent;
import com.atlassian.jira.event.type.EventDispatchOption;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.customfields.CustomFieldType;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItemImpl;
import com.atlassian.jira.issue.index.IssueIndexingService;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.link.IssueLinkManager;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.project.version.VersionManager;
import com.atlassian.jira.util.ImportUtils;
import org.apache.log4j.Category;
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def epicissue = event.issue as MutableIssue
def issueObject = event.issue as Issue
def issueManager = ComponentAccessor.getIssueManager();
def versionManager = ComponentAccessor.getVersionManager();
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
if (epicissue.getIssueType().getName() == "Epic")
issueLinkManager.getOutwardLinks(epicissue.id).each { issueLink ->
MutableIssue issue = issueLink.getDestinationObject() as MutableIssue;
//def CustomField customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Merge");
// def value = issue.getCustomFieldValue(customField);
def CustomField customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Merge");
def value = issue.getCustomFieldValue(customField)
if (issueLink.issueLinkType.name == "Epic-Story Link" &&
issue.getIssueType().name == "Story" && value == "YES"
)
{
def currentValue = epicissue.getFixVersions()
issue.setFixVersions(currentValue);
issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
boolean wasIndexing = ImportUtils.isIndexIssues();
IssueIndexingService indexing = (IssueIndexingService) ComponentAccessor.getComponent(IssueIndexingService.class)
indexing.reIndex(issue)
ImportUtils.setIndexIssues(wasIndexing)
}
}
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.