Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

GlideController functionality in Scoped app

Daniel Peel
Mega Sage

Currently I have an error function in a script include... I'm using in global and I want to move this process into a scoped application... I'm using GlideController to take a passed status value 430, 431 etc and use it to lookup a constant.  This works fine... but how can I do this in a scoped app... the GlideScopedEvaluator() doesn't seem to work the same way.

 

Thanks

//this are constants at the top the SI
ERROR430/*old 415*/ = 'The following required fields are missing: ';
ERROR431/*old 416*/ = 'The following field has an incorrect value: ';
ERROR432/*old 417*/ = 'The following record was not found: ';
ERROR433/*old 419*/ = 'The following error occurred: ';


//this is the function that is called and uses those for standard output.
_errorHandle: function(status,messageAddOn,calledFunction){

var message = '';
var getErrorMessage = GlideController;
var errorConstant = 'ERROR' + status;
var errorMessageFound = getErrorMessage.evaluateString(errorConstant);

if (errorMessageFound){
message = errorMessageFound + messageAddOn;
}
else {
message = messageAddOn;
}
var cmxError = new sn_ws_err.ServiceError();
cmxError.setStatus(status);
cmxError.setMessage(message);
cmxError.setDetail("Failure in: " + calledFunction);
return cmxError;
},

 

15 REPLIES 15

Very interesting lol... not sure why it's giving me that error then 🙂 Paris instance, scoped and built in studio... tried in global and still got the same error using that setup 😞 

 

initialize: function() {
		STATIC_PROPERTIES = {
			'ERROR430':'The following required fields are missing: ',
			'ERROR431':'The following field has an incorrect value: ',
			'ERROR432':'The following record was not found: ',
			'ERROR433':'The following error occurred: ',
		},
			ERROR_FOUND = '';
	},

	_errorHandle: function(status,messageAddOn,calledFunction){

		var message = '';
		var errorConstant = 'ERROR' + status;
		var errorMessageFound = STATIC_PROPERTIES[errorConstant];

		if (errorMessageFound){
			message = errorMessageFound + messageAddOn;
		}
		else {
			message = messageAddOn;
		}
		var cmxError = new sn_ws_err.ServiceError();
		cmxError.setStatus(status);
		cmxError.setMessage(message);
		cmxError.setDetail("Failure in: " + calledFunction);
		return cmxError;
	},

 

this however did work... I hadn't thought of using the array.