We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

This code is for Scheduled Job, but it is not working. i m fetching data from 'sc_item_option'

Singhdeep70
Tera Contributor
var reqGR = new GlideRecord('sc_req_item');

var past24 = new GlideDateTime();
past24.addHoursUTC(-24);
var catSysID = '3D72bd38fc8310c75069fbc5a6feaad3d9';
reqGR.addQuery('cat_item', catSysID);
reqGR.addQuery('approval', 'requested');
reqGR.addQuery('sys_created_on', '<=', past24);
reqGR.query();

while (reqGR.next()) {
    var sysID = '3D6569c5b88390c75069fbc5a6feaad341';
    var variableGR = new GlideRecord('sc_item_option');
    variableGR.addQuery('item_option_new', sysID);
    variableGR.query();

    if (variableGR.next()) {
        var user = variableGR.value;
        var userGR = new GlideRecord('sys_user');
        userGR.addQuery('name', user);
        userGR.query();

        if (userGR.next()) {

            gs.print('working');
            gs.eventQueue(
                'approval.required.email',
                reqGR,
                userGR.email,
                reqGR.getValue('number')
            );
        }
    }
}
1 ACCEPTED SOLUTION

var reqGR = new GlideRecord('sc_req_item');





reqGR.addQuery('approval', 'requested');
reqGR.addEncodedQuery('sys_created_onRELATIVELE@hour@ago@24');
reqGR.addQuery('cat_item.name', 'Onboarding Employee');
reqGR.query();

 

while (reqGR.next()) {

 

    var approverGR = new GlideRecord('sysapproval_approver');
    approverGR.addQuery('state', 'requested');
    approverGR.addQuery('sysapproval', reqGR.sys_id);
    approverGR.query();

 

    while (approverGR.next()) {

 

        var userGR = new GlideRecord('sys_user');
        if (userGR.get(approverGR.approver)) {
            gs.eventQueue('approval.required.email',reqGR,userGR.email,reqGR.getValue('number'));
        }

 

    }
}
 
I've got solution, but Thank you
 

View solution in original post

6 REPLIES 6

var reqGR = new GlideRecord('sc_req_item');





reqGR.addQuery('approval', 'requested');
reqGR.addEncodedQuery('sys_created_onRELATIVELE@hour@ago@24');
reqGR.addQuery('cat_item.name', 'Onboarding Employee');
reqGR.query();

 

while (reqGR.next()) {

 

    var approverGR = new GlideRecord('sysapproval_approver');
    approverGR.addQuery('state', 'requested');
    approverGR.addQuery('sysapproval', reqGR.sys_id);
    approverGR.query();

 

    while (approverGR.next()) {

 

        var userGR = new GlideRecord('sys_user');
        if (userGR.get(approverGR.approver)) {
            gs.eventQueue('approval.required.email',reqGR,userGR.email,reqGR.getValue('number'));
        }

 

    }
}
 
I've got solution, but Thank you
 

RAMANA MURTHY G
Mega Sage

Hello @Singhdeep70 ,

 

Usually sys_ids contains 32 characters, but in your script sys_id having 34 characters, please check this once,

 

and hard coded sys_id is not best practice. Try to use sys_property for sys_id and call that sys_property using gs.getProperty('your_property_name');


Please mark my answer helpful & correct if it helps you
Thank you

G Ramana Murthy
ServiceNow Developer