Name

sn_hr_core.hr_CaseCreator

Description

No description available

Script

var hr_CaseCreator = Class.create();
hr_CaseCreator.prototype = {
  initialize: function() {
  },

  /**
  * Helper method to create multiple HR cases
  * services -- An array of HR service sys ids
  * caseInfo -- This object has options for the created cases, e.g. assigned to, subject person, opened for
  * returns count of cases created
  */
  createCasesFromService:function(services, caseInfo) {
  	if (services && Array.isArray(services)) {
  		for (var i = 0; i < services.length; i++)
  			this.createCaseFromService(services[i], caseInfo);
  		return services.length;
  	}
  	return 0;
  },

  /**
  * Helper method to create individual HR case
  * caseInfo -- This object has options for the created case, e.g. assigned to, subject person, opened for
  * returns sys_id of the new HR case created
  */
  createCaseFromService:function(hrServiceId, caseInfo) {
  	if (!hrServiceId || !caseInfo || !caseInfo.opened_for)
  		return;

  	var hrServiceGr = new GlideRecord('sn_hr_core_service');
  	var sysId;
  	if (hrServiceGr.get(hrServiceId)) {
  		var caseGr = new GlideRecord(hrServiceGr.service_table);
  		if (!caseGr.isValid())
  			return;
  		caseGr.hr_service = hrServiceGr.getUniqueValue();
  		caseGr.topic_detail = hrServiceGr.topic_detail;
  		caseGr.topic_category = hrServiceGr.topic_detail.topic_category;
  		caseGr.template = hrServiceGr.template;

  		for (var key in caseInfo)
  			caseGr.setValue(key, caseInfo[key]);

  		// call applyBefore to set fields from template before default values are populated
  		new sn_hr_core.hr_TemplateUtils().applyBefore(hrServiceGr.template, caseGr);
  		sysId = caseGr.insert();
  	}
  	return sysId;
  },

  type: 'hr_CaseCreator'
};

Sys ID

d8e7724e53323200d901a7e6a11c0856

Offical Documentation

Official Docs: