Name

sn_table_builder.TBFieldValidationAPI

Description

Used for server-side validation. of table fields

Script

var TBFieldValidationAPI = Class.create();
TBFieldValidationAPI.prototype = {
  initialize: function(table, payload) {
      this.table = table;
      this.payload = payload;
  },

  build: function() {
      return this._validate();
  },

  _validate: function() {
      var validationInput = this.payload;
      var tableHeirarchy = TBQueries.getTables(this.table);
      if (validationInput['element']) {
          return this._validateColumnName(tableHeirarchy, validationInput);
      }
      return {
          'isValid': true,
          'message': ''
      };
  },

  _validateColumnName: function(tableHeirarchy, validationInput) {
      var result = {};
      var columnName = validationInput['element'];
      var recordId = validationInput['sysId'];
      var count;
      var gr = new GlideAggregate(TBConstants.SYS_CLASS_DICTIONARY);
      gr.addAggregate('COUNT');
      gr.addQuery('name', 'IN', tableHeirarchy);
      gr.addQuery('element', columnName);
      gr.addQuery('sys_id', '!=', recordId);
      gr.query();

      if (gr.next())
          count = gr.getAggregate('COUNT');
      if (count == 0 || count == '0') {
          result['isValid'] = true;
          result['message'] = '';
      } else {
          result['isValid'] = false;
          result['message'] = gs.getMessage('Column value already exists in this table or a table extended from it');

      }
      return result;
  },

  type: 'TBFieldValidationAPI'
};

Sys ID

4e371ab6c743101031a006d427c2607b

Offical Documentation

Official Docs: