Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

VaranAwesomenow
Mega Sage

This script identifies the areas in which user criteria is used.

var userCriteriaSysId = '**************************' ; // update user criteria sys Id
var tableList = [];
var referenceList = [];
var grTable = new GlideRecord('sys_dictionary');
grTable.addEncodedQuery('reference=user_criteria^internal_type=reference');
grTable.query();
while(grTable.next()) {
tableList.push(grTable.name + "");
}

for (var k=0; k<tableList.length;k++) {
//gs.print(tableList[k]);
var returnList = checkUserCriteria(userCriteriaSysId,tableList[k]);
if(returnList.length >0) {
for (var l=0; l<returnList.length;l++) {
referenceList.push(returnList[l]);
}
}
}

for (var q=0;q<referenceList.length;q++) {
gs.print(referenceList[q]);
}

function checkUserCriteria(sysId, tableName) {
var returnList = [];
var query = 'user_criteria=' + sysId;
var grReference = new GlideRecord(tableName);
grReference.addEncodedQuery(query);
grReference.query();
while(grReference.next()) {
returnList.push(tableName+ "|" + grReference.sys_id +"|" + sysId);
}
return returnList;
}

 

 

Sample output

 

*** Script: m2m_sp_instance_uc_can_view|11cc4166db1ddc10d5************|78060fac871023000e3***********
*** Script: m2m_sp_instance_uc_can_view|79de3c6edb99dc10d57***********|78060fac871023000e3**********
Comments
apjohn2
Mega Sage

You're a life saver. Thank you for this!

 

And just because I'm pedantic here's the same script but formatted using the code button:

var userCriteriaSysId = ''; // update user criteria sys Id
var tableList = [];
var referenceList = [];
var grTable = new GlideRecord('sys_dictionary');
grTable.addEncodedQuery('reference=user_criteria^internal_type=reference');
grTable.query();
while (grTable.next()) {
    tableList.push(grTable.name + "");
}

for (var k = 0; k < tableList.length; k++) {
    //gs.print(tableList[k]);
    var returnList = checkUserCriteria(userCriteriaSysId, tableList[k]);
    if (returnList.length > 0) {
        for (var l = 0; l < returnList.length; l++) {
            referenceList.push(returnList[l]);
        }
    }
}

for (var q = 0; q < referenceList.length; q++) {
    gs.print(referenceList[q]);
}

function checkUserCriteria(sysId, tableName) {
    var returnList = [];
    var query = 'user_criteria=' + sysId;
    var grReference = new GlideRecord(tableName);
    grReference.addEncodedQuery(query);
    grReference.query();
    while (grReference.next()) {
        returnList.push(tableName + "|" + grReference.sys_id + "|" + sysId);
    }
    return returnList;
}
VishalBhati
Tera Explorer

@apjohn2 hope this works with custom mapped field as well 🙂

Version history
Last update:
‎12-14-2020 04:20 AM
Updated by: