G_Form Set Value not Populating Lookup Select Box

Dazler
Mega Sage

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.

12 REPLIES 12

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);

I tried your option, but it didn't work.  As you can see the component field does not have variables yet until subcategory is selected.  

 

find_real_file.png

 

I used an onChange script and sometimes it's like the onChange didn't even run.

I thought the setValue will still add the value on the lookup select even it it is not a value listed.