Skip to main content

ServiceNow SAMPLE REST MESSAGE POST - Service Catalog Cart API - How to Order a Catalog Item

 ServiceNow SAMPLE REST MESSAGE POST - Service Catalog Cart API - How to Order a Catalog Item on a Remote Instance

see Service Catalog API > jump to 'order_now' section

Using a REST Message


- enter the endpoint in this format:

https://dev126222.service-now.com/api/sn_sc/servicecatalog/items/${sys_id}/order_now

use variable substitution to populate the sys id. Note the sys id corresponds to the catalog item.


- add the HTTP Headers:





- add the HTTP Content:

example: 

{
"sysparm_quantity":"1",
"sysparm_requested_for":"ruen.catitem.user",
"variables":{
"test_variable":"this is a test 1",
"test_variable_2":"this is a test 2"
}
}

or here's how you could use variable substitution in the content:

{
"sysparm_quantity":"1",
"sysparm_requested_for":"ruen.catitem.user",
"variables":{
"test_variable":"${variable_1}",
"test_variable_2":"${variable_2}"
}
}




Preview Script Usage

try {
var r = new sn_ws.RESTMessageV2('RemoteServiceNowInstance', 'post_new_request');
//var authentication_type = 'basic';
//var profile_name = '6016d39dc3ef3510311f1c5ce00131f1';
//--override authentication profile
//--authentication type ='basic'/ 'oauth2'
//r.setAuthenticationProfile(authentication_type, profile_name);

r.setStringParameterNoEscape('sys_id', '36376791c3637510311f1c5ce001319c');
r.setStringParameterNoEscape('sysparm_quantity', '1');
r.setStringParameterNoEscape('variable_2', 'test 2');
r.setStringParameterNoEscape('variable_1', 'test 1');
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();

gs.print('response code='+httpStatus);

//--get the number of the new REQ:
var resp=JSON.parse(responseBody);
gs.print(resp.result.number); //--e.g. REQ
}
catch(ex) {
var message = ex.message;
}



Comments

Popular posts from this blog

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }

ServiceNow - script include: build up the results as a JSON object (array) - example 2

function call var sCurrentGroupMembers = new <script_include> (). getGroupMembers ( group_sysid ); gs . print ( 'sCurrentGroupMembers:' + sCurrentGroupMembers ); var oGroupMembers = JSON . parse ( sCurrentGroupMembers ); gs . print ( JSON . stringify ( oGroupMembers . users )); oNewGroupMember = JSON . parse ( group_members ); var oGroupConfig = getGroupDeltas ( oGroupMembers . users , oNewGroupMember ); gs . print ( JSON . stringify ( oGroupConfig . remove )); gs . print ( JSON . stringify ( oGroupConfig . add )) output : *** Script: sCurrentGroupMembers: {"manager":"3b2649efdb0f8c10cc0652f3f39xxxxx", "email":"", "type":"33a2226edb99c340edfc7cbdae96xxxx", "description":"Created for xyz", "users":[{"user":"3b2649efdb0f8c10cc0652f3f396xxxx"},{"user":"856a8f71db3d73041b4ffc45ae96196a"},{"user":"3752771