Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Custom field as filler in scriptrunner script

helen levich
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 15, 2019

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)
}
}

1 answer

0 votes
Raynard Rhodes
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 15, 2019

 

 

Suggest an answer

Log in or Sign up to answer