Create Request/RITM via API
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2021 10:40 AM
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-21-2021 01:39 AM
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
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-21-2021 02:31 PM
request.setRequestBody(JSON.stringify(obj));
var response = request.execute();
gs.info(response.getBody());
It gives me below error
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-21-2021 02:33 PM
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);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-21-2021 09:42 PM
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
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2021 07:51 AM
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