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

Brad Tilton
ServiceNow Employee
ServiceNow Employee

The value in a reference field/variable is actually the sys_id of the record being referenced, so I would try passing that instead of the display name of the group. Here is a doc on sys_ids: https://docs.servicenow.com/bundle/london-platform-administration/page/administer/table-administrati...

Thanks...So in this case it would be the sys_id of the Workgroup (TSU-Middleware)...correct?

Brad Tilton
ServiceNow Employee
ServiceNow Employee

If the variable is referencing the group [sys_user_group] table then it would be sys_id of the TSU-Middleware group on that table.

Ok thanks...now I just have to figure out how I can get access to the sys_ids in that table.