Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

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.