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

kesavan4
Tera Contributor

This is the code after modification

//answer = new KBWorkflow().getApprovers(current);
answer = [];
var memb =[];
var gr = new GlideRecord('sys_user_grmember');
//var owner = current.kb_knowledge_base.ownership_group.tostring();
//gs.log("kesavan2345",+'owner');
if(current.kb_knowledge_base.title.toString() === 'Known Error')
{
answer.push(current.getValue('ownership_group'));
}
else
{
gr.addQuery('group','=','fbd45ee71bc6659408cd9828b04bcbcb');
gr.query();
while(gr.next())
{
memb.push(gr.user.toString());
}
 
var a=current.author;
var c = [];
c=memb;
var d = [];
d.push(a);
var count = 0;
var value = [];
for (var i=0;i<c.length;i++)
{
    if(d[0] == c[i])
    {
        delete c[i];
        count++;
    }
 
}
for (i=0; i<c.length;i++)
{
    if (c[i]!= undefined)
    {
      value.push(c[i]);
   }
 
answer.push(value);

Hi @kesavan4 

You don't need to check for the duplication in the list of approvers.

Try the below adjustment.

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

Screenshot 2023-11-21 at 18.11.09.png

 

I can see the business requirement is that the Ownership Approval is only applied for Known Error knowledge base.

The right approach is that you should clone the workflow Knowledge - Instant Retire, do your own customization in the new one, then update the Retire workflow in the knowledge base.

TaiVu_0-1700565144689.png

With the cloned approach, you don't need to worry about the impact and the script is just simple like below.

var answer = [];
answer.push(current.getValue('ownership_group'));
answer.push(current.getValue('author'));

 

Let me know if it works for you.

 

Cheers,

Tai Vu

kesavan4
Tera Contributor

Hi @Tai Vu  everything is working fine but there is one condition if the author is in the approval group it should not ask approval for him can you please give a solution for that

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

 

kesavan4
Tera Contributor

Hi @Tai Vu Thanks for the help its working as expected.