Skip to content

Commit 4c301b8

Browse files
Create cartjs_create_request.js
Add JavaScript implementation with examples
1 parent e9c6856 commit 4c301b8

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Create catalog requests programmatically using CartJS API
2+
// Tested in background script on dev instance - successfully created REQ records
3+
// Works for automation workflows and bulk operations
4+
5+
function createCatalogRequest(catalogItemSysId, requestedFor, requestData) {
6+
var cart = new sn_sc.CartJS();
7+
8+
var item = {
9+
"sysparm_id": catalogItemSysId,
10+
"sysparm_quantity": "1",
11+
"variables": requestData
12+
};
13+
14+
cart.addToCart(item);
15+
var result = cart.checkoutCart();
16+
17+
return {
18+
request_id: result.request_id,
19+
request_number: result.request_number
20+
};
21+
}
22+
23+
// Basic usage example
24+
var catalogItem = 'YOUR_CATALOG_ITEM_SYS_ID';
25+
var user = gs.getUserID();
26+
var data = {
27+
"short_description": "Automated request"
28+
};
29+
30+
var req = createCatalogRequest(catalogItem, user, data);
31+
gs.info('Created: ' + req.request_number);
32+
33+
// Example with CI reference
34+
var req = createCatalogRequest(catalogItem, current.assigned_to, {
35+
"configuration_item": current.sys_id,
36+
"short_description": "Request for " + current.name
37+
});
38+
39+
// Get the generated task if needed
40+
var req = createCatalogRequest(catalogItem, user, data);
41+
if (req.request_id) {
42+
var gr = new GlideRecord('sc_task');
43+
gr.addQuery('request', req.request_id);
44+
gr.query();
45+
if (gr.next()) {
46+
gs.info('Task: ' + gr.number);
47+
}
48+
}

0 commit comments

Comments
 (0)