Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Time sheet portal can visible in progress records

Anish9515
Tera Contributor

Anish9515_0-1736225471806.png

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

Ankur Bawiskar
Tera Patron
Tera Patron

@Anish9515 

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