My script is not working

suuriyas
Tera Contributor

HI Community,

 

I have a requirement to generate a request when the records in sys certificate table has no valid from and no expires and with tag as valid certificate only for these records the request needs to be generated after 11 months from the created date.

 

so i have written a scheduled job for this and i tried testing it in background script but it is not working

Please let me know what is wrong in my script 

Note ; while testing i commented out this line (createdDateTime.addMonths(11);)

and created one new record in certificate table today and tested but it did not work

My script :

(function(){
    var today = new GlideDateTime();
    var certificates = new GlideRecord('sys_certificate');

    certificates.addNullQuery('valid_from');
    certificates.addNullQuery('expires');
    certificates.query('sys_tags','valid certificate');
    certificates.query();

while (certificates.next()){
    var createdDate = certificates.getValue('sys_created_on');
    var createdDateTime = new GlideDateTime(createdDate);

    createdDateTime.addMonths(11);

    if (createdDateTime.getDate() == today.getDate()&& createdDateTime.getMonth() == today.getMonth()&& createdDateTime.getYear() == today.getYear())
    {
        var cart = new Cart();
        var item = cart.addItem ('0b6fa369ebcc9610b2bff25e1bd0cd63');
        cart.setVariable(item, 'requested_for','e78e613febf41650b2bff25e1bd0cda3');
        cart.setVariable(item, 'username' , 'extsridhsu');
        cart.setVariable(item, 'short_description', 'Certificate expiration request for ' + certificates.name);
        cart.setVariable(item, 'business_justification', 'Certificate is about to expiry in next 30 days');
        var rc = cart.placeOrder();




    }
}

})();


15 REPLIES 15

HI @Bhuvan  ,

 

Thanks for replying.

I tried by commenting the tags query and ran the background script but still the request is not getting created and i also added the gs.info msg inside the if condition but logs are not showing seems issue with if condition but im not sure

GlideFather
Tera Patron

Hey @suuriyas,

 

you double queried:

    certificates.query('sys_tags','valid certificate');
    certificates.query();

 

shouldn't it rather be?

    certificates.addQuery('sys_tags','valid certificate');
    certificates.query();
———
/* If my response wasn’t a total disaster ↙️ drop a Kudos or Accept as Solution ↘️ Cheers! */


suuriyas
Tera Contributor

@Ankur Bawiskar , @Bhuvan  , @GlideFather .

 

Thanks all for your inputs.

 

I figured it out used encoded query for tags.

certificates.addEncodedQuery('valid_from=NULL^expires=NULL^sys_tags.09f1a081877766101a46851d8bbb35ed=09f1a081877766101a46851d8bbb35ed');
and if condition added .getValue()
if (createdDateTime.getDate().getValue() == today.getDate().getValue()&& createdDateTime.getMonth().getValue() == today.getMonth().getValue()&& createdDateTime.getYear().getValue() == today.getYear().getValue())
 
Now request getting created.
 

@suuriyas 

 

Glad to know it is working now.

 

If my responses helped to guide you or answer your query, please mark it helpful & accept the solution. As per community guidelines, you can accept more than one answer as accepted solution. 

 

Thanks,

Bhuvan

@suuriyas 

 

Did you get a chance to review this ?

 

If my response helped to answer your query, please mark it helpful & accept the solution.

 

Thanks,

Bhuvan