0% found this document useful (0 votes)
39 views2 pages

ServiceNow Scipted APi For Knowledge Articles

ServiceNow scipted APi for knowledge articles
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views2 pages

ServiceNow Scipted APi For Knowledge Articles

ServiceNow scipted APi for knowledge articles
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

//query params:- user_sys_id,article_ids(not mandatory),fetch_recent(true or

//false),fetch_most_viewed(true or false)

(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {


var queryParams = request.queryParams;

if (!queryParams.user_sys_id) {
response.setStatus(400);
return;
}

var userId = queryParams.user_sys_id;


var fetchRecent = queryParams.fetch_recent === 'true'; // Parse the boolean
value
var fetchMostViewed = queryParams.fetch_most_viewed === 'true'; // Parse the
boolean value

new GlideImpersonate().impersonate(userId);

var accessibleArticles = [];


var recentArticles = [];
var mostViewedArticles = [];

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")
});
}
}
}

if (!fetchRecent && !fetchMostViewed) {


// Query and populate accessibleArticles based on article_ids
var articleIds = queryParams.article_ids || “”; // Make it an empty string
if not provided
var gr = new GlideRecord('kb_knowledge');
gr.addQuery("sys_idIN" + articleIds);
gr.addQuery("workflow_state", "published");
gr.query();

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);

var body = {};

if (fetchRecent) {
body.recent_articles = recentArticles;
} else if (fetchMostViewed) {
body.most_viewed_articles = mostViewedArticles;
} else {
body.accessible_articles = accessibleArticles;
}

response.setBody(body);
})(request, response);

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy