logo

NJP

ServiceNow Submit a Request Using Cart API - 2 Approaches

ServiceNow Blog · Sep 24, 2024 · article

ServiceNow Submit a Request Using Cart API - 2 Approaches

1) cart_api object

2) using table api

--

varinstName = gs.getProperty('instance_name');

if(instName == 'xxdev' || instName == 'xxdev2') {

submitRequest(); //--CART API

//submitRequest_tableapi(instName); //--TABLE API - useful to target a remote instance

}

function submitRequest() {

varsRequestedFor = gs.getUserID();

varsApplicationName = 'test_app';

varsEnvironment = 'DEV';

varsMetaData = '';

varsOwnerEmails = 'test@test.com';

varsTenantID = xxxxx-4718-4590-a921-xxxxxxxxx;

var sReplyURL = 'www.test123.com';

varsManager = 'bfdb471e1b3931500b2c2f876e4xxxxx';

varsAppDescription = 'test-1234';

varsURL_1 = 'www.test456.com'

varcart = new sn_sc.CartJS();

varitem = {

'sysparm_id': 'f18a7b2b93681650aba13249583xxxxx',

'sysparm_quantity': '1',

'variables': {

'requested_for': sRequestedFor,

'requesting_user': sRequestedFor,

'requested_for_manager': sManager,

'application_name': sApplicationName,

'environment': sEnvironment,

'spm_name': sApplicationName,

'where_to_federate': 'azure',

'app_description': sAppDescription,

'federation_type': 'SAML',

'app_it_owner': sManager,

'sso_type': 'SAML',

'metadata': sMetaData,

'primary_id': 'KAID',

'owner_emails': sOwnerEmails,

'tenant_id': sTenantID,

'reply_url': sReplyURL,

'logout_url': sURL_1,

'application_documentation_url': sURL_1,

'lifespandays': '360'

}

};

//var cartDetails = cart.addToCart(item);

varcartDetails = cart.orderNow(item);

//-- in case of errors, this will throw the error:

gs.print(JSON.stringify(cartDetails));

gs.print(cartDetails.number);

}

function submitRequest_tableapi(inst) {

varsRequestedFor = gs.getUserID();

varrequest = new sn_ws.RESTMessageV2();

varsn_instance = 'https://' + inst + '.service-now.com';

varcat_item_sysid = 'f18a7b2b93681650aba13249583xxxxx'; //--

varcatalogapi_url = '/api/sn_sc/servicecatalog/items/' + cat_item_sysid + '/order_now';

varsEndPoint = sn_instance + catalogapi_url;

//gs.print('sEndPoint='+sEndPoint);

request.setEndpoint(sEndPoint);

request.setHttpMethod('POST');

varsApplicationName = 'test_app';

varsEnvironment = 'DEV';

varsMetaData = '';

varsOwnerEmails = test@test.com';

var sTenantID = 'xxxx-4718-4590-a921-f17exxxxx';

varsReplyURL = 'www.test123.com';

varsManager = 'bfdb471e1b3931500b2c2f876e4xxxxx';

//--OPTION 1:

//var sUser = ‘xuser’;

//var password = gs.getProperty('testuser.pwd');

//request.setBasicAuth(user, password);

//--OPTION 2:

varauthentication_type = 'basic';

varprofile_name = '923c8486fb305ad42478f4ff4exxxxxx'; //--sys_id of sys_auth_profile_basic record

request.setAuthenticationProfile(authentication_type, profile_name);

request.setRequestHeader("Accept", "application/json");

//--data:

var JSON_cat_item = "{";

JSON_cat_item += "sysparm_quantity: 1";

JSON_cat_item += ",";

JSON_cat_item += "variables: {";

JSON_cat_item += "requested_for: '" + sRequestedFor + "',"; //--MUST contain the ' ' or throws an error

JSON_cat_item += "requesting_user: '" + sRequestedFor + "',"; //--MUST contain the ' ' or throws an error

JSON_cat_item += "requested_for_manager: '" + sManager + "',"; //--MUST contain the ' ' or throws an error

JSON_cat_item += "application_name: '" + sApplicationName + "',";

JSON_cat_item += "environment: '" + sEnvironment + "',";

JSON_cat_item += "spm_name: '" + sApplicationName + "',";

JSON_cat_item += "where_to_federate: '" + 'azure' + "',";

JSON_cat_item += "app_description: '" + 'test124' + "',";

JSON_cat_item += "federation_type: '" + 'SAML' + "',";

JSON_cat_item += "app_it_owner: '" + sManager + "',";

JSON_cat_item += "sso_type: '" + 'SAML' + "',";

JSON_cat_item += "metadata: '" + sMetaData + "',";

JSON_cat_item += "primary_id: '" + 'KAID' + "',";

JSON_cat_item += "tenant_id: '" + sTenantID + "',";

JSON_cat_item += "owner_emails: '" + sOwnerEmails + "',";

JSON_cat_item += "reply_url: '" + sReplyURL + "',";

JSON_cat_item += "logout_url: '" + sReplyURL + "',";

JSON_cat_item += "application_documentation_url: '" + sReplyURL + "',";

JSON_cat_item += "lifespandays: '" + '360' + "'";

JSON_cat_item += "}";

JSON_cat_item += "}";

request.setRequestBody(JSON_cat_item);

varresponse = request.execute();

//gs.log('RESP=' + response.getBody());

gs.print('httpstatus=' + response.getStatusCode());

varjson_string = JSON.parse(response.getBody());

gs.print('REQ RESP=' + JSON.stringify(json_string));

varsReqNum = json_string.result.number;

gs.print('REQUEST NUMBER=' + sReqNum);

}

View original source

http://www.cloudminus89.com/2024/09/servicenow-submit-request-using-cart.html