Name

sn_gf.GFGoalAssignedEntityConfigSNC

Description

No description available

Script

var GFGoalAssignedEntityConfigSNC = Class.create();
GFGoalAssignedEntityConfigSNC.prototype = {
  initialize: function(assignedEntityTable, assignedEntityField) {
      this.assignedEntityTable = assignedEntityTable;
      this.assignedEntityField = assignedEntityField;
  },

  isValidConfig: function() {
      var assignedEntityConfig = {
          "isValid": true,
          "errorMsg": ""
      };
      if (!sn_gf.GFUtil.isValidTable(this.assignedEntityTable)) {
          assignedEntityConfig["isValid"] = false;
          assignedEntityConfig["errorMsg"] = gs.getMessage("The Assigned entity table is invalid.");
      } else if (global.JSUtil.notNil(this.assignedEntityField) && !sn_gf.GFUtil.isValidEnterpriseGoalField(this.assignedEntityField, false)) {
          var goalTableLabel = sn_gf.GFUtil.getTableLabel(sn_gf.GoalFrameworkConstants.GOAL_TABLE);
  		assignedEntityConfig["isValid"] = false;
          assignedEntityConfig["errorMsg"] = gs.getMessage("The Assigned entity field value does not exist on the {0} [sn_gf_goal] table.", [goalTableLabel]);
      } else if (global.JSUtil.notNil(this.assignedEntityField) && sn_gf.GFUtil.getReferencedTable(sn_gf.GoalFrameworkConstants.GOAL_TABLE, this.assignedEntityField) != this.assignedEntityTable) {
          assignedEntityConfig["isValid"] = false;
          assignedEntityConfig["errorMsg"] = gs.getMessage("The Assigned entity field value does not refer to the Assigned entity table.");
      }
      return assignedEntityConfig;
  },
  
  hasConfig: function() {
  	var goalAssignedEntityConfigGr = new GlideRecord(sn_gf.GoalFrameworkConstants.GOAL_ASSIGNED_ENTITY_CONFIG_TABLE);
  	goalAssignedEntityConfigGr.addQuery("assigned_entity_table", this.assignedEntityTable);
  	goalAssignedEntityConfigGr.query();
  	return goalAssignedEntityConfigGr.hasNext();
  },
  type: 'GFGoalAssignedEntityConfigSNC'
};

GFGoalAssignedEntityConfigSNC.doesAnotherGoalAssignedEntityConfigExist = function(table, currentGoalAssignedEntityConfigId) {
  var goalAssignedEntityConfigGr = new GlideRecord(sn_gf.GoalFrameworkConstants.GOAL_ASSIGNED_ENTITY_CONFIG_TABLE);
  goalAssignedEntityConfigGr.addQuery("assigned_entity_table", table);
  goalAssignedEntityConfigGr.addQuery("sys_id", "!=", currentGoalAssignedEntityConfigId);
  goalAssignedEntityConfigGr.query();
  return goalAssignedEntityConfigGr.hasNext();
};

GFGoalAssignedEntityConfigSNC.getAssignedEntityTableFromField = function(goalField) {
  if(gs.nil(goalField))
  	return '';
  var goalAssignedEntityConfigGr = new GlideRecord(sn_gf.GoalFrameworkConstants.GOAL_ASSIGNED_ENTITY_CONFIG_TABLE);
  goalAssignedEntityConfigGr.addQuery("assigned_entity_field", goalField);
  goalAssignedEntityConfigGr.query();
  if(goalAssignedEntityConfigGr.next()) {
  	return goalAssignedEntityConfigGr.getValue('assigned_entity_table');
  }
  return '';
};

GFGoalAssignedEntityConfigSNC.seedAssignedEntityConfig = function(table, field) {
  var gaecGR = new GlideRecord(sn_gf.GoalFrameworkConstants.GOAL_ASSIGNED_ENTITY_CONFIG_TABLE);
  gaecGR.addQuery("assigned_entity_table", table);
  gaecGR.query();
  if (gaecGR.next()) {
      return null;
  } else {
      gaecGR.initialize();
      gaecGR.setValue("assigned_entity_table", table);
      gaecGR.setValue("assigned_entity_field", field);
      return gaecGR.insert();
  }
};

Sys ID

476b8fd577031110c60529354f5a99a9

Offical Documentation

Official Docs: