Not able to use JQL with Script runner updated Custom Field

Vijay Sridhar March 29, 2016

Hi ,

updated the Text Field (single line) using script runner  , the script runner has updated the CustomFiled , but  not able to query using JQL with updated customField , it is not displaying any rows if updated custom Field used in JQL , but the value has been updated , updated column is Test_Email with Value 1001

Tried with Text & number in updation 

def tgtField = customFieldManager.getCustomFieldObjects(myIssue).find {it.name == "Test_Email"}
def changeHolder = new DefaultIssueChangeHolder();
tgtField.updateValue(null, myIssue, new ModifiedValue(issue.getCustomFieldValue(tgtField), "1001"),changeHolder);

Output from Database

mysql> select * from customfieldvalue where issue=(select id from jiraissue where issuenum='2079') and CUSTOMFIELD=11300;
+-------+-------+-------------+-----------+-------------+-------------+-----------+-----------+-----------+
| ID | ISSUE | CUSTOMFIELD | PARENTKEY | STRINGVALUE | NUMBERVALUE | TEXTVALUE | DATEVALUE | VALUETYPE |
+-------+-------+-------------+-----------+-------------+-------------+-----------+-----------+-----------+
| 41245 | 15500 | 11300 | NULL | 1001 | NULL | NULL | NULL | NULL |
+-------+-------+-------------+-----------+-------------+-------------+-----------+-----------+-----------+
1 row in set (0.00 sec)

Screen Shot After updating using the Script runner 

Jira_Jql.pngJira1_Jql.pngJira2_Jql.png 

2 answers

1 accepted

2 votes
Answer accepted
adammarkham
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.
March 29, 2016

You should use IssueService to update which will do the proper re-indexing for you after the update: https://docs.atlassian.com/jira/latest/com/atlassian/jira/bc/issue/IssueService.html#update-com.atlassian.jira.user.ApplicationUser-com.atlassian.jira.bc.issue.IssueService.UpdateValidationResult-

Here is some example code of how to use it in your script:

import com.atlassian.jira.component.ComponentAccessor

def user = ComponentAccessor.jiraAuthenticationContext.user.directoryUser
def issueManager = ComponentAccessor.issueManager
def issueService = ComponentAccessor.issueService

def issue = issueManager.getIssueObject("KEY")
def issueInputParameters = issueService.newIssueInputParameters()
issueInputParameters.setDescription("Updated description")

def validationResult = issueService.validateUpdate(user, issue.id, issueInputParameters)

if (validationResult.isValid()) {
    issueService.update(user, validationResult)
    log.info("Updated issue")
} else {
    log.info("Invalid update")
    log.info(validationResult.errorCollection)
}
Vijay Sridhar March 30, 2016

@Gabrielle Bautista [ACP-JA] @Adam Markham [Adaptavist]

Thanks for support 

After reindexing it's works fine ,

Added  indexManager.reIndex(issue); in the code to  Reindex the field 

 

0 votes
GabrielleJ
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.
March 29, 2016

Try re-indexing

Suggest an answer

Log in or Sign up to answer