survey
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
i have a catalog order guide named psra certificate request which when requested generates four ritm for security, vendor,privacy,software so i have a survey and trigger condition is when states changes to closed complete and item is psra certificate request or isdp general inquiry the survey should tigger but it is triggering only for isdp not for psra certificate request and survey should trigger for request on psra
15 REPLIES 15
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
(function executeRule(current, previous) {
// Only run when a RITM changes to Closed Complete
if (current.state != 3 || previous.state == 3)
return;
// Get the parent Request
if (!current.request)
return;
var req = current.request.getRefRecord();
// --- Detect if this request belongs to PSRA or ISDP ---
var isPSRA = false;
var isISDP = false;
// Check if any RITM in this request belongs to PSRA-related items
var checkRitm = new GlideRecord('sc_req_item');
checkRitm.addQuery('request', req.sys_id);
checkRitm.query();
while (checkRitm.next()) {
var itemName = checkRitm.cat_item.name.toString();
if (itemName.indexOf('Security Risk Assessment for Globe Projects and Initiatives') > -1 ||
itemName.indexOf('Vendor Risk Assessment for Globe Projects and Initiatives') > -1 ||
itemName.indexOf('Privacy Impact Assessment for Globe Projects and Initiatives') > -1 ||
itemName.indexOf('Software Assessment Request for Globe Projects and Initiatives') > -1) {
isPSRA = true;
}
if (itemName.indexOf('ISDP - General Inquiry') > -1) {
isISDP = true;
}
}
// --- Count Closed Complete RITMs under the same Request ---
var ritm = new GlideRecord('sc_req_item');
ritm.addQuery('request', req.sys_id);
ritm.query();
var total = 0;
var closed = 0;
while (ritm.next()) {
total++;
if (ritm.state == 3)
closed++;
}
// --- If all are Closed Complete ---
if (total > 0 && total == closed) {
gs.info('All RITMs under Request ' + req.number + ' are Closed Complete.');
// Update Request to Closed Complete
req.state = 3;
req.request_state = 'closed_complete';
req.stage = 'closed_complete';
req.update();
// Trigger survey only for ISDP or PSRA
try {
var surveySysId = '1408df6247d4fed0e9e31e1f116d438e'; // Replace with your survey sys_id
var asmt = new SNC.AssessmentCreation();
asmt.createAssessments(
surveySysId,
'sc_request',
req.sys_id,
req.requested_for
);
gs.info('Survey triggered successfully for Request ' + req.number);
} catch (e) {
gs.error('Error triggering survey for ' + req.number + ': ' + e);
}
}
})(current, previous);
