diff --git a/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Auto fill script include.JS b/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Auto fill script include.JS new file mode 100644 index 0000000000..c4a343c99e --- /dev/null +++ b/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Auto fill script include.JS @@ -0,0 +1,30 @@ +var GetRecentRequestValues = Class.create(); +GetRecentRequestValues.prototype = Object.extendsObject(AbstractAjaxProcessor, { + getValues: function() { + var userID = this.getParameter('sysparm_user'); + var itemID = this.getParameter('sysparm_item'); + var result = { found: false, values: {} }; + + var gr = new GlideRecord('sc_req_item'); + gr.addQuery('requested_for', userID); + gr.addQuery('cat_item', itemID); + gr.orderByDesc('sys_created_on'); + gr.setLimit(1); + gr.query(); + + if (gr.next()) { + result.found = true; + + + var vars = gr.variables; + result.values = { + 'requested_for': vars.requested_for + '', + 'location': vars.location + '', + 'department': vars.department + '' + }; + } + + return JSON.stringify(result); + } +}); + diff --git a/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Client script Autofill.js b/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Client script Autofill.js new file mode 100644 index 0000000000..b030ddcca1 --- /dev/null +++ b/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Client script Autofill.js @@ -0,0 +1,27 @@ +function onLoad() { + var user = g_user.userID; + var itemID = g_form.getUniqueValue(); + + var ga = new GlideAjax('GetRecentRequestValues'); + ga.addParam('sysparm_name', 'getValues'); + ga.addParam('sysparm_user', user); + ga.addParam('sysparm_item', itemID); + ga.getXMLAnswer(function(response) { + var data = JSON.parse(response); + if (data && data.found) { + var confirmFill = confirm("We found a similar request. Do you want to autofill fields?"); + if (confirmFill) { + for (var field in data.values) { + if (g_form.getControl(field)) { + g_form.setValue(field, data.values[field]); + console.log("Set " + field + " to " + data.values[field]); + } else { + console.log("Field not found: " + field); + } + } + } + } else { + console.log("No previous request found."); + } + }); +} diff --git a/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Readme.md b/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Readme.md new file mode 100644 index 0000000000..a90213b53a --- /dev/null +++ b/Client-Side Components/Catalog Client Script/Autofilling the request details from previous request/Readme.md @@ -0,0 +1,10 @@ +Recent Request Autofill for ServiceNow Catalog.it automatically offers to fill in fields based on the user's most recent similar request. + Features +- Detects previous requests for the same catalog item +- Prompts user to reuse values from their last submission +- Autofills fields like location, department, and justification + +image + + +