The Zurich release has arrived! Interested in new features and functionalities? Click here for more

Moving last record from one table to another based using Schedule job.

Pratham Singh
Tera Contributor

I have 2 table named as User Attendance and User Tracking. In my User tracking table I have multiple records of the user, so from the user tracking table I want that my last record of the current day should be updated in the User Attendance table. How can I achieve this?

1 ACCEPTED SOLUTION

Ayush Mishra2
Tera Expert

You can achieve this using the below server side code

CODE - 

var userTrackingGR = new GlideRecord('u_user_tracking'); 
var startOfDay = new GlideDateTime();
startOfDay.setDisplayValue(gs.beginningOfToday());

var endOfDay = new GlideDateTime();
endOfDay.setDisplayValue(gs.endOfToday());
userTrackingGR.addQuery('sys_created_on', '>=', startOfDay);
userTrackingGR.addQuery('sys_created_on', '<=', endOfDay);
userTrackingGR.orderByDesc('sys_created_on');
userTrackingGR.query();

var lastRecordByUser = {};
while (userTrackingGR.next()) {
var userId = userTrackingGR.getValue('user');
if (!lastRecordByUser[userId]) {
lastRecordByUser[userId] = userTrackingGR.getUniqueValue();
}
}
for (var userId in lastRecordByUser) {
var userAttendanceGR = new GlideRecord('u_user_attendance'); 

userAttendanceGR.addQuery('user', userId);
userAttendanceGR.query();

if (userAttendanceGR.next()) {
userAttendanceGR.setValue('last_tracking_record', lastRecordByUser[userId]); 
userAttendanceGR.update();
} else {
userAttendanceGR.initialize();
userAttendanceGR.setValue('user', userId); 
userAttendanceGR.setValue('last_tracking_record', lastRecordByUser[userId]); 
userAttendanceGR.insert();
}
}


PLEASE MARK MY ANSWER HELPFUL

View solution in original post

2 REPLIES 2

Ayush Mishra2
Tera Expert

You can achieve this using the below server side code

CODE - 

var userTrackingGR = new GlideRecord('u_user_tracking'); 
var startOfDay = new GlideDateTime();
startOfDay.setDisplayValue(gs.beginningOfToday());

var endOfDay = new GlideDateTime();
endOfDay.setDisplayValue(gs.endOfToday());
userTrackingGR.addQuery('sys_created_on', '>=', startOfDay);
userTrackingGR.addQuery('sys_created_on', '<=', endOfDay);
userTrackingGR.orderByDesc('sys_created_on');
userTrackingGR.query();

var lastRecordByUser = {};
while (userTrackingGR.next()) {
var userId = userTrackingGR.getValue('user');
if (!lastRecordByUser[userId]) {
lastRecordByUser[userId] = userTrackingGR.getUniqueValue();
}
}
for (var userId in lastRecordByUser) {
var userAttendanceGR = new GlideRecord('u_user_attendance'); 

userAttendanceGR.addQuery('user', userId);
userAttendanceGR.query();

if (userAttendanceGR.next()) {
userAttendanceGR.setValue('last_tracking_record', lastRecordByUser[userId]); 
userAttendanceGR.update();
} else {
userAttendanceGR.initialize();
userAttendanceGR.setValue('user', userId); 
userAttendanceGR.setValue('last_tracking_record', lastRecordByUser[userId]); 
userAttendanceGR.insert();
}
}


PLEASE MARK MY ANSWER HELPFUL

Thankyou for the solution.