Name

global.CascadeEraser

Description

No description available

Script

var CascadeEraser = Class.create();
CascadeEraser.prototype = {
  initialize: function() {
  },
  
  deleteRecordByFieldNameAndFieldId : function(fieldName, recordId, tableName)	{
  	var gr = new GlideRecord(tableName);
  	if (!gr.isValid() || !gr.isValidField(fieldName))
  		return;

  	gr.addQuery(fieldName, recordId);
  	gr.query();
  	while(gr.next()) {
  		gr.deleteRecord();
  	}
  },
  
  removeDependentValueFromListField : function(fieldName, fieldValue, tableName) {
  	var gr = new GlideRecord(tableName);
  	if (!gr.isValid() || !gr.isValidField(fieldName))
  		return;

  	gr.addQuery(fieldName, 'CONTAINS', fieldValue);
  	gr.query();
  	while (gr.next()) {
  		var oldFieldValue = gr.getValue(fieldName);
  		var newFieldValue = oldFieldValue.replace(fieldValue, '');
  		
  		gr.setValue(fieldName, newFieldValue);
  		gr.update();
  	}
  },
  
  deleteByParentId : function(parentId, tableName) {
  	this.deleteRecordByFieldNameAndFieldId('parent', parentId, tableName);
  },
  
  deleteBySysId : function(sysId, tableName) {
  	this.deleteRecordByFieldNameAndFieldId('sys_id', sysId, tableName);
  },

  
  
  type: 'CascadeEraser'
};

Sys ID

f229bb9f73121300ed095a7b1bf6a756

Offical Documentation

Official Docs: