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.

Mapping Knowledge Article ownership group based on groups.

Abhilasha G T
Tera Contributor

Hi Team,

 

I have a requirement like Below,

 

1. If KB (Knowledge Base) Can Contribute groups → show only those groups in the Ownership group on the Article.

 

2.If KB does NOT have Can Contribute groups → show all groups where type = Knowledge in the Ownership group on the Article.

 

i have written below Script include,  and updated the reference qualifier on ownership group.

AbhilashaGT_0-1764609863919.png

 

var GetKBGroups = Class.create();
GetKBGroups.prototype = {
    initialize: function() {},

    /**
     * Returns a dynamic query for Ownership Group field:
     * - If KB has "Can Contribute" groups, return those groups.
     * - Else, fallback to OOB filter (type contains Knowledge).
     * @Param {String} kbSysId - sys_id of the Knowledge Base
     * @returns {String} - Query string for reference qualifier
     */
    getGroups: function(kbSysId) {

        // var groups = []; removed

        // If no KB selected, fallback immediately, No KB selected → OOB behavior
        if (!kbSysId) {
            return 'typeLIKEKnowledge';
        }
        var groups = []; //ADDED
        // Query kb_can_contribute table for groups linked to KB
        var gr = new GlideRecord('kb_uc_can_contribute_mtom');
        gr.addQuery('kb_knowledge_base', kbSysId);
        gr.query();

        while (gr.next()) {
            if (gr.user_criteria.group) {// Confirm the field path for group
                groups.push(gr.user_criteria.group.toString());
            }
        }

        // If groups found, return sys_id filter
        if (groups.length > 0) {
            return 'sys_idIN' + groups.join(',');
        } else {
            // Fallback to OOB behavior- Fallback to OOB behavior: show all groups where type contains Knowledge
            return 'typeLIKEKnowledge';

           
        }
    },

    type: 'GetKBGroups'
};

 

Requirement 2 is not able to achieve , how to fix this.

 

Regards,

Abhilasha G T

0 REPLIES 0