Notification not working in scoped application

AnandKumar1
Tera Expert

HI, 

I created a scheduled job in scoped application which based on the expire date email will be sending in advance for alert.

the day calculation i havent shared here, but i am able see the logs but notification is not getting triggered. For
example : i can post the logs which received for 1 day record.

Certificate expires 1 days from today: Facility Management Appl - L2owned by - Christoffer A.
*** Script: Certificate expires 1 days from today: Facility Management Appl - L2owned by - Christoffer A.
Evaluator: com.glide.script.RhinoEcmaError: "applicationGR" is not defined. script : Line(80) column(0) 77: if (days == 1) { 78: 79: gs.info("Certificate expires 1 days from today: " + managedByGroup + "owned by - " + ownedBy); ==> 80: gs.eventQueue('sn_disco_certmgmt.1day',applicationGR , managedByGroup, ownedBy); 81: } 82:

 

 

*********************************************************************************************************************

var serverIdsArr = [];

    var relationdata = new GlideRecord('cmdb_rel_ci');
    relationdata.addEncodedQuery("parent.sys_class_name=cmdb_ci_certificate^type=6afd799338a02000c18673032c71b87b");
    relationdata.addQuery('parent', commonname);
    relationdata.query();
    while (relationdata.next()) {
        serverIdsArr.push(relationdata.child.toString());
    }
    gs.info("server ID " +serverIdsArr);

    var serverIdsStr = serverIdsArr.join();
    var splitIds = serverIdsStr.split(',');

    if (serverIdsStr) {
        for (var i = 0; i < splitIds.length; i++) {
            gs.info("Realtionshipinfos3 ------------>" + splitIds[i]);

            var app = new GlideRecord('u_m2m_servers_applications');
 
            app.addEncodedQuery('u_server.sys_id=' + splitIds[i]);
            app.query();
    

            while (app.next()) {

                var applicationSysId = app.u_application.toString();
                gs.info('Application sysID' + applicationSysId);
                var ownedBy = getOwnedByForApplication(applicationSysId);
                var managedByGroup = getManagedByGroupForApplication(applicationSysId);
                gs.info('ownedby Value from while ----->  ' + ownedBy);
                gs.info('managedby Value from while ----->  ' + managedByGroup);
 
                if (days == 15) {

                    gs.info("Certificate expires 15days from today: " + managedByGroup + "owned by - " + ownedBy);
                    gs.eventQueue('sn_disco_certmgmt.15days', managedByGroup, ownedBy);
                }
                if (days == 7) {

                    gs.info("Certificate expires 7days from today: " + managedByGroup + "owned by - " + ownedBy);
                    gs.eventQueue('sn_disco_certmgmt.7dDays', managedByGroup, ownedBy);
                }
                if (days == 1) {

      gs.info("Certificate expires 1 days from today: " + managedByGroup + "owned by - " + ownedBy);
     gs.eventQueue('sn_disco_certmgmt.1day','', managedByGroup, ownedBy);
                }
 
 
            

            }          
        }
    }
}

function getOwnedByForApplication(applicationSysId) {
    var ownedBy = '';
    var applicationGR = new GlideRecord('cmdb_ci_service_discovered');
    applicationGR.addQuery('sys_id', applicationSysId);
    applicationGR.query();

    if (applicationGR.next()) {
        ownedBy = applicationGR.owned_by.name;
        gs.info('ownedby Value ----->  ' + ownedBy);
    }

    return ownedBy;
}

function getManagedByGroupForApplication(applicationSysId) {
    var managedByGroup = '';
    var applicationGR = new GlideRecord('cmdb_ci_service_discovered');
    applicationGR.addQuery('sys_id', applicationSysId);
    applicationGR.query();

    if (applicationGR.next()) {
        managedByGroup = applicationGR.u_managed_by_group.name;
        gs.info('managedby Value ----->  ' + managedByGroup);
    }

    return managedByGroup;
}
*********************************************************************************************************************
Thanks.
7 REPLIES 7

SunilKumar_P
Giga Sage

Hi @AnandKumar1, as gs.eventQueue() methods expects object instance in it. I have updated the code to with null ('') value in the eventQueue methods. Can you give a try?

 

