Expired / Retired Articles are still searchable and usable in Knowledge Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-30-2016 01:02 AM
Greetings All,
1. | Expired / Retired Articles are still searchable and usable in Knowledge Management. |
2. | Helpdesk is able to see them and use them which we don't want to do. |
We need to get these either unsearchable from Knowledgebase or Add in a Text- This is a Retired Article and Should not be used for Troubleshooting or reference purpose.
Kindly suggest a solution.
Regards,
Shikha Khanna

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-30-2016 05:14 AM
Check the valid to date. If the valid to date is still valid, the article is still searchable. Set the valid to date to something like yesterday. It might not be immediately not searchable, you might have to wait for text index to rebuild.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-30-2016 05:15 AM
Hi,
By default the baseline Knowledge Base search does not display retired article in (Eureka, Fuji or Geneva), to help you further we need to know the version of your knowledge base / or instance (v2 prior to Fuji release, v3 starting Fuji) and if there is some customization on the Knowledge mangement (UI Macros, Article status, and so on) or any modification like recent upgrade,
To give you some starting point for your investigation, Knowledge Base search use the UI macro "kb_find_query" to filter which article are visible or not. This could be useful to check this script.
Regards
Jeremie
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-31-2016 03:37 AM
Hi,
I searched this macro and the below code:
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<j2:set var="jvar_show_unpublished" value="$[gs.getProperty('glide.knowman.show_unpublished', 'false')]"/>
<g2:evaluate jelly="true" var="jvar_item">
var now = gs.dateGenerate(gs.yesterday(), 'end');
var kb = new GlideRecord('kb_knowledge');
var operator = 'IR_AND_QUERY';
if (jelly.sysparm_operator) {
operator = jelly.sysparm_operator;
}
if (jelly.sysparm_search $[AND] jelly.sysparm_search.length != 0) {
kb.addQuery(operator, jelly.sysparm_search);
}
if (jelly.sysparm_topic $[AND] jelly.sysparm_topic.length != 0 $[AND] jelly.sysparm_topic != 'null') {
kb.addQuery('topic', jelly.sysparm_topic);
}
if (jelly.sysparm_category $[AND] jelly.sysparm_category.length != 0 $[AND] jelly.sysparm_topic != 'null') {
kb.addQuery('category', jelly.sysparm_category);
}
if (jelly.kb_language_filter_select $[AND] jelly.kb_language_filter_select.length != 0 $[AND] jelly.kb_language_filter_select != 'null') {
kb.addQuery('language', jelly.kb_language_filter_select);
kb.setWorkflow(false);
} else if ('$[sysparm_language]' != '' $[AND] '$[sysparm_language]' != null $[AND] '$[sysparm_language]' != 'null') {
kb.addQuery('language', '$[sysparm_language]');
kb.setWorkflow(false);
}
if (jelly.kb_department $[AND] jelly.kb_department.length != 0 $[AND] jelly.kb_department != 'null') {
kb.addQuery('JOINkb_knowledge.sys_id=kb_department.article!department=' + jelly.kb_department);
}
kb.addQuery('valid_to', '>', now);
kb.addQuery('active', 'true');
var qc1 = kb.addQuery('workflow_state', 'published');
var draftRoles = gs.getProperty("glide.knowman.section.view_roles.draft");
if (draftRoles == null) {
draftRoles = "knowledge_admin";
}
if ('$[jvar_show_unpublished]' == 'true' $[AND] gs.hasRole(draftRoles)) {
qc1.addOrCondition('workflow_state', 'draft');
}
var reviewRoles = gs.getProperty("glide.knowman.section.view_roles.review");
if (reviewRoles == null) {
reviewRoles = "itil,knowledge,knowledge_admin";
}
if ('$[jvar_show_unpublished]' == 'true' $[AND] gs.hasRole(reviewRoles)) {
qc1.addOrCondition('workflow_state', 'review');
}
kb.addQuery("$[sysparm_query]");
var orderField = 'relevancy';
var sortSequence = jelly.sysparm_order;
if (sortSequence == "") {
sortSequence = gs.getProperty('glide.knowman.order.search');
}
if (sortSequence == 'views') {
kb.orderByDesc("sys_view_count");
orderField = "view count";
} else if (sortSequence == "sys_updated_on") {
kb.orderByDesc("sys_updated_on");
orderField = "last modified";
} else {
orderField = "relevancy";
}
</g2:evaluate>
<j2:if test="$[jvar_apply_paging == 'true']">
<g2:com.glideapp.knowledge_section record="$[kb]" startRecord="$[sysparm_current_row - 1]"
endRecord="$[sysparm_current_row + sys_nav_count - 1]"/>
</j2:if>
<j2:if test="$[jvar_apply_paging == 'false']">
<g2:evaluate>
// When pagination is enabled, the query will be executed in
// the knowledge_section above. When disabled, we need to run
// it here instead:
kb.query();
</g2:evaluate>
</j2:if>
</j:jelly>
what shall i do with it?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-01-2016 02:41 AM
Hi,
It seems you are using a Knowledge base v2 (version prior to fuji), I have compared your script with one from an Eureka instance (with a v2 KB) and they are similar.
I asked you to look at this script to check for any modification on this script (not filtering the retired KB article), but queries condition present on it, filter on
published, Draft or Review states on Active KB article, not on Retired ones. No issue there.
Maybe a cache flush could help but I am really not sure.