Name

global.TableChoiceUtils

Description

Utility class to get choice list of a table field.

Script

var TableChoiceUtils = Class.create();
TableChoiceUtils.prototype = {

  initialize: function(tableName) {
      this.tableName = tableName;
  },


  /*
  * This returns field choices (as a json object with (value, label) pairs) for the field name.
  */
  getChoicesForField: function(fieldName) {
      return this._getLabelsByValue(fieldName, null);
  },

  getLabelForFieldValue: function(fieldName, value) {
      return this._getLabelsByValue(fieldName, value)[value];
  },

  /*
  * Returns single label if value is not null,
  * else returns a json { 'value' : 'label'} for all possible values
  */
  _getLabelsByValue: function(fieldName, value) {

      var choicesValueToLabel = {};
      var sysChoice = new GlideSysChoice(this.tableName, fieldName);
      var choiceGr = sysChoice.getChoices();

      if (choiceGr == null)
          return null;

      while (choiceGr.next()) {
          var inactiveFlag = choiceGr.getValue('inactive');

          if (inactiveFlag == null || inactiveFlag == 0) {
              var choiceLabel = choiceGr.getValue('label');

              choicesValueToLabel[choiceGr.getValue('value')] = choiceLabel;

              if (value != null && choiceGr.getValue('value') == value)
                  break;
          }
      }

      return choicesValueToLabel;
  }
};

Sys ID

f71a33d59f0003005cf3ffa4677fcfe3

Offical Documentation

Official Docs: