Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Script to check missing records on different table

mballinger
Mega Guru

Hello,

We have 2 tables: Orders and Order Lines. The data gets populated on both via Transform and they are not linked whatsoever.

I need a script to find all Orders that have no Order Lines

My background script looks like the following:

var arr = [];
var orderGr = new GlideRecord('csm_order');
orderGr.addEncodedQuery('u_delivery_date<javascript:gs.beginningOfOneYearAgo()');
orderGr.query();
while(orderGr.next()){
	var lineGr = new GlideRecord('csm_order_line_item');
	lineGr.addEncodedQuery('order_id=' + orderGr.sys_id);
	lineGr.query();
	while (!lineGr.next()){
		arr.push(orderGr.number.toString());
	}
}

gs.print('Orders with no Lines ' + arr.toString());

Thanks!

1 ACCEPTED SOLUTION

Aman Kumar S
Kilo Patron

Hey,

Replace "while" with "if"

Try below code:

var arr = [];
var orderGr = new GlideRecord('csm_order');
orderGr.addEncodedQuery('u_delivery_date<javascript:gs.beginningOfOneYearAgo()');
orderGr.query();
while(orderGr.next()){
	var lineGr = new GlideRecord('csm_order_line_item');
	lineGr.addEncodedQuery('order_id=' + orderGr.sys_id);
	lineGr.query();
	if(!lineGr.next()){// if instead of while
		arr.push(orderGr.number.toString());
	}
}
Best Regards
Aman Kumar

View solution in original post

1 REPLY 1

Aman Kumar S
Kilo Patron

Hey,

Replace "while" with "if"

Try below code:

var arr = [];
var orderGr = new GlideRecord('csm_order');
orderGr.addEncodedQuery('u_delivery_date<javascript:gs.beginningOfOneYearAgo()');
orderGr.query();
while(orderGr.next()){
	var lineGr = new GlideRecord('csm_order_line_item');
	lineGr.addEncodedQuery('order_id=' + orderGr.sys_id);
	lineGr.query();
	if(!lineGr.next()){// if instead of while
		arr.push(orderGr.number.toString());
	}
}
Best Regards
Aman Kumar