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: