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.