Name
sn_hr_core.hr_ServiceConfigUtil
Description
No description available
Script
/* NOTE: All methods in this script include were added in Jakarta and deprecated in Kingston
* they are only here for backwards compatibility, and should not be referenced in new code
*/
var hr_ServiceConfigUtil = Class.create();
hr_ServiceConfigUtil.prototype = {
initialize: function() {
},
getInitInfo: function(sysId, mainTable, templateTable) {
var initInfo = {};
var grMain = new GlideRecord(mainTable);
if(grMain.get(sysId)){
initInfo.hrServiceName = gs.nil(grMain.name)? '' : grMain.name.toString();
initInfo.hrServiceValue = gs.nil(grMain.value)? '' :grMain.value.toString();
initInfo.active = gs.nil(grMain.active)? '' :grMain.active.toString();
initInfo.topicDetailValue = gs.nil(grMain.topic_detail)? '' :grMain.topic_detail.toString();
initInfo.topicDetailName = gs.nil(grMain.topic_detail.getDisplayValue())? '' :grMain.topic_detail.getDisplayValue().toString();
initInfo.description = gs.nil(grMain.description)? '' :grMain.description.toString();
initInfo.recordProducer = {value:'', name:''};
initInfo.recordProducer.value = gs.nil(grMain.getValue('producer'))? '' :grMain.getValue('producer').toString();
initInfo.recordProducer.name = gs.nil(grMain.getDisplayValue('producer'))? '' :grMain.getDisplayValue('producer').toString();
initInfo.instructions = gs.nil(grMain.fulfillment_instructions)? '' :grMain.fulfillment_instructions.toString();
initInfo.hrCaseOptions = {};
initInfo.hrCaseOptions.valueList = gs.nil(grMain.getValue('case_options'))? '' :grMain.getValue('case_options').toString();
initInfo.hrCaseOptions.nameList = gs.nil(grMain.getDisplayValue('case_options'))? '' :grMain.getDisplayValue('case_options').toString();
initInfo.relRelatedLists = {availableData: [], selectedData: []};
initInfo.relRelatedLists.selectedData = this._getSelectedRelatedLists(grMain.getValue('subject_person_related_lists'), grMain.getDisplayValue('subject_person_related_lists'));
initInfo.relRelatedLists.availableData = this._getAvailableRelatedLists();
}
return initInfo;
},
saveHRService: function(jsonData, sysid) {
var res = {result: true};
var grHrService = new GlideRecord('sn_hr_core_service');
var fieldsCount = jsonData.hrService.length;
if(grHrService.get(sysid)){
for(var i =0; i<fieldsCount;i++){
var nm = jsonData.hrService[i].field;
grHrService.setValue(nm, jsonData.hrService[i].value);
}
res.result = grHrService.update();
}
return res;
},
getTopicInfo: function(topicDetail, hrCOE) {
var exlusionFieldsList = [
'sys_updated_on',
'sys_created_by',
'sys_domain_path',
'sys_class_name',
'sys_updated_by',
'sys_created_on',
'sys_domain',
'sys_id',
'sys_mod_count',
'sys_tags'
];
var topicInfo = {
coe: '',
topicCatDisplayValue: '',
topicCatValue: '',
availableData: [],
templateFields: []
};
var jsonParser = new global.JSON();
var grTopic = new GlideRecord('sn_hr_core_topic_detail');
grTopic.addQuery('sys_id',topicDetail);
grTopic.query();
if(grTopic.next()){
var coe = grTopic.topic_category.coe.toString();
topicInfo.coe = coe;
topicInfo.topicCatDisplayValue= grTopic.topic_category.name.toString();
topicInfo.topicCatValue = grTopic.topic_category.toString();
var grDictionary = new GlideRecord(coe);
grDictionary.setLimit(1);
grDictionary.query();
var grElements = grDictionary.getElements();
var elementsLength = grElements.length;
for(var i = 0; i < elementsLength; i++){
var qualifier = '';
var elementName = grElements[i].getLabel().toString();
var elementValue = grElements[i].getName().toString();
var elementTable = grElements[i].getED().getTableName().toString();
var templateField = {};
if (grElements[i].getED().getInternalType().toString() == "reference" || grElements[i].getED().getInternalType().toString() == "glide_list") {
var refDetails = this._getReferenceDetails(elementValue, elementTable, coe);
templateField.reference = refDetails.reference;
templateField.qualifier = refDetails.qualifier;
}
if (grElements[i].getED().getInternalType().toString() != "variables" && (elementValue.indexOf("sys_") < 0)){
topicInfo.availableData.push({name:elementName, value:elementValue});
templateField.display = grElements[i].getLabel().toString();
templateField.name = grElements[i].getName().toString();
templateField.type = grElements[i].getED().getInternalType().toString();
templateField.table = coe;
templateField.choiceInteger = this._getChoiceInteger(elementValue, elementTable);
templateField.isChoice = grElements[i].getED().isChoiceTable().toString();
templateField.value = '';
topicInfo.templateFields.push(templateField);
}
}
} else {
topicInfo.coe = 'Not found';
topicInfo.topicCatDisplayValue = 'Not found';
topicInfo.topicCatValue = 'Not found';
topicInfo.availableData = [];
topicInfo.templateFields = [];
}
return topicInfo;
},
getCOEList: function() {
var coeList = {
coes: [{
name: 'HR Case [sn_hr_core_case]',
value: 'sn_hr_core_case'
}]
};
var grDBObject = new GlideRecord('sys_db_object');
grDBObject.addQuery('super_class.name','sn_hr_core_case');
grDBObject.query();
while(grDBObject.next()){
coeList.coes.push({name:grDBObject.label.toString() + ' [' + grDBObject.name.toString() + ']', value: grDBObject.name.toString()});
}
return coeList;
},
getActiveCOEList: function() {
var activeCOEList = [
{
name: 'HR Case',
value: 'sn_hr_core_case'
}
];
var grDBObject = new GlideRecord('sys_db_object');
grDBObject.addQuery('super_class.name','sn_hr_core_case');
grDBObject.query();
while(grDBObject.next()){
if(this._activeCOE(grDBObject.name))
activeCOEList.push({name:grDBObject.label.toString(), value: grDBObject.name.toString()});
}
return activeCOEList;
},
/* An Active COE is either a customer/unlicensed COE which does not appear in the license
* COE license configuration table or one that is licensed and has a COE table:active = true
*/
_activeCOE: function(coeTable) {
var grCOEConfig = new GlideRecord('sn_hr_core_coe_config_matching');
if(grCOEConfig.get('table', coeTable)) {
var grCOE = new GlideRecord('sn_hr_core_coe');
if(grCOE.get(grCOEConfig.coe))
return grCOE.active;
}
return true;
},
getTemplatePriority: function() {
var templatePriority = {
priorityList: []
};
var grPriority = new GlideRecord('sys_choice');
grPriority.addQuery('name', 'task');
grPriority.addQuery('element', 'priority');
grPriority.query();
while(grPriority.next())
templatePriority.priorityList.push({name: grPriority.label.toString(), value: grPriority.value.toString()});
return templatePriority;
},
getChoiceList: function(choiceTable, choiceField) {
var jsonChoiceList = {
choiceList: []
};
var choices = new GlideChoiceList.getChoiceList(choiceTable, choiceField);
var numChoices = choices.getSize();
for(var i = 0; i < numChoices; i++)
jsonChoiceList.choiceList.push({label: choices.getChoice(i).getLabel(), value: choices.getChoice(i).getValue()});
return jsonChoiceList;
},
buildTemplateList: function(listTable) {
var jsonTemplateList = {
availableData: []
};
var grDictionary = new GlideRecord(listTable);
grDictionary.setLimit(1);
grDictionary.query();
var grElements = grDictionary.getElements();
var elementsLength = grElements.length;
for(var i = 0; i < elementsLength; i++){
var elementName = grElements[i].getLabel().toString();
var elementValue = grElements[i].getName().toString();
jsonTemplateList.availableData.push({name: elementName, value: elementValue});
}
return jsonTemplateList;
},
_getChoiceInteger: function(field, tablename) {
var choiceInteger = '';
var grDictionary = new GlideRecord('sys_dictionary');
grDictionary.addQuery('element', field);
grDictionary.addQuery('name', tablename);
grDictionary.query();
if(grDictionary.next())
choiceInteger = grDictionary.choice.toString();
return choiceInteger;
},
_getReferenceDetails: function(field, tablename, coe) {
var refDetails = {};
var qualifier = '';
if(tablename != coe){
var grOverride = new GlideRecord('sys_dictionary_override');
grOverride.addQuery('element', field);
grOverride.addQuery('name', coe);
grOverride.addQuery('reference_qual_override', true);
grOverride.query();
if(grOverride.next())
qualifier = grOverride.reference_qual.toString();
}
var grReference = new GlideRecord('sys_dictionary');
grReference.addQuery('name', tablename);
grReference.addQuery('element', field);
grReference.query();
if(grReference.next()){
refDetails.reference = grReference.reference.toString();
if(refDetails.use_reference_qualifier == 'dynamic')
refDetails.qualifier = qualifier?qualifier:grReference.dynamic_ref_qual.toString();
else
refDetails.qualifier = qualifier?qualifier:grReference.reference_qual.toString();
}
return refDetails;
},
_getSelectedRelatedLists: function(valueList, nameList) {
var selectedResult = [];
var valArray = gs.nil(valueList)? [] : valueList.split(',');
var nameArray = gs.nil(nameList)? [] : nameList.split(',');
for(var i=0; i<valArray.length; i++) {
selectedResult.push({name: nameArray[i], value: valArray[i]});
}
return selectedResult;
},
_getAvailableRelatedLists: function() {
var refQual = new hr_ServicesUtil().getProfileSubjectFilter();
var grRelations = new GlideRecord('sys_relationship');
grRelations.addEncodedQuery(refQual);
grRelations.query();
var availableResult = [];
while(grRelations.next()){
availableResult.push({name: grRelations.name.toString(), value:grRelations.sys_id.toString()});
}
return availableResult;
},
setDefaultsForService: function() {
var ONBOARDING_SERVICE_SYSID = '64fa4c53534222003066a5f4a11c0875';
var ONBOARDING_OPENEDFOR_CONFIG_SYSID = 'e7ed4f5453700300eb7c0a1806dc34f7';
var ONBOARDING_SUBJECT_PERSON_CONFIG_SYSID = 'dcfa279853700300eb7c0a1806dc34a6';
var onBoardingServiceGr = new GlideRecord('sn_hr_core_service');
if (onBoardingServiceGr.get(ONBOARDING_SERVICE_SYSID)) {
if (gs.nil(onBoardingServiceGr.header_config_opened_for))
onBoardingServiceGr.setValue('header_config_opened_for', ONBOARDING_OPENEDFOR_CONFIG_SYSID);
if (gs.nil(onBoardingServiceGr.header_config_subject_person))
onBoardingServiceGr.setValue('header_config_subject_person', ONBOARDING_SUBJECT_PERSON_CONFIG_SYSID);
onBoardingServiceGr.update();
}
var OPENED_FOR_CONFIG_SYSID = '86d9872eb3900300f5302ddc16a8dc8b'; //default Opened for Config
var SUBJECT_PERSON_CONFIG_SYSID = 'c4e9872eb3900300f5302ddc16a8dc91'; //default Subject Person
var hrService = new GlideRecord('sn_hr_core_service');
var queryStr = "header_config_opened_for=NULL^ORheader_config_subject_person=NULL";
hrService.addEncodedQuery(queryStr);
hrService.query();
while (hrService.next()) {
if (gs.nil(hrService.header_config_opened_for))
hrService.setValue('header_config_opened_for', OPENED_FOR_CONFIG_SYSID);
if (gs.nil(hrService.header_config_subject_person))
hrService.setValue('header_config_subject_person', SUBJECT_PERSON_CONFIG_SYSID);
hrService.update();
}
},
type: 'hr_ServiceConfigUtil'
};
Sys ID
42553dd33b0322005a10695593efc420