Name

global.SprintTrackingCommonService

Description

No description available

Script

var SprintTrackingCommonService = Class.create();
SprintTrackingCommonService.prototype = {
  initialize: function(parentSysClassName, childSysClassName, relationField, viewName, listViewName, tableMap, isMultiTaskActive) {
  	this.parentSysClassName = parentSysClassName;
  	this.childSysClassName = childSysClassName;
  	this.relationField = relationField;
  	this.viewName = viewName;
  	this.listViewName = listViewName;
  	this.tableMap = tableMap;
  	this.isMultiTaskActive = isMultiTaskActive;
  },
  
  getCurrentSprintData: function(groupId, pageSize, offset, recordType) {
  	var records = [];
  	var sprint = new GlideRecordSecure(this.parentSysClassName);
  	var result = {};
  	var getFieldAsObject = function(rec, fieldName) {
  		return {
  			value: rec.getValue(fieldName),
  			display_value: rec.getDisplayValue(fieldName)
  		};
  	};

  	sprint.addQuery('sys_class_name', this.parentSysClassName);
  	sprint.addQuery('state', 2);
  	sprint.addQuery('assignment_group', groupId);
  	sprint.query();

  	if(sprint.next()) {
  		var gr = new GlideRecordSecure(this.childSysClassName);
  		gr.addQuery(this.relationField, sprint.getValue('sys_id'));
  		gr.orderBy('global_rank');
  		
  		offset = parseInt(offset);
  		pageSize = parseInt(pageSize);
  		if(JSUtil.notNil(offset) && JSUtil.notNil(pageSize))
  			gr.chooseWindow(offset, offset + pageSize);

  		gr.query();
  		result.totalCount = gr.getRowCount();

  		while(gr.next()) {
  			var record = {};
  			var assignedTo;
  			var canReadRecord = false;
  			var originalTaskObj;

  			if(this.isMultiTaskActive) {
  				if(JSUtil.notNil(gr.original_task)) {
  					originalTaskObj = gr.original_task.getRefRecord();
  					canReadRecord = originalTaskObj.canRead();

  					if(canReadRecord) {
  						record.sys_class_name = getFieldAsObject(gr, 'sys_class_name');
  						record['original_task.sys_class_name'] = getFieldAsObject(originalTaskObj, 'sys_class_name');
  						record['original_task.sys_id'] = getFieldAsObject(originalTaskObj, 'sys_id');
  						record.number = originalTaskObj.getValue('number');
  						record.sysId = gr.getValue('sys_id');
  						record.sys_id = gr.getValue('sys_id');
  						record.short_description = originalTaskObj.getValue('short_description');
  						record.state = gr.getDisplayValue('state');
  						assignedTo = gr.getValue('assigned_to');
  					}
  				}
  			} else {
  				record.sys_class_name = getFieldAsObject(gr, 'sys_class_name');
  				record.number = gr.getValue('number');
  				record.sysId = gr.getValue('sys_id');
  				record.sys_id = gr.getValue('sys_id');
  				record.short_description = gr.getDisplayValue('short_description');
  				record.state = gr.getDisplayValue('state');
  				assignedTo = gr.getValue('assigned_to');
  				canReadRecord = true;
  			}

  			if(canReadRecord) {
  				if(assignedTo)
  					record.assignedTo = new UserProfileService().generateProfile(assignedTo);

  				record.table = this.tableMap[recordType];
  				if(recordType === 'test')
  					record.query = 'task=' + record.sysId + '^ORDERBYsys_created_on&ORDERBYnumber';
  				else if( recordType === 'scrum_task' )	
  					record.query = 'story=' + record.sysId + '^ORDERBYsys_created_on&ORDERBYnumber';

  				record.view = this.viewName;
  				record.listView = this.listViewName;
  				record.pageSize = parseInt(gs.getUser().getPreference('rowcount'));

  				records.push(record);
  			}
  		}
  	}

  	result.records = records;
  	return result;
  },
  
  type: 'SprintTrackingCommonService'
};

Sys ID

89a96e4a0f01230096f9d6892f767ea5

Offical Documentation

Official Docs: