How add owner ship group as approver in knowledge

kesavan4
Tera Contributor

How to add owner ship group as approver if knowledge base is known error in the below code

 

kesavan4_0-1700549262810.png

 

1 ACCEPTED SOLUTION

Hey @kesavan4 

okay now I see what's going on.

 

//answer = new KBWorkflow().getApprovers(current);
answer = [];
var authorID = current.getValue('author');
var ownershipGroupID = current.getValue('ownership_group');
if (current.kb_knowledge_base.title.toString() === 'Known Error') {
    var grMember = new GlideRecord('sys_user_grmember');
    grMember.addQuery('group', ownershipGroupID);
    grMember.addQuery('user', '!=', authorID);
    grMember.addQuery('user.active', true); //active user
    grMember.query();
    while (grMember.next()) {
        answer.push(grMember.getValue('user'));
    }
} else {
    answer.push('fbd45ee71bc6659408cd9828b04bcbcb');
}

 

 

Enjoy!

TaiVu_0-1700573335204.png

TaiVu_1-1700573342465.png

 

Remember to consider cloning the approval workflow to do the customization instead of changing directly in the OOTB one.

 

Cheers,

Tai Vu

 

View solution in original post

9 REPLIES 9

Tai Vu
Kilo Patron
Kilo Patron

Hi @kesavan4 

You can set the answer as the sys_id of the approval group, it should generate approval requests for each member. So we don't need to do the query to the Group Members table.

Sample for your case.

 

answer = [];
if(current.kb_knowledge_base.title.toString() === 'Known Error'){
	answer.push('31a8a8a3dbc38b003724f5b31d961921');
}else{
	answer.push('fbd45ee71bc6659408cd9828b04bcbcb');
}

 

 

Also just try to avoid hard-coding by defining the system properties to store the record sys_ids.

 

Cheers,

Tai Vu

kesavan4
Tera Contributor

Hello @Tai Vu the group will be selected from by user while creating. we need to take that group and add it as approver 

kesavan4_0-1700551818845.png

 

Hi @kesavan4 

Okay so let replace the sys_id by that field then.

 

answer = [];
if(current.kb_knowledge_base.title.toString() === 'Known Error'){ //This condition should use the KB sys_id instead of the title
	answer.push(current.getValue('u_owning_group'));
}else{
	answer.push('fbd45ee71bc6659408cd9828b04bcbcb');
}

 

 

Consider when you put this line "answer = new KBWorkflow().getApprovers(current);" into comment. It might impact to the other KB using the OOTB getApprover function.

 

Cheers,

Tai √u

kesavan4
Tera Contributor

Hi @Tai Vu its going to pending retirement but approval is not triggered

 

kesavan4_0-1700553705596.png

 

kesavan4_1-1700553737959.png