How to get a parameter from the URL

Catalog Client Script

      The mission was to get a sys_id from the URL, query a record and return a value to the front-end.
      In the front-end we have a Record Producer (RP) with a String field.
      On the onLoad event, we want to populate the field in order to show the value retrieved from the back-end.
      The scenario is defined so let's go to the step by step process.


1. Create a Util class in the back-end

      Our Utils class will be a Script Include that receives a sys_id and returns a String.
      
var KMXOUtils = Class.create();
KMXOUtils.prototype = {
    initialize: function() {
    },
	/*
	* Receives a um sys_id and returns a Task table field value
	*
	* @param {String} - taskId
	* @return {Object}
	*/
	getTaskNumber: function(taskId)
	{
			if (taskId != "" && taskId != null && taskId != undefined) {
				var grTask = new GlideRecord('x_770214_consultor_rwd_activity');
				if (grTask.get(taskId)) {
					
					var number = grTask.getValue('number');
					
					var obj = {};
					obj["number"] = number;
					
					return obj;
				} else {
					return {};
				}
			}
	},

    type: 'KMXOUtils'
};
					


2. Create a class to provide access for the Front-End

      2.1) To provide access in this class, the parameter Client callable should be True (checked)
      
var UtilsAjax = Class.create();
UtilsAjax.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

	getTaskNumber: function() {
		var taskId = this.getParameter('sysparm_task_id');
		gs.debug('=== Camacho UtilsAjax = Received the sys_id ' + taskId);
		return JSON.stringify(new KMXOUtils().getTaskNumber(taskId));
		
	},
    type: 'UtilsAjax'
});	


3. I'll suppose that you have a String field called task_number in your RP

      3.1) Create a Catalog Client Script (Type: OnLoad) to get the URL parameter and call the back-end class:
      
function onLoad() {
   
   var taskId = getParameterValue("taskid");
	
   if (taskId != "" && taskId != null && taskId != undefined) {
	   console.log('=== CAMACHO Task id: ' + taskId);
	   
	   var gaGetTaskNumber = new GlideAjax('UtilsAjax');
	   gaGetTaskNumber.addParam('sysparm_name', 'getTaskNumber');
	   gaGetTaskNumber.addParam('sysparm_task_id', taskId);
	   gaGetTaskNumber.getXMLAnswer(setmyFormValue);
   }
}

function setmyFormValue(answer) {
	
	//console.log('=== CAMACHO Entered setmyFormValue');
	if (answer) {
		var obj = JSON.parse(answer);
		var numero = obj.number.toString();
		console.log(numero);
		
		g_form.setValue('task_number', numero);
		
	}
}

function getParameterValue(name) {
	var url = top.location.href;
	var value = new URLSearchParams(url).get(name);
	if (value) {
		return value;
	} else {
		return null;
	}
}
					



Back