G_Form Set Value not Populating Lookup Select Box
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-25-2020 12:06 PM
Hi, I have built a form for one of our departments. They want to convert an Incident to a specific Request Form. I hav create a button and pass the Incident Number to that Request Form. They want to pull the Category, Subcategory, Component fields into variables on the Request.
In my catalog client script, I set it up to pull the incident number into the client script and below is the code.
function onLoad() {
//Populate the variables with the parameters passed in the URL
//Use the 'getParmVal' function below to get the parameter values from the URL
var num = getParmVal('sysparm_number');
var getUserIn = new GlideAjax('getIncidentInfo');
getUserIn.addParam('sysparm_name','getIncident');
getUserIn.addParam('sysparm_incident_ticket', num);
getUserIn.getXML(getInfo);
function getInfo(response){
var answer = response.responseXML.documentElement.getAttribute("answer");
var obj = JSON.parse(answer);
g_form.setValue('incident_ticket', num);
g_form.setValue('requested_by', obj.requested_by);
g_form.setValue('category', obj.category);
g_form.setValue('i_short_description', obj.short_description);
g_form.setValue('i_description', obj.description);
g_form.setValue('subcategory', obj.subcategory);
g_form.setValue('component', obj.component);
g_form.setValue('component2', obj.component2);
}
}
function getParmVal(name){
var url = document.URL.parseQuery();
if(url[name]){
return decodeURI(url[name]);
}
else{
return;
}
}
And this is my script include
var getIncidentInfo = Class.create();
getIncidentInfo.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getIncident: function(){
var obj = {};
var ticket = new GlideRecord("incident");
if(ticket.get(this.getParameter('sysparm_incident_ticket'))){
//Reference Field will return sys_id. Use getDisplayValue() to return display value
obj.requested_by = ticket.getValue('u_requested_by');
obj.category = ticket.getValue('category');
obj.subcategory = ticket.getValue('subcategory');
obj.component = ticket.getValue('u_component');
obj.component2 = ticket.getValue('u_component_2');
obj.short_description = ticket.getValue('short_description');
obj.description = ticket.getValue('description');
}
return JSON.stringify(obj);
},
type: 'getIncidentInfo'
});
The trouble I am having is the following fields are not setting the value.
g_form.setValue('subcategory', obj.subcategory);
g_form.setValue('component', obj.component);
g_form.setValue('component2', obj.component2);
Is there a way to force it? I have tried an onChange script for each variables, but it doesn't always complete it. It may stop at Component.
Any help would be appreciated.
- Labels:
-
Script Debugger
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-25-2020 12:47 PM
And what if you try to set them visible first?
g_form.setVisible('incident_ticket', true);
g_form.setVisible('requested_by', true);
g_form.setVisible('category', true);
g_form.setVisible('i_short_description', true);
g_form.setVisible('i_description', true);
g_form.setVisible('subcategory', true);
g_form.setVisible('component', true);
g_form.setVisible('component2', true);
g_form.setValue('incident_ticket', num);
g_form.setValue('requested_by', obj.requested_by);
g_form.setValue('category', obj.category);
g_form.setValue('i_short_description', obj.short_description);
g_form.setValue('i_description', obj.description);
g_form.setValue('subcategory', obj.subcategory);
g_form.setValue('component', obj.component);
g_form.setValue('component2', obj.component2);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-25-2020 01:02 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-25-2020 01:04 PM
I thought the setValue will still add the value on the lookup select even it it is not a value listed.