ScriptRunner explain IssueService, Options, and IssueInputParameter

Roberto L
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 24, 2017

Hello Community,

I am trying to change the value of a custom field of type checkbox.

I found code online that allows for this to hapen but I cant get it to work.

IssueService issueService = ComponentAccessor.getComponent(IssueService);
def optionsManager = ComponentAccessor.getComponent(OptionsManager);
IssueInputParameters issueInputParameters = issueService.newIssueInputParameters()

Issue issue = issueService.getIssue(user, documentIssue.getKey())?.issue

CustomField customField = customFieldManager.getCustomFieldObjectByName("Dev Reviewed")

Options options = optionsManager.getOptions(customField.getConfigurationSchemes().first().getOneAndOnlyConfig());

def selectedOptions = options.findAll {
it.value == "Yes"
}.collect {
it.optionId.toString()
}

issueInputParameters.addCustomFieldValue(customField.id, *selectedOptions)


def update = issueService.validateUpdate(user, issue.id, issueInputParameters)
if (update.isValid()) {
issueService.update(user, update)
}

Could someone walk me through this code and explain what is happening.

Primarly I am confused with how to set up my issueInputParameter such that it has the value I want for my Custom Field of type checkbox, which is value "Yes". 

Furthermore, I fail to understand what Options are and how I can levarage them to succesfully update a custom field.

Thank you for your time and expertise!

-Roberto

1 answer

1 accepted

0 votes
Answer accepted
Roberto L
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 25, 2017

Hi Community,

I figured this out myself.

IssueService: Used to update issues correctly

Options: Returns the options available for my customField. I need to get the ID of such options to change a value.

IssueInputParameter: Provide my the custom field I want changed and the ID as a string of the value which I want to change in the custom field

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events