array error

El Cuchi
Tera Guru

hi All,

i hope everyone is ok.

i do have a catalogue script include that passes a number to a script include.

The script include checks if that number is included in incident records and record producers. Then, the script include passes back the array containing the list of incidents. The issue is that i get the following error message.

"org.mozilla.javascript.NativeArray@26383b51"

When i run the code from script include in a script background the result is ok.

 

would you know why?

 

client script

   	var orderid = g_form.getValue('u_V6_Impacted_Order_Id');

	//Call script include
	var ga = new GlideAjax('global.OptusUtils');   //Scriptinclude
	ga.addParam('sysparm_name', 'getExistingOrder'); //Method
	ga.addParam('orderId',orderid); //Parameters
	ga.getXML(getResponse);
	
	function getResponse(response){
		var res = response.responseXML.documentElement.getAttribute("answer");
		alert(res);

	}

script include

    var order = this.getParameter('sysparm_orderId');
	var increc = [];
	var gr = new GlideRecord('incident');
	gr.addEncodedQuery("cmdb_ci.name=jarvis^active=true^descriptionISNOTEMPTY");
	gr.query();
	while(gr.next()) {
		if(gr.description.indexOf(order)>-1) {
			increc.push(gr.number);
		}
	} 

	var gr2 = new GlideRecord('sc_item_produced_record');
	gr2.addEncodedQuery("producer=53508584dba663807316e3334a961982^task.sys_class_name=incident^task.stateIN1,2,-5,-1,12,11");
	gr2.query();
	while(gr2.next()) {
        if(order == gr2.task.variables.u_V6_Impacted_Order_Id) {
			increc.push(gr2.task.number);
        }
	}
	//var answer = increc;
	return increc;

 

 

1 ACCEPTED SOLUTION

Sandeep Rajput
Tera Patron
Tera Patron

@El Cuchi Please update your script include script as follows.

 

var order = this.getParameter('sysparm_orderId');
	var increc = [];
	var gr = new GlideRecord('incident');
	gr.addEncodedQuery("cmdb_ci.name=jarvis^active=true^descriptionISNOTEMPTY");
	gr.query();
	while(gr.next()) {
		if(gr.description.indexOf(order)>-1) {
			increc.push(gr.number);
		}
	} 

	var gr2 = new GlideRecord('sc_item_produced_record');
	gr2.addEncodedQuery("producer=53508584dba663807316e3334a961982^task.sys_class_name=incident^task.stateIN1,2,-5,-1,12,11");
	gr2.query();
	while(gr2.next()) {
        if(order == gr2.task.variables.u_V6_Impacted_Order_Id) {
			increc.push(gr2.task.number);
        }
	}
	//var answer = increc;
	return increc.toString();

Please mark my response helpful and accepted solution if it addresses your question.

View solution in original post

2 REPLIES 2

Sandeep Rajput
Tera Patron
Tera Patron

@El Cuchi Please update your script include script as follows.

 

var order = this.getParameter('sysparm_orderId');
	var increc = [];
	var gr = new GlideRecord('incident');
	gr.addEncodedQuery("cmdb_ci.name=jarvis^active=true^descriptionISNOTEMPTY");
	gr.query();
	while(gr.next()) {
		if(gr.description.indexOf(order)>-1) {
			increc.push(gr.number);
		}
	} 

	var gr2 = new GlideRecord('sc_item_produced_record');
	gr2.addEncodedQuery("producer=53508584dba663807316e3334a961982^task.sys_class_name=incident^task.stateIN1,2,-5,-1,12,11");
	gr2.query();
	while(gr2.next()) {
        if(order == gr2.task.variables.u_V6_Impacted_Order_Id) {
			increc.push(gr2.task.number);
        }
	}
	//var answer = increc;
	return increc.toString();

Please mark my response helpful and accepted solution if it addresses your question.

Hi Sandeep,

 

thank you so much for your time and help.

i tried and did not work.

Interestingly, i run 2 tests.

1 - displayed the value of the order passed by the client script. The result is right as i can see the number i typed via service portal.

2 - i logged the value received in the script include and i can only see null.

 

regards,

Max