Name

global.PADTriggerInstanceRepository

Description

Trigger Instance repo for PAD

Script

var PADTriggerInstanceRepository = Class.create();
PADTriggerInstanceRepository.prototype = {
  initialize: function() {
  	var padUtils = new PADUtilsSI();
  	this.isAuthorizedUser = true;
  	if (!padUtils.isPADAuthorizedUser() && !padUtils.userIsPADDelegatedDev())
  		this.isAuthorizedUser = false;
  },
  get: function(sysId) {
  	if (!this.isAuthorizedUser)
  		return {
  			errorType: PADConstants.Errors.UNAUTHORIZED,
  			message: 'You are unauthorized to perform this action.'
  		};
  	
  	if (!sysId)
  		return;
  	
  	var gr = new GlideRecord(PADConstants.TABLES.PD_TRIGGER_INSTANCE);
  	gr.get(sysId);
  	return gr;
  },
  /**
  * Update Trigger Instance inputs
  */
  updateTriggerInstanceVars: function(params) {
  	var triggerSysId = params.triggerSysId;
  	var inputs = params.inputs;
  	var triggerInstance = this.get(triggerSysId);
  	if (triggerInstance.errorType)
  		return triggerInstance;
  	
  	var triggerInputs = triggerInstance.getElement(PADConstants.Shared.TRIGGER_INPUT);
  	
  	for (var i=0; i<inputs.length; i++) {
  		var inputName = inputs[i].variableName;
  		var inputValue = inputs[i].variableValue;
  		if (inputName)
  			triggerInputs[inputName] = inputValue;
  	}
  	triggerInputs.update();
  	
  	/*
  	After updating the triggerInputs, force update the trigger instance record
  	to trigger its associated business rule for updating the PD.
  	DEF0239367: Trigger instance input changes do not get captured for activation
  	*/
  	triggerInstance.setForceUpdate(true);
  	triggerInstance.update();
  	return triggerInputs;
  },
  type: 'PADTriggerInstanceRepository'
};

Sys ID

d578b77877401110b123f825bc5a999f

Offical Documentation

Official Docs: