Name

sn_hr_core.hr_license

Description

No description available

Script

var hr_license = Class.create();
hr_license.prototype = {
  initialize: function(){
  },
  
  hasHrAccess:function(table) {
  	return gs.getProperty('sn_hr_core.inactive_tables',"").split(',').map(function(inactive_table) {
  		return inactive_table.trim();
  	}).indexOf(table) === -1;
  },

  configureCOE: function(active_Coe, deactive_Coe){
  	var changeMade = false;
  	var HR_CORE = 'sn_hr_core';
  	var HR_SP = 'sn_hr_sp';
  	var HR_LE = 'sn_hr_le';
  	var HR_INTEGRATIONS = 'sn_hr_integrations';
  	var disableWorkflow = true;
  	
  	var enq = "id!=hr_case^ORapp_id=com.sn_hr_core^ORapp_id=com.sn_hr_lifecycle_events";
  	var gr = new GlideRecord('ua_entitlement');
  	gr.addEncodedQuery(enq);
  	gr.query();
  	
  	while (gr.next()) {
  		if (active_Coe.indexOf(gr.id.toString()) > -1 && gr.active.toString() == "false") {
  			changeMade = true;
  			
  			if(GlidePluginManager.isActive('com.sn_hr_core'))
  				sn_lef.GlideEntitlement.enableEntitlement(gr.id.toString(), HR_CORE, disableWorkflow);
  			
  			if(GlidePluginManager.isActive('com.sn_hr_integrations'))
  				sn_lef.GlideEntitlement.enableEntitlement(gr.id.toString(), HR_INTEGRATIONS, disableWorkflow);
  			
  			if(GlidePluginManager.isActive('com.sn_hr_service_portal'))
  				sn_lef.GlideEntitlement.enableEntitlement(gr.id.toString(), HR_SP, disableWorkflow);
  			
  			if(GlidePluginManager.isActive('com.sn_hr_lifecycle_events'))
  				sn_lef.GlideEntitlement.enableEntitlement(gr.id.toString(), HR_LE, disableWorkflow);	
  			
  		} else if (deactive_Coe.indexOf(gr.id.toString()) > -1 && gr.active.toString() == "true") {
  			changeMade = true;
  			
  			if(GlidePluginManager.isActive('com.sn_hr_core'))
  				sn_lef.GlideEntitlement.disableEntitlement(gr.id.toString(), HR_CORE, disableWorkflow);
  			
  			if(GlidePluginManager.isActive('com.sn_hr_integrations'))
  				sn_lef.GlideEntitlement.disableEntitlement(gr.id.toString(), HR_INTEGRATIONS, disableWorkflow);
  			
  			if(GlidePluginManager.isActive('com.sn_hr_service_portal'))
  				sn_lef.GlideEntitlement.disableEntitlement(gr.id.toString(), HR_SP, disableWorkflow);
  			
  			if(GlidePluginManager.isActive('com.sn_hr_lifecycle_events'))
  				sn_lef.GlideEntitlement.disableEntitlement(gr.id.toString(), HR_LE, disableWorkflow);
  		}
  	}

  	if(changeMade == false)
  		return "there is no change made";
  	
  	return this.resetCOEConfig();
  },
  
  resetCOEConfig: function(){
  	var allInactiveTables = [];
  	var allActiveTables = [];
  	
  	var enq = "id!=hr_lifecycle_events^ORid=NULL^id!=hr_case^ORid=NULL^app_id=com.sn_hr_core";
  	var gr = new GlideRecord('ua_entitlement');
  	gr.addEncodedQuery(enq);
  	gr.query();
  	
  	while (gr.next()) {
  		if (gr.active.toString() == "false")
  			allInactiveTables.push(gr.getValue('table_names').toString());
  		else 
  			allActiveTables.push(gr.getValue('table_names').toString());
  	}

  	//setting the properties
  	gs.setProperty('sn_hr_core.inactive_tables',allInactiveTables.join(","));

  	return "success";
  },

  type: 'hr_license'
};

Sys ID

329f007f0b1222004f526f3ef6673ae3

Offical Documentation

Official Docs: