Dot walk field using GlideAggregate.

Hari1
Mega Sage

Hi,

I need to get the reference fields from task table to task_slo table. But i don't see the right output that i am expecting.

Email script:

(function runMailScript(/* GlideRecord */ current, /* TemplatePrinter */ template,
          /* Optional EmailOutbound */ email, /* Optional GlideRecord */ email_action,
          /* Optional GlideRecord */ event) {
	
	gs.log("Ageing- runMailScriptForNeedAttention");
	
	var finalJSONArray = [];
	var obj = {};
	var stateValue,getEscalatedValue,getReopenValue,getTtrValue,getRecommitValue,groupCount,assignmentGroup,numberVal1,assGroup1;
	
	var query = 'numberSTARTSWITHinc^ORnumberSTARTSWITHgreq^assigned_to=5bf08e8cdbb87300bda4d602ca96198b^active=true';
	var gr2 = new GlideRecord('task');	
	gr2.addEncodedQuery(query);
	gr2.query();
	if(gr2.next())
	{		
		var numberVal = gr2.number.getDisplayValue(); 
		gs.log("Ageing- numberVal: " + numberVal);
		
		var assGroup = gr2.assignment_group.getDisplayValue();
		gs.log("Ageing- assGroup: " + assGroup);
		
		var assTo = gr2.assigned_to.getDisplayValue();
		gs.log("Ageing- assTo: " + assTo);
		
		
        var inc = new GlideAggregate('task_sla');
       
		inc.addQuery('gr2.assigned_to', '5bf08e8cdbb87300bda4d602ca96198b');
		inc.addQuery('has_breached','true');
		inc.addQuery('active','true');
		inc.addAggregate('COUNT');
        inc.groupBy('has_breached');
		inc.groupBy('active');
		inc.query();
		
			if(inc.next())
			{
			gs.log("Ageing- Inside 2nd if task_sla 1st");
			gs.log("Ageing- details:" + inc.assignment_group);
			numberVal1 = inc.task.getDisplayValue();
			assGroup1 = inc.task.assignment_group.getDisplayValue();
			var assGroup2 = inc.gr2.assignment_group.getDisplayValue();
			var assGroup3 = inc.assignment_group.getDisplayValue();
			getEscalatedValue = inc.has_breached.getDisplayValue();
			
			gs.log("Ageing- numberVal1: " + numberVal1);
			gs.log("Ageing- assGroup1: " + assGroup1);
			gs.log("Ageing- getEscalatedValue: " + getEscalatedValue);		
			gs.log("Ageing- assGroup2: " + assGroup2);	
			gs.log("Ageing- assGroup3: " + assGroup3);	
			groupCount = inc.getAggregate('COUNT');

           if (JSON.stringify(obj) == "{}") 
			{
				gs.log("Ageing- inside if JSON");
				obj.assignment_group = assGroup1;
				obj.has_breached = {};
                obj.has_breached[getEscalatedValue] = parseInt(groupCount);
				obj.inc = parseInt(groupCount);
           }
			   else if (obj.assignment_group == assGroup1) 
			{
				gs.log("Ageing- inside else if");
                if (!JSUtil.nil(obj.has_breached[getEscalatedValue])) 
				{
                    obj.has_breached[getEscalatedValue] = obj.has_breached[getEscalatedValue] + parseInt(groupCount);
                } 
				else 
				{
                    obj.has_breached[getEscalatedValue] = parseInt(groupCount);
                }
			}
			   else 
			{
				gs.log("Ageing- inside else last");
                finalJSONArray.push(obj);
                obj = {};
                obj.has_breached = {};
                obj.has_breached[getEscalatedValue] = parseInt(groupCount);               
				obj.inc = parseInt(groupCount);
            }	
				
		
			}
		
           finalJSONArray.push(obj);
			 gs.info("Ageing- Special ININC-finalJSONArray: " + JSON.stringify(finalJSONArray));
		
	}
	})(current, template, email, email_action, event);

 

find_real_file.png

6 REPLIES 6

Inactive_Us1931
Giga Expert

Hi Hemanth,

Try replacing "var assGroup3 = inc.assignment_group.getDisplayValue();" by 

var assGroup3 = inc.getValue(assignment_group);

You can refer the below thread 

https://community.servicenow.com/community?id=community_question&sys_id=b8d7032ddb1cdbc01dcaf3231f9619a4

Please Mark it correct/helpful if this reslove this issue.

 

Hi Sachin,

It's not working.

The issue is when querying GlideAggregate.

Small correction.

Put assignment_group in quotes.
Like

var assGroup3 = inc.getValue("assignment_group");

Alok Das
Tera Guru

HI Hemanth,

Could you please let us know the actual requirement which you are trying to achieve with this script so that it will be easy for us to decode and get the best solution for you.

Regards,

Alok