Name

global.DiscoveryGlideListUtils

Description

Utility to handle glide_list elements of GlideRecord

Script

var DiscoveryGlideListUtils = Class.create();

DiscoveryGlideListUtils.removeMidFromListInCred = function(midSysId) {
  DiscoveryGlideListUtils.removeValueFromList("discovery_credentials", "mid_list", midSysId, false);
};

DiscoveryGlideListUtils.removeValueFromList = function(tableName, fieldName, value, shouldTriggerBR) {
  // GlideList values are just comma separated sys_ids and the value
  // we want to remove may be at the beginning, in between or at the end.
  // The following pattern will handle the comma appropriately
  var pattern = new RegExp("," + value + "|" + value + ",|" + value);

  var rec = new GlideRecord(tableName);
  rec.addQuery(fieldName, "CONTAINS", value);
  rec.query();
  while (rec.next()) {
      gs.log("removing " + value + " from " + tableName + "." + fieldName + " for record sys_id=" + rec.getUniqueValue(), "DiscoveryGlideListUtils");
      var valueList = rec.getValue(fieldName);
      valueList = valueList.replace(pattern, "");
      rec.setValue(fieldName, valueList);
      rec.setWorkflow(shouldTriggerBR);
      rec.update();
  }
};

DiscoveryGlideListUtils.prototype = {
  initialize: function() {},

  type: 'DiscoveryGlideListUtils'
};

Sys ID

fc89edae0f0010108e23148ac4767e6e

Offical Documentation

Official Docs: