I want to bulk copy using JQL, a text field to a number field using scriptrunner
The OOB built in scriptrunner bulk copy function doesnt support text to number field
here's how, use this in the script console on scriptrunner side:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.search.SearchProvider
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.jql.parser.JqlQueryParser
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.issue.search.SearchQuery
import com.atlassian.jira.issue.MutableIssue
log.warn("--- Start script -----------------------------------")
def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser)
def searchProvider = ComponentAccessor.getComponent(SearchProvider)
def issueManager = ComponentAccessor.issueManager
def user = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def customFieldManager = ComponentAccessor.customFieldManager
//sourceCF
def customFieldOld = customFieldManager.getCustomFieldObject(13304)
//destinationCF
def customFieldNew = customFieldManager.getCustomFieldObject(15401)
def issueChangeHolder = new DefaultIssueChangeHolder()
// edit this JQL query for issue set that you want to change
def query = jqlQueryParser.parseQuery("cf[13304] is not EMPTY")
def searchResults = searchProvider.search(SearchQuery.create(query, user), PagerFilter.unlimitedFilter)
log.warn("Total issues: ${searchResults.total}")
searchResults.results.each { documentIssue ->
def key = documentIssue.document.fields.find { it.name() == "key" }.stringValue()
def issue = issueManager.getIssueObject(key)
//parsing from string of customFieldOld to double
def newValue = Double.parseDouble(issue.getCustomFieldValue(customFieldOld).toString())
//set new field with newValue int
customFieldNew.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customFieldOld), newValue), new DefaultIssueChangeHolder())
}
log.warn("------------------------------------------- End script ---")
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.