Suitelet returns the KLIPFOLIO - UK CASE whose search results summarize length of open cases
/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
/*******************************************************************
* Suitelet Script returns search result for klipfolio
****************************************************************
*
* Date: 16/05/2022
*
* Author: Jobin and Jismi IT Services LLP
*
* REVISION HISTORY
*
* Revision
*
* Description: Suitelet returns the KLIPFOLIO - UK CASES for klipfolio -length of open cases
***************************************************************/
define(['N/format', 'N/search'],
/**
* @param{format} format
* @param{search} search
*/
(format, search) => {
var docArray = [];
/**
* Defines the Suitelet script trigger point.
* @param {Object} scriptContext
* @param {ServerRequest} scriptContext.request - Incoming request
* @param {ServerResponse} scriptContext.response - Suitelet response
* @since 2015.2
*/
const onRequest = (scriptContext) => {
try{
var response = scriptContext.response;
//search for <24 hours
var supportcaseSearchObj1 = search.create({
type: "supportcase",
filters:
[
["stage","anyof","OPEN","ESCALATED"],
"AND",
["subsidiary","anyof","12"],
"AND",
["formulanumeric: {timeopen}","lessthan","24"]
],
columns:
[
//search.createColumn({name: "createddate", label: "Date Created"}),
search.createColumn({
name: "formulatext",
formula: "CASE WHEN {timeopen}<24 THEN '<24 Hours' END",
label: "Formula (Text)"
})
]
});
var searchResultCount1 = supportcaseSearchObj1.runPaged().count;
//log.debug("supportcaseSearchObj result count",searchResultCount1);
if (searchResultCount1>0){
supportcaseSearchObj1.run().each(function (result){
var docObj = {};
docObj.TimeOpen = result.getValue({name: "formulatext", label: "24 hours"});
docObj.Numberofcases=searchResultCount1;
docArray.push(docObj);
});
}
// // search to find open case >24hr
var supportcaseSearchObj2 = search.create({
type: "supportcase",
filters:
[
["stage","anyof","OPEN","ESCALATED"],
"AND",
["subsidiary","anyof","12"],
"AND",
["formulanumeric: {timeopen}","lessthan","72"],
"AND",
["formulanumeric: {timeopen}","greaterthan","24"]
],
columns:
[
search.createColumn({
name: "formulatext",
formula: "CASE WHEN {timeopen}>24 AND {timeopen}<72 THEN '24 - 72 Hours'END ",
label: "Formula (Text)"
})
]
});
var searchResultCount2= supportcaseSearchObj2.runPaged().count;
//log.debug("supportcaseSearchObj result count",searchResultCount2);
if (searchResultCount2>0){
supportcaseSearchObj2.run().each(function (result){
var docObj1 = {};
docObj1.TimeOpen = result.getValue({name: "formulatext", label: "24 - 72 Hours"});
docObj1.NumberOfCases=searchResultCount2;
docArray.push(docObj1);
});
}
// //search for 3 days to 1 wk
var supportcaseSearchObj3 = search.create({
type: "supportcase",
filters:
[
["stage","anyof","OPEN","ESCALATED"],
"AND",
["subsidiary","anyof","12"],
"AND",
["formulanumeric: {timeopen}","greaterthan","72"],
"AND",
["formulanumeric: {timeopen}","lessthan","168"]
],
columns:
[
search.createColumn({
name: "formulatext",
formula: "CASE WHEN {timeopen}>72 AND {timeopen}<168 THEN '3 Days - 1 Week' END",
label: "Formula (Text)"
})
]
});
var searchResultCount3 = supportcaseSearchObj3.runPaged().count;
// log.debug("supportcaseSearchObj result count",searchResultCount4);
if (searchResultCount3>0){
supportcaseSearchObj3.run().each(function (result){
var docObj3 = {};
docObj3.TimeOpen = result.getValue({name: "formulatext", label: "24 - 72 Hours"});
docObj3.NumberOfCases=searchResultCount3;
docArray.push(docObj3);
});
}
// //search result for 1-2 wks
var supportcaseSearchObj4 = search.create({
type: "supportcase",
filters:
[
["stage","anyof","OPEN","ESCALATED"],
"AND",
["subsidiary","anyof","12"],
"AND",
["formulanumeric: {timeopen}","greaterthan","168"],
"AND",
["formulanumeric: {timeopen}","lessthan","336"]
],
columns:
[
search.createColumn({
name: "formulatext",
formula: "CASE WHEN {timeopen}>168 AND {timeopen}<336 THEN '1 - 2 Weeks' END",
label: "Formula (Text)"
})
]
});
var searchResultCount4 = supportcaseSearchObj4.runPaged().count;
//log.debug("supportcaseSearchObj result count",searchResultCount4);
if (searchResultCount4>0){
supportcaseSearchObj4.run().each(function (result){
var docObj4 = {};
docObj4.TimeOpen = result.getValue({name: "formulatext", label: "24 - 72 Hours"});
docObj4.NumberOfCases=searchResultCount4;
docArray.push(docObj4);
});
}
// //search for older greater than 336
var supportcaseSearchObj5 = search.create({
type: "supportcase",
filters:
[
["stage","anyof","OPEN","ESCALATED"],
"AND",
["subsidiary","anyof","12"],
"AND",
["formulanumeric: {timeopen}","greaterthan","336"],
],
columns:
[
search.createColumn({
name: "formulatext",
formula: "CASE WHEN {timeopen}>336 THEN 'older' END",
label: "Formula (Text)"
})
]
});
var searchResultCount5 = supportcaseSearchObj5.runPaged().count;
//log.debug("supportcaseSearchObj result count",searchResultCount5);
if (searchResultCount5>0){
supportcaseSearchObj5.run().each(function (result){
var docObj5 = {};
docObj5.TimeOpen = result.getValue({name: "formulatext", label: "24 - 72 Hours"});
docObj5.NumberOfCases=searchResultCount5;
docArray.push(docObj5);
});
}
response.writeLine(JSON.stringify(docArray));
}catch (e) {
log.debug("error @ onRequest",e);
}
}
return {onRequest}
});