- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2024 12:02 AM
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?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2024 12:26 AM
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2024 12:26 AM
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2024 02:48 AM - edited 06-11-2024 02:53 AM
Thankyou for the solution.