Name

global.PDDiagramSwimLaneRepository

Description

No description available

Script

var PDDiagramSwimLaneRepository = Class.create();
PDDiagramSwimLaneRepository.prototype = {
  initialize: function() {},
  type: 'PDDiagramSwimLaneRepository',
  
  insertSwimLane: function(fields) {
  	fields = fields || {};
  	var sysId = fields.sysId;
  	var processDefinition = fields.processDefinition;
  	var label = fields.label;
  	var order = fields.order;
  	var active = fields.active;
  	var image = fields.image;
  	
  	if (!sysId || !processDefinition || !label || !order)
  		throw (gs.getMessage(
  			'Missing one or more of required fields: sysId, processDefinition, label, order') );
  	
  	var grProcessDefinition = new GlideRecord(PDDiagramConstants.TABLES.PD_PROCESS_DEFINITION);
  	if (!grProcessDefinition.get(processDefinition))
  		throw (gs.getMessage('Unable to find Process Definition with id: {0}', processDefinition));
  	
  	var FIELDS = PDDiagramConstants.FIELDS;
  	var gr = new GlideRecord(PDDiagramConstants.TABLES.PD_SWIMLANE);
  	gr.setNewGuidValue(sysId);
  	gr.setValue(FIELDS.PROCESS_DEFINITION, processDefinition);
  	gr.setValue(FIELDS.LABEL, label);
  	gr.setValue(FIELDS.ORDER, order);
  	active !== undefined && gr.setValue(FIELDS.ACTIVE, active);
  	image !== undefined && gr.setValue(FIELDS.IMAGE, image);
  	if (!gr.insert())
  		throw gs.getMessage(
  				'Unable to insert swim lane. {0}', gr.getLastErrorMessage());
  	return PDDiagramUtils.grToObject(gr, this.RECORD_FIELDS);
  },
  
  updateSwimLane: function(fields) {
  	fields = fields || {};
  	var sysId = fields.sysId;
  	var processDefinition = fields.processDefinition;
  	var label = fields.label;
  	var order = fields.order;
  	var active = fields.active;
  	var image = fields.image;

  	if (!sysId)
  		throw (gs.getMessage('Missing required field: sysId'));

  	var gr = new GlideRecord(PDDiagramConstants.TABLES.PD_SWIMLANE);
  	if (!gr.get(sysId))
  		throw (gs.getMessage('Unable to find swim lane with id: {0}', sysId));
  	
  	var FIELDS = PDDiagramConstants.FIELDS;
  	processDefinition !== undefined && gr.setValue(FIELDS.PROCESS_DEFINITION, processDefinition);
  	label !== undefined && gr.setValue(FIELDS.LABEL, label);
  	order !== undefined && gr.setValue(FIELDS.ORDER, order);
  	active !== undefined && gr.setValue(FIELDS.ACTIVE, active);
  	image !== undefined && gr.setValue(FIELDS.IMAGE, image);
  	if (!gr.update())
  		throw gs.getMessage(
  				'Unable to update swim lane. {0}', gr.getLastErrorMessage());
  	return PDDiagramUtils.grToObject(gr, this.RECORD_FIELDS);
  },
  
  deleteSwimLanes: function(swimLaneIdsStr) {
  	if (!(swimLaneIdsStr || '').length)
  		throw (gs.getMessage('No swim lane ids provided for deletion'));

  	var gr = new GlideRecord(PDDiagramConstants.TABLES.PD_SWIMLANE);
  	gr.addQuery(PDDiagramConstants.FIELDS.SYS_ID, 'IN', swimLaneIdsStr);
  	gr.query();
  	gr.deleteMultiple();
  },

  RECORD_FIELDS: [
  	{
          name: PDDiagramConstants.FIELDS.SYS_ID,
  		hasDisplayValue:true
      },
      {
          name: PDDiagramConstants.FIELDS.PROCESS_DEFINITION,
  		hasDisplayValue:true
      },
      {
          name: PDDiagramConstants.FIELDS.LABEL,
  		hasDisplayValue:true
      },
      {
          name: PDDiagramConstants.FIELDS.ORDER,
  		hasDisplayValue:true
      },
  	{
          name: PDDiagramConstants.FIELDS.ACTIVE,
  		hasDisplayValue:true
      },
  	{
          name: PDDiagramConstants.FIELDS.IMAGE,
  		hasDisplayValue:true
      }
  ]
};

Sys ID

daae906ac7034110bfbaf89f51c2603c

Offical Documentation

Official Docs: