ServiceNow ARRAYS: looking for matching values in alerts and events (e.g. problemID)

 (ServiceNow )


gs.info("checking list of today's Alerts by common problemID"); var grAlerts=new GlideRecord('em_alert'); grAlerts.addQuery('source', 'SGO-Dynatrace'); grAlerts.addEncodedQuery('sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()'); grAlerts.query(); grAlerts.orderBy('message_key'); gs.info('TOTAL SGO ALERTS FOR TODAY: ' + grAlerts.getRowCount()); var dupl_prbID_arr = []; var dupl_cmdbci_arr = []; while (grAlerts.next()){ var sAddInfo=JSON.parse(grAlerts.additional_info); var sProblemID=sAddInfo.ProblemID+""; //gs.info('message key=' + grAlerts.message_key + '; ProblemID=' + sProblemID); dupl_cmdbci_arr.push(grAlerts.cmdb_ci+""); dupl_prbID_arr.push(sProblemID); } dupl_prbID_arr.sort(); dupl_cmdbci_arr.sort(); count_duplicate(dupl_prbID_arr, 'sProblemID', 1, 'alerts'); gs.info('******************************************************************************'); count_duplicate(dupl_cmdbci_arr, 'configuration item', 1, 'alerts'); gs.info('******************************************************************************'); var grEvents=new GlideRecord('em_event'); grEvents.addQuery('source', 'SGO-Dynatrace'); grEvents.addNotNullQuery('alert'); grEvents.addEncodedQuery('sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()'); grEvents.query(); grEvents.orderBy('alert'); gs.info('TOTAL SGO EVENTS FOR TODAY: ' + grEvents.getRowCount()); var dupl_prbID_arr_2 = []; while (grEvents.next()){ var sAddInfo_event=JSON.parse(grEvents.additional_info); var sProblemID_event=sAddInfo_event.ProblemID+""; dupl_prbID_arr_2.push(sProblemID_event); } dupl_prbID_arr_2.sort(); count_duplicate(dupl_prbID_arr_2, 'sProblemID_event', 2, 'events'); function count_duplicate (a, fieldBeingChecked, iDuplicateThreshold, ticketType ) { var iCounter=0; var counts = {}; var bLog=true; //bDebug=false; var bBreak = false; for (ic = 0; ic < a.length; ic++) { if (counts[a[ic]]) { counts[a[ic]] += 1; } else { counts[a[ic]] = 1; } } for (prop in counts) { if (counts[prop] >iDuplicateThreshold) { if (bLog) { gs.info(fieldBeingChecked + ': ' + prop + " counted: " + counts[prop] + " times"); iCounter++; } if (bBreak) { gs.info('BREAK statement enabled', 'SIDTINCPRB:_count_duplicate'); break; } } } // gs.info(fieldBeingChecked+': DUPLICATE COUNTS::' + counts.length); gs.info(fieldBeingChecked+': DUPLICATE COUNTS::' + iCounter + ' groups of ' + ticketType + ' affected'); }

Comments

Popular posts from this blog

GlideRecord setValue

URL link in addInfoMessage