ServiceNow Scipted APi For Knowledge Articles
ServiceNow Scipted APi For Knowledge Articles
//false),fetch_most_viewed(true or false)
if (!queryParams.user_sys_id) {
response.setStatus(400);
return;
}
new GlideImpersonate().impersonate(userId);
if (fetchRecent) {
var gr = new GlideRecord('kb_knowledge');
gr.addQuery("workflow_state", "published");
gr.orderByDesc("sys_created_on"); // Order by creation date in descending
order
gr.setLimit(5); // Limit to 5 most recent articles
gr.query();
while (gr.next()) {
if (gr.canRead() ) {
recentArticles.push({
sys_id: gr.getValue("sys_id"),
short_description: gr.getValue("short_description"),
number: gr.getValue("number")
});
}
}
}
if (fetchMostViewed) {
// Fetch most viewed articles based on the sys_view_count logic
var grMostViewed = new GlideRecord('kb_knowledge');
grMostViewed.addQuery("workflow_state", "published");
grMostViewed.orderByDesc("sys_view_count"); // Order by view count in
descending order
grMostViewed.setLimit(5); // Limit to 5 most viewed articles
grMostViewed.query();
while (grMostViewed.next()) {
if (grMostViewed.canRead() ) {
mostViewedArticles.push({
sys_id: grMostViewed.getValue("sys_id"),
short_description: grMostViewed.getValue("short_description"),
number: grMostViewed.getValue("number")
});
}
}
}
while (gr.next()) {
if (gr.canRead()) {
accessibleArticles.push({
sys_id: gr.getValue("sys_id"),
short_description: gr.getValue("short_description"),
number: gr.getValue("number")
});
}
}
}
response.setContentType('application/json');
response.setStatus(200);
if (fetchRecent) {
body.recent_articles = recentArticles;
} else if (fetchMostViewed) {
body.most_viewed_articles = mostViewedArticles;
} else {
body.accessible_articles = accessibleArticles;
}
response.setBody(body);
})(request, response);