Name

global.RollupStructureLoader

Description

No description available

Script

var RollupStructureLoader = Class.create();
RollupStructureLoader.prototype = {
  initialize: function() {
  },

  loadStructure: function(childRecord, rollupColumn, parentNavigator, parentSysId) {        
      var rollupStructure = {};
      var childTable = childRecord.getTableName();
      if ( childTable.match(/project_task$/) || childTable.match(/project$/) ) 
          childTable = 'planned_task';        
      var childSysId; // used for delete operation
      if(childRecord.operation() == "delete") {
          //gs.info("Delete operation on Task: " + childSysId)
          childSysId = childRecord.getValue("sys_id");
      }

      var gr = this.getTaskChildren(childTable, parentNavigator, parentSysId, childSysId);
      while(gr.next()) {
          rollupStructure[gr.getValue("sys_id")] = {};
          var valueMap = rollupStructure[gr.getValue("sys_id")];
          valueMap[rollupColumn] = gr.getValue(rollupColumn);
          //gs.info("Record Value -->" + gr.getValue("sys_id") + ": {" + rollupColumn + ": " + gr.getValue(rollupColumn) + " }");
      }
      return rollupStructure;
  },

  getTaskChildren: function(tableName, parentNavigator, parentSysId, ignoreSysId) {
      var gr = new GlideRecord(tableName);
      gr.addQuery(parentNavigator, parentSysId);
      gr.addNullQuery("orig_sys_id");
      if(ignoreSysId)
          gr.addQuery("sys_id", "!=", ignoreSysId);
      gr.query();
      return gr;
  },

  type: 'RollupStructureLoader'
};

Sys ID

9344e1219f230200598a5bb0657fcf8b

Offical Documentation

Official Docs: