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