I'm having some issues getting the request type value on issues. The string I get back is similar to:
bap/df17bef0-04d3-43d2-be22-f393f6a3e655
I assume I need to feed that to some methode from the Service Desk API to get a usable string. Has anyone found a solution for this?
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.servicedesk.api.requesttype.RequestTypeService
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
@WithPlugin("com.atlassian.servicedesk")
def requestTypeService = ComponentAccessor.getOSGiComponentInstanceOfType(RequestTypeService)
def reqQ = requestTypeService.newQueryBuilder().issue(issue.id).build()
def reqT = requestTypeService.getRequestTypes(currentUser, reqQ)
def requestType = reqT.right.results[0].getName()
Hi @Justin
I'm using your code to create a validation.
The user select the "Alpha" service but the get load "Beta" service.
...
@WithPlugin("com.atlassian.servicedesk")
RequestTypeService requestTypeService = ScriptRunnerImpl.getPluginComponent(RequestTypeService)
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def reqQ = requestTypeService.newQueryBuilder().issue(issue.id).build()
def reqT = requestTypeService.getRequestTypes(currentUser, reqQ)
def requestTypeName = reqT.right.results[0].getName()
log.warn("REQUEST TYPE" + requestTypeName)
if (requestTypeName == "Alpha"){
blah
}
the log warn shows
WARN [jira.groovy]: REQUEST TYPE Beta
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have a similar problem with a validator on issue creation
def reqQ = requestTypeService.newQueryBuilder().issue(issue.id).build()
issue.id is null before issue is actually created, so the code above doesn't work correctly
I've only managed to get requestType with the deprecated method:
RequestType requestType = requestTypeService.getRequestTypeForIssue(currentUser, issue).right().get()
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
With most recent JSD versions, the right() method is no longer needed:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.servicedesk.api.requesttype.RequestTypeService
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
@WithPlugin("com.atlassian.servicedesk")
def issueManager = ComponentAccessor.getIssueManager()
def issue = issueManager.getIssueObject("TEST-1")
def requestTypeService = ComponentAccessor.getOSGiComponentInstanceOfType(RequestTypeService)
def userManager = ComponentAccessor.getUserManager()
def robotUser = userManager.getUserByName("robot")
def reqQ = requestTypeService.newQueryBuilder().issue(issue.id).build()
def reqT = requestTypeService.getRequestTypes(robotUser, reqQ)
def requestTypeName = reqT.getResults()[0].getName()
return requestTypeName
Nicolas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
How are you getting that?
Using the following code:
def customFieldManager = ComponentAccessor.customFieldManager def customField = customFieldManager.getCustomFieldObjectByName("Customer Request Type") log.debug(issue.getCustomFieldValue(customField))
I get "srjsup/get-it-help"
The format of this is portalId / request-type-key.
I've dug around to try to get the proper display name, but service desk is half-written in scala, and it doesn't decompile nicely.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thats pretty much what I had been doing and was receivng that ID back instead of the name. I finally got this solved with the below code. My biggest issue with it is using a deprecated methode in getRequestTypeForIssue. I can't seem to figure out the newer methodes using a query builder, can't find any helpful examples either.
import com.atlassian.servicedesk.api.requesttype.RequestTypeService import com.atlassian.servicedesk.api.requesttype.RequestType import com.onresolve.scriptrunner.runner.customisers.PluginModule import com.onresolve.scriptrunner.runner.customisers.WithPlugin @WithPlugin("com.atlassian.servicedesk") @PluginModule RequestTypeService requestTypeService def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() RequestType getRequestType = requestTypeService.getRequestTypeForIssue(currentUser, issue).right().get() String requestTypeName = getRequestType.getName()
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Your welcome, happy it was helpful!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi, Justin. Did you manage to find out how to use query builder to get request names by id?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I did :)
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.servicedesk.api.requesttype.RequestTypeService
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
@WithPlugin("com.atlassian.servicedesk")
def requestTypeService = ComponentAccessor.getOSGiComponentInstanceOfType(RequestTypeService)
def reqQ = requestTypeService.newQueryBuilder().issue(issue.id).build()
def reqT = requestTypeService.getRequestTypes(currentUser, reqQ)
def requestType = reqT.right.results[0].getName()
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
works thanks !!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
What is the proper way of retrieving the request type icon url? RequesType has a method .getIconId() which returns the id of the icon but what next? How can we retrieve the url to this icon?
Thank you,
Philip
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello.
How or where can I use that string? I'm a novice Jira user who is still getting the same error: request type id onstead of request type name.
I would appreciate your answer.
Kind regards.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.