Hey Folks,
at the moment I am facing the problem how to update a multi-user picker field with ScriptRunner. I know the documentation Set User and Group Picker Fields And how to update the field with a specific number of Users.
I need to fill the field with users of an Organization and a group. I already have an array with all the IDs but I am not able to ad it in the body.
In the request body around the inserted String some quotation marks appear which are not needed. Do someone has an Idea how to get rid of them?
Thank you all and have a merry X-mas
Here is some code:
logger.info(visibleForUsers.toString())
StringBuilder sb = new StringBuilder()
String separator = ""
for(accountId in visibleForUsers){ //visibleForUsers contains all the user Ids
sb.append(separator + accountId + "]")
separator = ",[id:";
}
String visibleForUsersAsString = sb.insert(0, "[").append("]").toString()
logger.info(visibleForUsersAsString)
//[[id:5ad9b1d51b0caa2d33f96011],[id:5d53cf6cab24bf0d99416a6f]]
//send Request with all relevant users
result = put("/rest/api/2/issue/" + issueKey)
.header('Content-Type', 'application/json')
.body([
fields:[
customfield_10053 : visibleForUsersAsString
]
]).asString()
// logger.info(result.status.toString())
if(result.status == 200){
return result
}else{
return "failure"
}
Hi @Robin Weiß
Welcome to community, editing a user field on Cloud would require accountId as key with the alphanumeric string as value. So from your code, if you're getting a list of
[[id:5ad9b1d51b0caa2d33f96011],[id:5d53cf6cab24bf0d99416a6f]]
You might not be able to update such, as it would require it in a dictionary e.g {"accountId": "5ad9b1d51b0caa2d33f96011"}
So you have to update your code to generate the payload as above before using PUT request on the API.
Hi @Prince Nyeche ,
Thanks for your answer.
I just tried it with curly brackets but the error still occurs.
When I run this code it works perfektly:
result = put("/rest/api/2/issue/" + issueKey)
.header('Content-Type', 'application/json')
.body([
fields:[
customfield_10053: [[id:"5ad9b1d51b0caa2d33f96011"],[id:"5d53cf6cab24bf0d99416a6f"]]
]
]).asString()
But when inserting it as a String what is what I need to have a dynamic Skript it does not not work at all:
def visibleForUsersAsString = "[[id:\"5ad9b1d51b0caa2d33f96011\"],[id:\"5d53cf6cab24bf0d99416a6f\"]]"
result = put("/rest/api/2/issue/" + issueKey)
.header('Content-Type', 'application/json')
.body([
fields:[
customfield_10053: visibleForUsersAsString
]
]).asString()
Maybe you have an idea.
Thanks.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.