Name
sn_hr_core.hr_BulkCaseRequestAjaxUtils
Description
No description available
Script
var hr_BulkCaseRequestAjaxUtils = Class.create();
hr_BulkCaseRequestAjaxUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
initialize: function(request, responseXML, gc) {
global.AbstractAjaxProcessor.prototype.initialize.call(this, request, responseXML, gc);
this.canReadBulkCaseUserSegment = new GlideRecord('sn_hr_core_bulk_case_user_segment').canRead();
},
/**
* Method to find total number of user-segments to process bulk-case-request
* by querying `bulk case user segment` record to find `included` users for provided `bulk case request ID`
*
* @params: (extracted from caller)
* sysparm_bulkCaseRequestID: bulk case request unique ID
*
* @returns {Object} containing properties
* error - {string} message if encountered
* success - {object} containing user-segment count marked `included` and string message for GlideModal
*/
getIncludedUserSegmentData: function() {
var response = {};
var bulkCaseRequestID = this.getParameter('sysparm_bulkCaseRequestID');
var createParentCase = this.getParameter('sysparm_createParentCase');
if (gs.nil(bulkCaseRequestID))
return JSON.stringify({
error: gs.getMessage("Missing required parameter 'sysparm_bulkCaseRequestID'")
});
if (!this.canReadBulkCaseUserSegment)
return JSON.stringify({
error: gs.getMessage('Invalid user. Access denied.')
});
//get `included` user-segment count
var bulkCaseUserSegmentGR = new GlideRecord('sn_hr_core_bulk_case_user_segment');
bulkCaseUserSegmentGR.addQuery('user_segment_group.bulk_case_request', bulkCaseRequestID);
bulkCaseUserSegmentGR.addQuery('status', 'included');
bulkCaseUserSegmentGR.query();
bulkCaseUserSegmentGR.next();
var includedBulkCaseUserSegmentCount = bulkCaseUserSegmentGR.getRowCount();
if (includedBulkCaseUserSegmentCount < 1)
return JSON.stringify({
error: gs.getMessage("No user-segment record found for 'Bulk case request' - {0}", bulkCaseRequestID)
});
else {
if (createParentCase)
includedBulkCaseUserSegmentCount++;
var successMessage = (includedBulkCaseUserSegmentCount == 1) ? gs.getMessage('One case will be created.') : gs.getMessage('{0} cases will be created.', includedBulkCaseUserSegmentCount+'');
return JSON.stringify({
success: {
userCount: includedBulkCaseUserSegmentCount,
message: successMessage,
info: this._getCautionMessage(bulkCaseUserSegmentGR.user_segment_group.bulk_case_request.hr_service.topic_detail.topic_category.coe+'', includedBulkCaseUserSegmentCount)
}
});
}
},
_getCautionMessage: function(COE, caseCount) {
var isHRCoreCase = COE.startsWith('sn_hr_core_case');
var isLECase = COE.startsWith('sn_hr_le_case');
if (isHRCoreCase && (caseCount > 10000))
return gs.getMessage('Processing performance may be affected when creating more than 10,000 HR cases.');
if (isLECase && (caseCount > 1000))
return gs.getMessage('Processing performance may be affected when creating more than 1000 Lifecycle Event cases.');
},
type: 'hr_BulkCaseRequestAjaxUtils'
});
Sys ID
76a2b9ca0f832010af170c3635767e30