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