Create Request/RITM via API

CA5
Tera Contributor

@Ankur Bawiskar  Could you please provide me step by step instructions to create Request/RITM in servicenow Instance via Rest API from third party tool.

Note: First, request form will be submitting on third party tool and it should create a request in servicenow instance with same form data [payload will be provided to insert or create request in servicenow instance].

How can we achieve this requirement?

Link

18 REPLIES 18

Hi,

sample script below

try to debug and enhance further

var obj = {};
obj['sysparm_id'] = current.cat_item.sys_id.toString();
obj['sysparm_quantity'] = 1;

var variableObj = {};
variableObj['acrobat'] = current.variables.acrobat.toString();
variableObj['Additional_software_requirements'] = current.variables.Additional_software_requirements.toString();
variableObj['photoshop'] = current.variables.photoshop.toString();

obj['variables'] =  JSON.stringify(variableObj);

var request = new sn_ws.RESTMessageV2();
request.setEndpoint('https://instanceName.service-now.com/api/sn_sc/servicecatalog/items/' + current.cat_item.sys_id + '/order_now');
request.setHttpMethod('POST');

//Eg. UserName="admin", Password="admin" for this code sample.
var user = 'admin';
var password = 'admin';

request.setBasicAuth(user,password);
request.setRequestHeader("Accept","application/json");
request.setRequestHeader('Content-Type','application/json');
request.setRequestBody(JSON.stringify(obj));
var response = request.execute();
gs.info(response.getBody());

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

 

request.setRequestBody(JSON.stringify(obj));
var response = request.execute();
gs.info(response.getBody());

It gives me below error

find_real_file.png

 

If I make changes like below

 

request.setRequestBody(obj);
var response = request.execute();
gs.info(response.getBody());

 

Then get this below message and no request creates on Instance B

 

find_real_file.png

 

CA5
Tera Contributor

I tried it via background script as well

 

var obj = {};
obj['sysparm_quantity'] = 1;

var variableObj = {};
variableObj['acrobat'] = 'true';
variableObj['Additional_software_requirements'] = 'test';
variableObj['photoshop'] = 'true';

obj['variables'] = JSON.stringify(variableObj);


var r = new sn_ws.RESTMessageV2('SendReqDetailto3rdParty', 'Post');
r.setEndpoint('https://XXXXXX.service-now.com/api/sn_sc/servicecatalog/items/04b7e94b4f7b4200086eeed18110c7fd/order_now');
r.setHttpMethod('POST');
r.setRequestBody(obj);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
gs.info("responseBody" +responseBody);

Hi,

you are not telling the API which catalog item sys_id to use in the body

var obj = {};
obj['sysparm_quantity'] = 1;

obj['sysparm_id'] = '04b7e94b4f7b4200086eeed18110c7fd';

var variableObj = {};
variableObj['acrobat'] = 'true';
variableObj['Additional_software_requirements'] = 'test';
variableObj['photoshop'] = 'true';

obj['variables'] = JSON.stringify(variableObj);


var r = new sn_ws.RESTMessageV2('SendReqDetailto3rdParty', 'Post');
r.setEndpoint('https://XXXXXX.service-now.com/api/sn_sc/servicecatalog/items/04b7e94b4f7b4200086eeed18110c7fd/order_now');
r.setHttpMethod('POST');
r.setRequestBody(obj);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
gs.info("responseBody" +responseBody);

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Ajay37
Tera Contributor

Hi CA,

Did you figure out the issue, I got the same requirement and getting the same error in logs. Could you please help?

Thanks