var gr = new GlideRecord('cmdb_ci_certificate');
gr.addEncodedQuery('sys_id', '151477f31bd679542fc2da42b24bcbba');
gr.query();
gs.info('certificate query inner loop');
while (gr.next()) {
    var validTo = gr.valid_to;
    var commonname = gr.sys_id;

    var endDate = new GlideDateTime(gr.valid_to);
    var nowTime = new GlideDateTime();
    gs.info('certificate inner loop');

    var duration = GlideDateTime.subtract(nowTime, endDate);
    var days = parseInt(duration.getNumericValue() / 86400000);
    gs.info('print the days' + days);


    var serverIdsArr = [];

    var relationdata = new GlideRecord('cmdb_rel_ci');
    relationdata.addEncodedQuery("parent.sys_class_name=cmdb_ci_certificate^type=6afd799338a02000c18673032c71b87b");
    relationdata.addQuery('parent', commonname);
    relationdata.query();
    while (relationdata.next()) {
        serverIdsArr.push(relationdata.child.toString());
    }
    gs.info("server ID " + serverIdsArr);

    var serverIdsStr = serverIdsArr.join();
    var splitIds = serverIdsStr.split(',');

    if (serverIdsStr) {
        for (var i = 0; i < splitIds.length; i++) {
            gs.info("Realtionshipinfos3 ------------>" + splitIds[i]);

            var app = new GlideRecord('u_m2m_servers_applications');
            //app.addQuery("u_server", splitIds[i]);
            app.addEncodedQuery('u_server.sys_id=' + splitIds[i]);
            app.query();
            //var applicationsArr = [];

            while (app.next()) {

                var applicationSysId = app.u_application.toString();
                gs.info('Application sysID' + applicationSysId);
                var ownedBy = getOwnedByForApplication(applicationSysId);
                var managedByGroup = getManagedByGroupForApplication(applicationSysId);
                gs.info('ownedby Value from while ----->  ' + ownedBy);
                gs.info('managedby Value from while ----->  ' + managedByGroup);

                if (days == 59) {
                    gs.info("excluding today + 3days and result will be 5th day " + validTo);
                    gs.eventQueue('sn_disco_certmgmt.60days', null, managedByGroup, ownedBy);
                    gs.info('sn_disco_certmgmt.60 Days', +managedByGroup + ownedBy);
                }
                if (days == 45) {
                    gs.info("Certificate expires 45 days from today: " + validTo);
                    gs.eventQueue('sn_disco_certmgmt.45days', null, managedByGroup, ownedBy);

                }
                if (days == 30) {

                    gs.info("Certificate expires 30 days from today: " + validTo);
                    gs.eventQueue('sn_disco_certmgmt.30days', null, managedByGroup, ownedBy);

                }
                if (days == 15) {

                    gs.info("Certificate expires 15 days from today: " + validTo);
                    gs.eventQueue('sn_disco_certmgmt.15days',null, managedByGroup, ownedBy);
                }
                if (days == 7) {

                    gs.info("Certificate expires 7 days from today: " + validTo);
                    gs.eventQueue('sn_disco_certmgmt.7days',null, managedByGroup, ownedBy);
                }
                if (days == 1) {

                    gs.info("Certificate expires 1 days from today: " + managedByGroup + "owned by - " + ownedBy);
                    gs.eventQueue('sn_disco_certmgmt.1day', gr, managedByGroup, ownedBy);
                }


            }

        }
    }
}

function getOwnedByForApplication(applicationSysId) {
    var ownedBy = '';
    var applicationGR = new GlideRecord('cmdb_ci_service_discovered');
    applicationGR.addQuery('sys_id', applicationSysId);
    applicationGR.query();

    if (applicationGR.next()) {
        ownedBy = applicationGR.owned_by.name;
        gs.info('ownedby Value ----->  ' + ownedBy);
    }

    return ownedBy;
}

function getManagedByGroupForApplication(applicationSysId) {
    var managedByGroup = '';
    var applicationGR = new GlideRecord('cmdb_ci_service_discovered');
    applicationGR.addQuery('sys_id', applicationSysId);
    applicationGR.query();

    if (applicationGR.next()) {
        managedByGroup = applicationGR.u_managed_by_group.name;
        gs.info('managedby Value ----->  ' + managedByGroup);
    }

    return managedByGroup;
}

 

 

Regards,

Sunil

HI Sunil,

Thank you for the email. I have tried this with glide option and its working.. Earlier too this was working the reason the parameter was not coming is i was using (u_managed_by_group.name) instead i should have passed the sys_id... Now tried without DOT WALKING and its working now. 

f (applicationGR.next()) {
        managedByGroup = applicationGR.u_managed_by_group.name;
        gs.info('managedby Value ----->  ' + managedByGroup);
    }

 

Hi @AnandKumar1, Glad that its working.

 

Regards,

Sunil