- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2024 03:52 AM
Hi Team
Below is the code working fine for article that passed 5days on valid to, and retire articles. But I want to retire all the articles if any one of the article met the valid to date condition 5days. irrespective of state they are and version.
var x = new GlideDateTime(gs.now());
x.addDays(-5);
x = x.getDate();
var knowledge_article = new GlideRecord('kb_knowledge');
knowledge_article.addQuery('valid_to', '<=', x );
knowledge_article.addEncodedQuery('kb_knowledge_base=a7e8a78bff0221009b20ffffffffff17^workflow_state=published^ORworkflow_state=pending_retirement^ORworkflow_state=draft^ORworkflow_state=review^ORworkflow_state=extension_review^ORworkflow_state=scheduled_publish');
knowledge_article.addQuery('number', 'KB0015495');
knowledge_article.query();
while (knowledge_article.next()) {
knowledge_article.workflow_state = 'retired';
knowledge_article.u_auto_retire = 'true';
knowledge_article.setWorkflow(false);
knowledge_article.update();
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2024 09:11 AM
var kbNumber=[];
var x = new GlideDateTime(gs.now());
x.addDays(-5);
x = x.getDate();
var knowledge_article = new GlideRecord('kb_knowledge');
knowledge_article.addEncodedQuery('kb_knowledge_base=a7e8a78bff0221009b20ffffffffff17^ORkb_knowledge_base=42a1f18647dc9d50da21ebbd436d432e^ORkb_knowledge_base=003eef4cc35abd1080df7aef05013166^ORkb_knowledge_base=0d0ed6ff97b91d9c29faf1500153aff5^workflow_stateNOT INretired,outdated,rejected');
knowledge_article.addQuery('valid_to', '<=', x);
knowledge_article.query();
while (knowledge_article.next()) {
kbNumber.push(knowledge_article.getValue('number'));
//gs.print( "Number " + kbNumber + " State " + knowledge_article.workflow_state);
}
var knowledge_article1 = new GlideRecord('kb_knowledge');
knowledge_article1.addEncodedQuery('kb_knowledge_base=a7e8a78bff0221009b20ffffffffff17^ORkb_knowledge_base=42a1f18647dc9d50da21ebbd436d432e^ORkb_knowledge_base=003eef4cc35abd1080df7aef05013166^ORkb_knowledge_base=0d0ed6ff97b91d9c29faf1500153aff5^workflow_stateNOT INretired,outdated,rejected');
knowledge_article1.addQuery('number','IN',kbNumber);
knowledge_article1.query();
while(knowledge_article1.next()){
gs.print(" Query Number :"+knowledge_article1.number + "state: "+knowledge_article1.workflow_state );
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2024 04:03 AM
@Ash41 Add a preliminary query to check if any articles meet the valid_to date condition. Only if such articles are found does it proceed to retire all relevant articles. try the below code.
// Define the threshold date for retirement var thresholdDate = new GlideDateTime(gs.now()); thresholdDate.addDays(-5); thresholdDate = thresholdDate.getDate(); // Check if any articles meet the valid_to condition var checkArticle = new GlideRecord('kb_knowledge'); checkArticle.addQuery('valid_to', '<=', thresholdDate); checkArticle.addQuery('kb_knowledge_base', 'a7e8a78bff0221009b20ffffffffff17'); // Your Knowledge Base checkArticle.query(); if (checkArticle.hasNext()) { // If any article meets the condition, retire all relevant articles var retireArticle = new GlideRecord('kb_knowledge'); retireArticle.addQuery('kb_knowledge_base', 'a7e8a78bff0221009b20ffffffffff17'); // Your Knowledge Base retireArticle.addEncodedQuery('workflow_state=published^ORworkflow_state=pending_retirement^ORworkflow_state=draft^ORworkflow_state=review^ORworkflow_state=extension_review^ORworkflow_state=scheduled_publish'); retireArticle.query(); while (retireArticle.next()) { retireArticle.workflow_state = 'retired'; retireArticle.u_auto_retire = 'true'; retireArticle.setWorkflow(false); retireArticle.update(); } }
Mark it helpful 👍and Accept Solution ✅!! If this helps you to understand.
…………………………………………........................................................................................
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2024 05:47 AM
Hi Satish,
I have tried with one record instead running for mutiple record at a time, still it retied other records as well.
// Define the threshold date for retirement
var thresholdDate = new GlideDateTime(gs.now());
thresholdDate.addDays(-5);
thresholdDate = thresholdDate.getDate();
// Check if any articles meet the valid_to condition
var checkArticle = new GlideRecord('kb_knowledge');
checkArticle.addQuery('valid_to', '<=', thresholdDate);
checkArticle.addQuery('kb_knowledge_base', 'a7e8a78bff0221009b20ffffffffff17'); // Your Knowledge Base
checkArticle.addQuery('number', 'KB000xxx');
checkArticle.query();
if (checkArticle.hasNext()) {
// If any article meets the condition, retire all relevant articles
var retireArticle = new GlideRecord('kb_knowledge');
retireArticle.addQuery('kb_knowledge_base', 'a7e8a78bff0221009b20ffffffffff17'); // Your Knowledge Base
retireArticle.addEncodedQuery('workflow_state=published^ORworkflow_state=pending_retirement^ORworkflow_state=draft^ORworkflow_state=review^ORworkflow_state=extension_review^ORworkflow_state=scheduled_publish');
retireArticle.addQuery('number', 'KB000xxx');
retireArticle.query();
while (retireArticle.next()) {
retireArticle.workflow_state = 'retired';
retireArticle.u_auto_retire = 'true';
retireArticle.setWorkflow(false);
retireArticle.update();
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2024 09:11 AM
var kbNumber=[];
var x = new GlideDateTime(gs.now());
x.addDays(-5);
x = x.getDate();
var knowledge_article = new GlideRecord('kb_knowledge');
knowledge_article.addEncodedQuery('kb_knowledge_base=a7e8a78bff0221009b20ffffffffff17^ORkb_knowledge_base=42a1f18647dc9d50da21ebbd436d432e^ORkb_knowledge_base=003eef4cc35abd1080df7aef05013166^ORkb_knowledge_base=0d0ed6ff97b91d9c29faf1500153aff5^workflow_stateNOT INretired,outdated,rejected');
knowledge_article.addQuery('valid_to', '<=', x);
knowledge_article.query();
while (knowledge_article.next()) {
kbNumber.push(knowledge_article.getValue('number'));
//gs.print( "Number " + kbNumber + " State " + knowledge_article.workflow_state);
}
var knowledge_article1 = new GlideRecord('kb_knowledge');
knowledge_article1.addEncodedQuery('kb_knowledge_base=a7e8a78bff0221009b20ffffffffff17^ORkb_knowledge_base=42a1f18647dc9d50da21ebbd436d432e^ORkb_knowledge_base=003eef4cc35abd1080df7aef05013166^ORkb_knowledge_base=0d0ed6ff97b91d9c29faf1500153aff5^workflow_stateNOT INretired,outdated,rejected');
knowledge_article1.addQuery('number','IN',kbNumber);
knowledge_article1.query();
while(knowledge_article1.next()){
gs.print(" Query Number :"+knowledge_article1.number + "state: "+knowledge_article1.workflow_state );
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2024 02:55 AM
Thanks for your help! 🙂