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

Callum Ridley1
Tera Guru

Hi Daniel,

This code seems a little odd to me. I assume by the trailing comma right at the end that it's in use within a Script Include? If that's the case then you could try refactoring your code a little to something like this.

var MyClass = Class.create();
MyClass.prototype = {
	
	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: ',
	},
	
	initialize: function() {
	},

	_errorHandle: function(status, messageAddOn, calledFunction){
		var message = '';
		var errorConstant = 'ERROR' + status;
		var errorMessageFound = this.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;
	},

	type: 'MyClass'
};

If my answer is correct / helpful, please remember to mark it as such so that others can see the information as easily as possible.

Callum

Pranesh072
Mega Sage
Mega Sage

try with GlideScopedEvaluator

 

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: ';

_errorHandle: function(status,messageAddOn,calledFunction){

var message = '';
var getErrorMessage = new GlideScopedEvaluator();
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;
},

GlideScopedEvaluator does not have a method called evaluateString! There is also no need to be evaluating strings as scripts...

you are right