Time sheet portal can visible in progress records
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-06-2025 08:53 PM - edited 01-06-2025 08:59 PM
OOB widget -(Time Card Portal - Task Selector) , Below script we can I change to get the only IN progress records
function getRecords(table) {
table = table.trim();
var gr = new GlideRecordSecure(table); //Get records
if (!gr.isValid()) {
return;
}
if (gr.instanceOf('pm_project') || gr.instanceOf('pm_project_task') || gr.instanceOf('sn_audit_task') || gr.instanceOf('sn_audit_engagement') || gr.instanceOf('sn_audit_advanced_milestone') || gr.instanceOf('sn_audit_advanced_engagement_project') || gr.instanceOf('sn_grc_issue')) {
var actualDatesQuery = 'work_startISNOTEMPTY^work_start<=' + weekEndsOnDateTime +
'^work_endISEMPTY^ORwork_end>=' + weekStartsOnDateTime +
'^assigned_to=' + data.userId + '^ORadditional_assignee_listLIKE' +
data.userId;
var plannedDatesQuery = '^NQwork_startISEMPTY^start_date<=' + weekEndsOnDateTime +
'^end_date>=' + weekStartsOnDateTime + '^assigned_to=' +
data.userId + '^ORadditional_assignee_listLIKE' +
data.userId;
//var state1='state=2';
var encodedQuery = actualDatesQuery + plannedDatesQuery ;
gr.addEncodedQuery(encodedQuery);
} else {
gr.addEncodedQuery('assigned_to=' + data.userId + '^sys_created_on<=' + weekEndsOnDateTime + '^active=true');
var gr_part1 = new GlideRecordSecure(table);
gr_part1.addEncodedQuery('assigned_to=' + data.userId + '^sys_created_on<=' + weekEndsOnDateTime + '^closed_atBETWEEN' + weekStartsOnDateTime + '@' + weekEndsOnDateTime);
gr_part1.query();
_addRecordsToList(gr_part1, false);
var gr_part2 = new GlideRecordSecure(table);
gr_part2.addEncodedQuery('additional_assignee_listLIKE' + data.userId + '^sys_created_on<=' + weekEndsOnDateTime + '^active=true');
gr_part2.query();
_addRecordsToList(gr_part2, false);
var gr_part3 = new GlideRecordSecure(table);
gr_part3.addEncodedQuery('additional_assignee_listLIKE' + data.userId + '^sys_created_on<=' + weekEndsOnDateTime + '^closed_atBETWEEN' + weekStartsOnDateTime + '@' + weekEndsOnDateTime);
gr_part3.query();
_addRecordsToList(gr_part3, false);
}
gr.query();
_addRecordsToList(gr, false);
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-06-2025 09:44 PM
something like this
I have assumed State=2 as In progress, you can enhance as per your choice value
function getRecords(table) {
table = table.trim();
var gr = new GlideRecordSecure(table); // Get records
if (!gr.isValid()) {
return;
}
if (gr.instanceOf('pm_project') || gr.instanceOf('pm_project_task') || gr.instanceOf('sn_audit_task') || gr.instanceOf('sn_audit_engagement') || gr.instanceOf('sn_audit_advanced_milestone') || gr.instanceOf('sn_audit_advanced_engagement_project') || gr.instanceOf('sn_grc_issue')) {
var actualDatesQuery = 'work_startISNOTEMPTY^work_start<=' + weekEndsOnDateTime +
'^work_endISEMPTY^ORwork_end>=' + weekStartsOnDateTime +
'^assigned_to=' + data.userId + '^ORadditional_assignee_listLIKE' +
data.userId + '^state=2'; // Add state condition for "In Progress"
var plannedDatesQuery = '^NQwork_startISEMPTY^start_date<=' + weekEndsOnDateTime +
'^end_date>=' + weekStartsOnDateTime + '^assigned_to=' +
data.userId + '^ORadditional_assignee_listLIKE' +
data.userId + '^state=2'; // Add state condition for "In Progress"
var encodedQuery = actualDatesQuery + plannedDatesQuery;
gr.addEncodedQuery(encodedQuery);
} else {
gr.addEncodedQuery('assigned_to=' + data.userId + '^sys_created_on<=' + weekEndsOnDateTime + '^active=true^state=2'); // Add state condition for "In Progress"
var gr_part1 = new GlideRecordSecure(table);
gr_part1.addEncodedQuery('assigned_to=' + data.userId + '^sys_created_on<=' + weekEndsOnDateTime + '^closed_atBETWEEN' + weekStartsOnDateTime + '@' + weekEndsOnDateTime + '^state=2'); // Add state condition for "In Progress"
gr_part1.query();
_addRecordsToList(gr_part1, false);
var gr_part2 = new GlideRecordSecure(table);
gr_part2.addEncodedQuery('additional_assignee_listLIKE' + data.userId + '^sys_created_on<=' + weekEndsOnDateTime + '^active=true^state=2'); // Add state condition for "In Progress"
gr_part2.query();
_addRecordsToList(gr_part2, false);
var gr_part3 = new GlideRecordSecure(table);
gr_part3.addEncodedQuery('additional_assignee_listLIKE' + data.userId + '^sys_created_on<=' + weekEndsOnDateTime + '^closed_atBETWEEN' + weekStartsOnDateTime + '@' + weekEndsOnDateTime + '^state=2'); // Add state condition for "In Progress"
gr_part3.query();
_addRecordsToList(gr_part3, false);
}
gr.query();
_addRecordsToList(gr, false);
}
If my response helped please mark it correct and close the thread so that it benefits future readers.
Regards,
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader