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