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.

Setting user criteria with back ground script

ABC6
Tera Contributor

Hello Team,

i have a requirement where i have to set user criteria for knowledge base via script below are the script i am using i got the error, please help me to get this issue resolved

var userCrit = new GlideRecord('kb_uc_can_read_mtom');
userCrit.initialize();
userCrit.name = 'Users with 'snc_internal' role';
userCrit.kb_knowledge_base.title = 'IT Self Service'; /
userCrit.insert();

1 ACCEPTED SOLUTION

hi @ABC6 ,

 

you can do something like this

var knowledgeBases = [
    'a7e8a78bff0221009b20ffffffffff17', // Knowledge Base 1 sys_id
    'c0a54bac871023000e3dd61e36cb0bcb', // Knowledge Base 2 sys_id
    '2b292926c3302200e7c7d44d81d3ae10'  // Knowledge Base 3 sys_id
];

// Define an array of User Criteria sys_ids
var userCriteria = [
    'ceada52177a000102bc4914f58106106', // User Criteria 1 sys_id
    'fe9bb0d687232300d6b0a7da0acb0b1b', // User Criteria 2 sys_id
    '742c163ac3674a10c7311412b40131d6'  // User Criteria 3 sys_id
];

for (var i = 0; i < knowledgeBases.length; i++) {
    var kbSysId = knowledgeBases[i];

    for (var j = 0; j < userCriteria.length; j++) {
        var userCritSysId = userCriteria[j];

        var userCrit = new GlideRecord('kb_uc_can_read_mtom');
        userCrit.initialize();
        userCrit.user_criteria = userCritSysId; // Set the user criteria
        userCrit.kb_knowledge_base = kbSysId;   // Set the knowledge base
        userCrit.insert();                      // Insert the record
        gs.info('Inserted User Criteria ' + userCritSysId + ' for Knowledge Base ' + kbSysId);
    }
}

 

 

Please mark helpful & correct answer if it's really worthy for you.

 

Thanks,

BK

View solution in original post

4 REPLIES 4

Shruti
Mega Sage
Mega Sage

Hi

Try below code

var userCrit = new GlideRecord('kb_uc_can_read_mtom');
userCrit.initialize();
userCrit.user_criteria = 'd2d2e20557130300d873ac71ef94f9aa';    //replace with sys_id of Users with 'snc_internal' role user criteria
userCrit.kb_knowledge_base= 'a7e8a78bff0221009b20ffffffffff17'; // replace with sys_id of IT self service knowledge base
userCrit.insert();

ABC6
Tera Contributor

if we need to update user criteria for multiple knowledge base , what we need to do in such scenario

hi @ABC6 ,

 

you can do something like this

var knowledgeBases = [
    'a7e8a78bff0221009b20ffffffffff17', // Knowledge Base 1 sys_id
    'c0a54bac871023000e3dd61e36cb0bcb', // Knowledge Base 2 sys_id
    '2b292926c3302200e7c7d44d81d3ae10'  // Knowledge Base 3 sys_id
];

// Define an array of User Criteria sys_ids
var userCriteria = [
    'ceada52177a000102bc4914f58106106', // User Criteria 1 sys_id
    'fe9bb0d687232300d6b0a7da0acb0b1b', // User Criteria 2 sys_id
    '742c163ac3674a10c7311412b40131d6'  // User Criteria 3 sys_id
];

for (var i = 0; i < knowledgeBases.length; i++) {
    var kbSysId = knowledgeBases[i];

    for (var j = 0; j < userCriteria.length; j++) {
        var userCritSysId = userCriteria[j];

        var userCrit = new GlideRecord('kb_uc_can_read_mtom');
        userCrit.initialize();
        userCrit.user_criteria = userCritSysId; // Set the user criteria
        userCrit.kb_knowledge_base = kbSysId;   // Set the knowledge base
        userCrit.insert();                      // Insert the record
        gs.info('Inserted User Criteria ' + userCritSysId + ' for Knowledge Base ' + kbSysId);
    }
}

 

 

Please mark helpful & correct answer if it's really worthy for you.

 

Thanks,

BK

Bhavya11
Kilo Patron
Kilo Patron

Hi @ABC6 ,

 

Please try below code 

 

var userCrit = new GlideRecord('kb_uc_can_read_mtom');
userCrit.initialize();
userCrit.user_criteria= "sys_id of user criteria";
userCrit.kb_knowledge_base = 'sys_id of knowledge base'; 
userCrit.insert();

 

example

 

var userCrit = new GlideRecord('kb_uc_can_read_mtom');
userCrit.initialize();
userCrit.user_criteria= "29b4e0c9873023000e3dd61e36cb0b42";
userCrit.kb_knowledge_base = 'dfc19531bf2021003f07e2c1ac0739ab'; 
userCrit.insert();

 

 

 

Please mark helpful & correct answer if it's really worthy for you.

 

Thanks,

BK