Knowledge V3 - Retire Knowledge Article
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-18-2018 12:03 PM
We are currently re-deploying our Knowledge Management process using the Out-of-box Knowledge V3 with versioning.
We have a requirement proposed that any ITIL user can start the Retire process on any article. The out-of-box process does not seem to accomodate this. What we are seeing is that to retire an article you must be either the Author of the article or a Knowledge Manager for the Knowledge Base the article resides in.
Any way to expand the Retire capability to my other ITIL users?
Example:
Bob the Analyst published an article in the Enterprise IT knowledge base. Bob the Analyst moves out of IT and no longer has access to ServiceNow.
The Service Desk runs across this old article and it is no longer valid or relevant and was never used. They would like to Retire this article, but there is no Retire button available to them.
---
Ideal what we want:
Each article in our KB has been given a field called 'Article Owner Group' (custom u_ field). This field contains a support group that is by process considered the 'owner' of that article.
Any IT user who can create knowledge in the selected Knowledge Base (eg. Enterprise IT), would have the Retire button available to them.
The Retire Workflow is then modified with more logic around the approvals...
- If you are the Author or member of the listed Article Owner Group, the article instant Retires.
- If you are not the Author or member of the listed Article Owner Group, a group approval is sent to the group listed as the Article Owner Group.
----
What we have tried:
- Copy out of box Retire button and disabled it. Created new Retire button that didn't have the .canRetire() conditions. Even though the button was visible, it didn't do what it was supposed to do.
- I dug through the KB script includes to trace what the .canRetire() checks and ran into dead-ends and spaghetti code. If someone has more info on this, it might be a path to a solution.
- Added various knowledge roles such as coach and even tried giving kb manager to everyone, no deal.
- Soothing voice when talking to the business analyst who is trying to get this process going.
---
Any ideas or suggestions on this would be greatly appreciated!
Thank You,
Christopher Whitesell
Sr. Solutions Engineer - ITSMO
Fairview Health Services
- Labels:
-
Knowledge Management
- 6,137 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-23-2018 12:13 PM
HI Chris,
We are in the process of relaunching Knowledge Management too and have a similar requirement but it is more so for editing a draft version of a knowledge article. We have a decentralized KM team so any given article will need to be updated by more than one person. What we did is create a button titled "Take Ownership" that updates the revised by to the person clicking the button. This allows them to retire a published article or update a draft article that they did not author. Our HR team is also going to take advantage of this button as they have a similar KM Process. I hope this helps.
Jeremy

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2019 10:09 AM
Did anyone figure out a way to do what the OP is asking? We have the exact same needs here.
I tried to do what Jeremy suggested (current.revised_by = gs.getUserID(); in a UI action) but that didn't go anywhere.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-23-2019 05:05 AM
Hi Igor, My apologies for not supplying more clarifying details for the UI Action in my original response. Hopefully this additional information will help.
Here is the condition:
!(new KBCommon().isStackNameDialog()) && current.canCreate() && ((current.revised_by != gs.getUserID() && current.revised_by != '') || (current.author != gs.getUserID() && current.revised_by == '')) && (current.workflow_state == 'draft' || current.workflow_state == 'published') && !(new KBVersioning().isOwnerOrAdmin(current))
Here is the Script:
//Set Revised by to logged on user
current.revised_by = gs.getUserID();
//Set Assigned to
current.u_assigned_to = gs.getUserID();
current.update();
action.setRedirectURL(current);
gs.addInfoMessage('You have taken ownership of ' + current.number);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-23-2019 12:00 PM
Thanks Jeremy! And that actually sets the revised_by for you? Mine wouldn't let me set that field due to data protection or ACL restrictions.