diff --git a/Catalog Client Script/Set fields from URL Parameter 2/CatalogClientScript.js b/Catalog Client Script/Set fields from URL Parameter 2/CatalogClientScript.js new file mode 100644 index 0000000000..d21d2756ca --- /dev/null +++ b/Catalog Client Script/Set fields from URL Parameter 2/CatalogClientScript.js @@ -0,0 +1,36 @@ +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; + } + } \ No newline at end of file diff --git a/Catalog Client Script/Set fields from URL Parameter 2/KMXOUtils.js b/Catalog Client Script/Set fields from URL Parameter 2/KMXOUtils.js new file mode 100644 index 0000000000..7ecd6cec56 --- /dev/null +++ b/Catalog Client Script/Set fields from URL Parameter 2/KMXOUtils.js @@ -0,0 +1,37 @@ +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' +}; \ No newline at end of file diff --git a/Catalog Client Script/Set fields from URL Parameter 2/UtilsAjax.js b/Catalog Client Script/Set fields from URL Parameter 2/UtilsAjax.js new file mode 100644 index 0000000000..abd7e8f408 --- /dev/null +++ b/Catalog Client Script/Set fields from URL Parameter 2/UtilsAjax.js @@ -0,0 +1,11 @@ +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' +}); \ No newline at end of file diff --git a/Catalog Client Script/Set fields from URL Parameter 2/readme.md b/Catalog Client Script/Set fields from URL Parameter 2/readme.md new file mode 100644 index 0000000000..500af298e5 --- /dev/null +++ b/Catalog Client Script/Set fields from URL Parameter 2/readme.md @@ -0,0 +1,27 @@ +# Set fields on a catalog item from URL parameters. + +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 Use Case 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. + +[KMXOUtils](KMXOUtils.js) + +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) + +[UtilsAjax](UtilsAjax.js) + +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: + +[CatalogClientScript](CatalogClientScript.js)