How to set reference variables in Catalog API posts

mtuman
Giga Contributor
I'm currently working with the ServiceNow Catalog Rest API in Java. I have successfully added items to my cart and submitted my cart, however whenever a variable in the body of my post is of type reference I am unable to set it's value. The ticket that gets created is just empty in these fields. Below is a small example of my code.
 
     
   HttpPost post = new HttpPost();


post.setURI(new URI("https://myinstance/api/sn_sc/servicecatalog/items/" + itemId + "/add_to_cart")); String encoding = Base64.getEncoder().encodeToString(("User:Password").getBytes("UTF- 8")); String authHeader = "Basic " + encoding; post.setHeader(HttpHeaders.AUTHORIZATION, authHeader); post.setHeader("Content-Type", "application/json"); /*WorkgroupAssignment is of type reference and never gets set.While short_description' always gets set.*/ String data = "{'sysparm_quantity': 1,'variables': {'short_description': 'Example description','WorkgroupAssignment':'TSU-Middleware'}; StringEntity entity = new StringEntity(data); /** * ******************* * and now the body.. * ******************* */ post.setEntity(entity);

WorkgroupAssignment is of type reference. Is there something special I have to do to set variables of type reference?

Thanks

12 REPLIES 12

The only issue i see here is you are missing closing brace } in the body

 

Here is the format

{
'sysparm_quantity': 1,
'variables': {
'short_description': 'Test description',
'WorkgroupAssignment':'89e10e5d1f654ec9a627bbef202af78c'
}
}

mtuman
Giga Contributor

Sorry...in my actual code I have that closing brace. I guess when I copied and pasted I left it out

 

and is '89e10e5d1f654ec9a627bbef202af78c' sys_id from groups table?

and does the integration user has access to the particular group record?