Name

sn_grc.RelatedListIndicatorTemplateFilter

Description

Implements extension point global.RelatedListItemCandidateFilter

Script

var RelatedListIndicatorTemplateFilter = Class.create();
RelatedListIndicatorTemplateFilter.prototype = {
  initialize: function(tableName, parentFieldName, parentRecordSysId, referencedFieldName) {
      this.tableName = tableName;
      this.parentFieldName = parentFieldName;
      this.parentRecordSysId = parentRecordSysId;
      this.referencedFieldName = referencedFieldName;
  },
  getFilterQuery: function() {
      var m2m = new GlideRecord(this.tableName);
      m2m.addQuery(this.parentFieldName, this.parentRecordSysId);
      m2m.query();
      var existingIndicatorTemplates = [];
      while (m2m.next()) {
          existingIndicatorTemplates.push(m2m.getValue(this.referencedFieldName));
      }
      var gr = new GlideRecord("sn_grc_content");
      gr.get(this.parentRecordSysId);

      var query = "";
      switch (gr.getValue("sys_class_name")) {
          case "sn_risk_definition":
              query = "category=Risk Indicator Template^";
              break;
          default:
              query = "category=Compliance Indicator Template^";
      }
      query += "active=true^sys_idNOT IN" + existingIndicatorTemplates;
      return query;
  },

  handles: function(thing) {
      return thing == "INDICATOR_TEMPLATE_FILTER";
  },

  type: 'RelatedListIndicatorTemplateFilter'
};

Sys ID

c00e9ba2531620103b1cddeeff7b12f5

Offical Documentation

Official Docs: