Knowledge Article
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-12-2025 11:29 AM
Two sets of approvals should go out at the same time, and only one user from each group is required to approve. The two sets of approval are: 1. send to the Ownership group 2. according to knowledge article it should go to particular group, for example if Knowledge base is known error than approval should send to the 'known error' group or if Knowledge base is Itil user than approval should send to the 'users with itil role' group
For this I have modified the script include -
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-15-2025 08:56 PM
Made few changes, otherwise your script looks good!
Are you overriding the OOB approval flow?
var KBWorkflow = Class.create();
KBWorkflow.prototype = Object.extendsObject(KBWorkflowSNC, {
initialize: function() {},
getApprovers: function(knowledgeGR) {
var approvers = {
kbApprovalUser: '' // Stores a single approver for KB Approval Group
};
var kbName = knowledgeGR.kb_knowledge_base.sys_id;
var kbApprovalGroupId = '';
gs.info("Welcome");
if (kbName == "dbf2021003f07e2c1ac0739ab") {
kbApprovalGroupId = "e101c06b91f034bcb85"; // KB Approval - known error Group
gs.info("Case1");
} else if (kbName == "da796501d08eb53604bcb4e") {
kbApprovalGroupId = "f595d711c06b91f034bcb8a"; // KB Approval - itil group
gs.info("Case2");
} else if (kbName == "fb107fa31bb53604bcbe4") {
kbApprovalGroupId = "6b86d71b1bef5e10034bcb36"; // KB Approval - US Group
gs.info("Case3");
}
// Debugging output
gs.info("Selected KB Approval Group ID: " + kbApprovalGroupId);
if (kbApprovalGroupId) {
approvers.kbApprovalUser = this._getGroupMembers(kbApprovalGroupId);
}
return JSON.stringify(approvers);
},
_getGroupMembers: function(groupId) {
var members = [];
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group', groupId);
//gr.addQuery('user.active', true);
gr.query();
while (gr.next()) {
var userId = members.push(gr.getValue("user"));
var userName = gr.user.name;
gs.info("Added user: " + userName + " (User ID: " + userId + ")");
}
gs.info("Total members found: " + members.length);
return members;
},
type: 'KBWorkflow'
});
Murthy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2025 11:14 PM
Yes. Got the solution. Thank You!!!!!!