Name

global.CSHelper

Description

No description available

Script

var CSHelper = Class.create();
CSHelper.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  getCaseObj:function(){
  	return {
  		"caseNO":"",
  		"short_description":"",
  		"caseSysID":"",
  		"account":"",
  		"product":"",
  		"priority":"",
  		"contact":"",
  		"state":"",
  		"opened":"",
  		"accountColName":"Account",
  		"productColName":"Product",
  		"priorityColName":"Priority",
  		"contactColName":"Contact",
  		"stateColName":"State",
  		"openedColName":"Opened"
  	};
  },
  getSearchResponse: function(searchQuery){
  	var request =  new SNC.SearchRequest();
  	var response = request.fromJSON(searchQuery).submit();
  	var responseJSONString = response.toJSON();
  	var responseJSONObj = JSON.parse(responseJSONString);
  	var searchQueryJsonObj =  JSON.parse(searchQuery);
  	var caselist = [];
  	if(searchQueryJsonObj && searchQueryJsonObj.query && searchQueryJsonObj.query.freetext){
  		
  		var isSysAdmin = gs.hasRole("admin");
  		var isCustomer = gs.hasRole("sn_customerservice.customer");
  		var isCustomerAdmin = gs.hasRole("sn_customerservice.customer_admin");
  		var isPartner = gs.hasRole("sn_customerservice.partner");
  		var isPartnerAdmin = gs.hasRole("sn_customerservice.partner_admin");
  		
  		var utilsfunc = new global.CSManagementUtils();
  		
  		var caseRec = new GlideRecord("sn_customerservice_case");
  		caseRec.addQuery("123TEXTQUERY321", searchQueryJsonObj.query.freetext);
  		
  		/*if(!isCustomerAdmin && !isPartnerAdmin){
  			caseRec.addQuery("contact",gs.getUserID()).addOrCondition("opened_by",gs.getUserID());
  		}
  		
  		if(isPartner || isPartnerAdmin){
  			var accountArr = utilsfunc.getMeAndPartners();
  			caseRec.addQuery("account","IN",accountArr.toString());
  		}else{
  			caseRec.addQuery("account","IN",utilsfunc.getUserAccount());
  		}*/
  		
  		caseRec.query();
  		gs.info("numberof cases seen "+caseRec.getRowCount());
  		while (caseRec.next()) {
  			if(caseRec.canRead()) {
  				var caseObj = new CSHelper().getCaseObj();
  				caseObj["caseNO"] = caseRec.getValue("number");
  				caseObj["short_description"] = caseRec.getValue("short_description");
  				caseObj["caseSysID"] = caseRec.getValue("sys_id");
  				caseObj["account"] = caseRec.getDisplayValue("account");
  				caseObj["priority"] = caseRec.getDisplayValue("priority");
  				caseObj["product"] = caseRec.getDisplayValue("product");
  				caseObj["contact"] = caseRec.getDisplayValue("contact");
  				caseObj["state"] = caseRec.getDisplayValue("state");
  				caseObj["opened"] = caseRec.getDisplayValue("opened_at");
  				caseObj["accountColName"] = caseRec.getElement("account").getLabel();
  				caseObj["productColName"] = caseRec.getElement("product").getLabel();
  				caseObj["priorityColName"] = caseRec.getElement("priority").getLabel();
  				caseObj["contactColName"] = caseRec.getElement("contact").getLabel();
  				caseObj["stateColName"] = caseRec.getElement("state").getLabel();
  				caseObj["openedColName"] = caseRec.getElement("opened_at").getLabel();
  				caselist.push(caseObj);	
  			}
  		}
  		if(caselist.length>0){
  			responseJSONObj["caseResult"] = caselist;
  		}
  	}
  	return JSON.stringify(responseJSONObj);
  },
  
  getTimeAgo:function(glidedatetime){
  	if(glidedatetime){
  		var timeago = new GlideTimeAgo();
  		return timeago.format(glidedatetime);
  	}
  	return "";
  },
  
  userHasRole:function(userID, role) {  
  	var gsUser = gs.getUser().getUserByID(userID);  
      return gsUser.hasRole(role);
  },
  
  changePortalPage : function(){
  	gs.loadResource("com.sn_customerservice_pa", "/portal_page/sys_portal_page_3d3a3d9f6f5331003b3c498f5d3ee42f.xml");
  },
  
  setGlideIntegerDate : function(record,intDate){
  	//record.start_at = new GlideIntegerDate(intDate);
  	record.setValue("start_at",intDate);
  },
  
  runStateFlow: function(record){
  	var status;
  	try {
  		new global.StateFlow().processFlow(record, 'd8069501c33231005f76b2c712d3aead', 'manual');
  		status = 'true';
  	} catch (exception) {
  		gs.error('Exception while closing case' + exception);
  		status = 'false';
  	}

  	return status;
  },

  type: 'CSHelper'
  
});

Sys ID

a0a4ea14c372310087dcd02422d3aeef

Offical Documentation

Official Docs: