I saw information about converting field and connect it to rest endpoint, but can I setFormValue in behaviors via rest endpoint? It returns only one value like:
{"items":[{"value":3437754,"html":3437754,"label":3437754}]}
Script in behaviors:
I've encountered this.
I normally use formField.convertToSingelSelect([ajaxOptions:[...]])
But I found that I can't also set a value programmatically with that.
So, when i need to set the value dynamically, I use formField.convertToSingelSelect().setFieldOptions(map) instead.
Something like this:
import com.atlassian.jira.component.ComponentAccessor
import groovy.json.JsonParserType
import groovy.json.JsonSlurper
import com.atlassian.sal.api.net.Request
import com.atlassian.sal.api.net.TrustedRequest
import com.atlassian.sal.api.net.TrustedRequestFactory
import groovyx.net.http.URIBuilder
import com.onresolve.scriptrunner.runner.customisers.PluginModule
def currentUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser
@PluginModule TrustedRequestFactory trustedRequestFactory
def options = [:]
options.put("":"") //this is to have a blank option at the top
def url = "$baseUrl/rest/url"
//create a trusted request to the target url
def request = trustedRequestFactory.createTrustedRequest(Request.MethodType.GET, url) as TrustedRequest
request.addTrustedTokenAuthentication(new URIBuilder(baseUrl).host, currentUser.username)
//prepare the parser
def parser = new JsonSlurper().setType(JsonParserType.INDEX_OVERLAY)
//execute the request
def response = request.execute()
def jsonResp = parser.parseText(response)
jsonResp.items.each {
options.put(it.html, it.html)
}
field.convertToSingleSelect().setFieldOptions(options)
field.setFormValue('someDefaultValue')
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.