Name

global.TriageBoardService

Description

No description available

Script

var TriageBoardService = Class.create();

TriageBoardService._getTriageDefinition = function(table, query, sysId) {
  var gr = new GlideRecord(table);
  
  if (!JSUtil.nil(sysId))
  	gr.addQuery('sys_id', sysId);
  else {
  	gr.addEncodedQuery(query);
  	gr.orderBy('table');
  	gr.setLimit(1);
  }
  gr.query();
  
  return gr.next() && gr.isValidRecord() ? gr : null;
};

TriageBoardService._getItemsToBeTriaged = function (gr) {
  var result= 0;
  var counter= new GlideAggregate(gr.getValue('table'));
  
  counter.addEncodedQuery(gr.getValue('filter'));
  counter.addAggregate('COUNT');
  counter.query();
  
  if (counter.next())
  	result= counter.getAggregate('COUNT');
  
  return result;
};

TriageBoardService.getTriageDefinitionListWithTriageRecordCount = function(table, query, limit) {
  var gr;
  var items = [];
  var totalItemsToBeTriaged = 0;
  var response = {};
  
  if (JSUtil.notNil(table)) {
  	gr = new GlideRecord(table);
  	gr.addEncodedQuery(query);
  	gr.orderBy('name');
  	
  	if(JSUtil.notNil(limit))
  		gr.chooseWindow(0, limit);
  	
  	gr.query();
  	
  	response.triageItemsCount = gr.getRowCount();

  	while(gr.next()) {
  		var itemsToBeTriaged = this._getItemsToBeTriaged(gr);
  		var item = {
  			sys_id: gr.getValue('sys_id'),
  			name: gr.getValue('name'),
  			table: gr.getValue('table'),
  			filter: gr.getValue('filter'),
  			itemsToBeTriaged: itemsToBeTriaged
  		};

  		items.push(item);

  		totalItemsToBeTriaged += parseInt(itemsToBeTriaged, 10);
  	}
  	
  	response.results = items;
  	response.totalItemsToBeTriaged = totalItemsToBeTriaged;
  	
  	return response;
  }
};

Sys ID

8cb6eb0d87200300de96de05b7cb0b89

Offical Documentation

Official Docs: