- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-20-2023 10:49 PM
How to add owner ship group as approver if knowledge base is known error in the below code
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2023 05:29 AM - edited 11-21-2023 05:43 AM
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!
Remember to consider cloning the approval workflow to do the customization instead of changing directly in the OOTB one.
Cheers,
Tai Vu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2023 12:15 AM
This is the code after modification
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2023 03:14 AM
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'));
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.
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2023 03:53 AM
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2023 05:29 AM - edited 11-21-2023 05:43 AM
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!
Remember to consider cloning the approval workflow to do the customization instead of changing directly in the OOTB one.
Cheers,
Tai Vu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2023 05:38 AM
Hi @Tai Vu Thanks for the help its working as expected.