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.

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

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.
2 REPLIES 2

Mohith Devatte
Tera Sage
Tera Sage

hello @AnandKumar1 ,

in event queue there are ultimately four things you need to take care of 

event name , glidereocrd object / current object  ,  parm 1 and parm2 

 

what can i see from this line in your code id you are passing event name and parameters correctly but you are not passing the object .

 

gs.eventQueue('sn_disco_certmgmt.15days', managedByGroup, ownedBy);

Instead of this try below syntax 

gs.eventQueue('sn_disco_certmgmt.15days', your object , managedByGroup, ownedBy);

Please make sure that the glide record object your are passing should be of the table  that your notification is configured on.Both should be same.

Example if your notification is configured on cmdb_ci_service_discovered. table you need to have the event queue like below 

 

gs.eventQueue('sn_disco_certmgmt.15days',  applicationGR , managedByGroup, ownedBy);

 

Hope this helps 

Mark my answer correct if this helps you 

Thanks

 

 

 

 

 

 

 

 

 

Hi Mohith,

i am getting an error that glide is not defined.

 

Can you confirm, since i used empty ' ' as well and resulting same. 

*** 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: