Name

global.GetSendEmail

Description

Utility to execute EmailReader/SMTP Sender job(s) at the current point in time.

Script

var GetSendEmail = Class.create();
GetSendEmail.prototype = {
  initialize: function() {
  	
  },
  
  execute: function() {
  	var emailReaderHandlerClass = "com.glide.email_accounts.EmailReaderJob";
  	var smtpSenderHandlerClass = "SMTPSenderJob";
  	var jobIDs = [];
  	jobIDs.push(this._getJobID(emailReaderHandlerClass),this._getJobID(smtpSenderHandlerClass));
  	
  	for (var i=0; i < jobIDs.length; i++) {
  		
  		if(jobIDs[i]) {
  			var sysTriggerGr = new GlideRecord("sys_trigger");
  			sysTriggerGr.addQuery("job_id",jobIDs[i]);
  			sysTriggerGr.query();
  			this._updateNextAction(sysTriggerGr);
  		}
  	}
  },
  
  _getJobID: function(handlerClass) {
  	var sysJobGr = new GlideRecord("sys_job");
  	sysJobGr.addQuery("handler_class",handlerClass);
  	sysJobGr.query();
  	if(sysJobGr.next()) {
  		return sysJobGr.getUniqueValue();
  	}
  	
  	return null;
  },
  
  _updateNextAction: function(sysTriggerGr) {
  	while (sysTriggerGr.next()) {
  		var jobName = sysTriggerGr.getValue("name");
  		if(sysTriggerGr.getValue("state") == 1) {
  			gs.log("Skipping run of " + jobName + " job as it is already running");
  		}
  		else {
  			gs.log("Triggering " + jobName + " job");
  			var gdt = new GlideDateTime();
  			gdt.setNumericValue(0);
  			sysTriggerGr.setValue("next_action",gdt.getValue());
  			sysTriggerGr.update();
  			
  		}
  	}
  },
  
  type: 'GetSendEmail'
};

Sys ID

847a9510c33022008c13b43d02d3aeb2

Offical Documentation

Official Docs: