Name
sn_gf.GFUtil
Description
No description available
Script
var GFUtil = Class.create();
GFUtil.prototype = {
initialize: function() {},
type: 'GFUtil'
};
GFUtil.checkCircularLoop = function(childId, parentId, tableName, parentField) {
if (childId == parentId)
return true;
if (!parentField)
parentField = "parent_goal";
var childEntities = new GlideRecord(tableName);
childEntities.addQuery(parentField, childId);
childEntities.query();
while (childEntities.next()) {
if (GFUtil.checkCircularLoop(childEntities.getUniqueValue(), parentId, tableName, parentField))
return true;
}
return false;
};
GFUtil.checkDuplicateWorkItem = function(glideRecord) {
if (!glideRecord.isValid())
return false;
var golaRelationshipGr = new GlideRecord(GoalFrameworkConstants.GOAL_RELATIONSHIP_TABLE);
if (golaRelationshipGr.isValid()) {
golaRelationshipGr.addQuery('goal', glideRecord.getValue('goal'));
golaRelationshipGr.addQuery('entity_id', glideRecord.getValue('entity_id'));
golaRelationshipGr.query();
if (golaRelationshipGr.hasNext())
return true;
}
return false;
};
GFUtil.getGoalRecordCount = function() {
var goalGr = new GlideRecord(GoalFrameworkConstants.GOAL_CORE_TABLE);
if (goalGr.isValid()) {
goalGr.query();
return goalGr.getRowCount();
}
return 0;
};
GFUtil.getStrategyRecordCount = function() {
var strategyGr = new GlideRecord(GoalFrameworkConstants.STRATEGY_TABLE);
if (strategyGr.isValid()) {
strategyGr.query();
return strategyGr.getRowCount();
}
return 0;
};
GFUtil.isInstanceOfCoreGoal = function(goalTableName) {
var coreGoalHierarchy = new GlideTableHierarchy(sn_gf.GoalFrameworkConstants.GOAL_CORE_TABLE);
var coreGoalHierarchyTables = coreGoalHierarchy.getHierarchy();
return (coreGoalHierarchyTables.indexOf(goalTableName) > -1);
};
GFUtil.isInstanceOf = function(table,parentTable) {
var glideTableHierarchy = new GlideTableHierarchy(table);
var tableHierarchy = glideTableHierarchy.getHierarchy();
return (tableHierarchy.indexOf(parentTable) > -1);
};
GFUtil.deleteRecord = function(tableName, sysId) {
if(tableName === "goal")
tableName = "sn_gf_core_goal";
else if(tableName === "target")
tableName = "sn_gf_goal_target";
else
return false;
var gr = new GlideRecord(tableName);
gr.get(sysId);
var recordDeleted = gr.deleteRecord();
return recordDeleted;
};
GFUtil.updateRecord = function(tableName, sysId, fields) {
var gr = new GlideRecordSecure(tableName);
if (gr.get(sysId)) {
var field = fields.split("=");
if (field[0] === "actual_value" && !field[1] && tableName === "sn_gf_goal_target") {
gr.setValue("percent_complete", "");
gr.setValue(field[0], field[1]);
} else if (field[0] === "contributors") {
gr.setValue(field[0], field[1].split(","));
} else {
gr.setValue(field[0], field[1]);
}
var recordUpdated = gr.update();
return recordUpdated;
} else
return false;
};
GFUtil.updateMultipleRecords = function(tableName, sysIds, fieldMap) {
var gr = new GlideRecordSecure(tableName);
if(!gr.isValid())
return;
gr.addQuery('sys_id', 'IN', sysIds);
gr.query();
var fields = Object.keys(fieldMap);
for(var i = 0; i < fields.length; i++) {
if(gr.isValidField(fields[i])) {
gr.setValue(fields[i], fieldMap[fields[i]]);
}
}
gr.updateMultiple();
};
GFUtil.getTableLabel= function(tableName) {
var gr = new GlideRecord(tableName);
return GlideStringUtil.escapeHTML(gr.getClassDisplayValue());
};
GFUtil.getTablePluralLabel= function(tableName) {
var gr = new GlideRecord(tableName);
return GlideStringUtil.escapeHTML(gr.getED().getPlural());
};
GFUtil.getTableHierarchy = function(tableName, tableHierarchyObject) {
tableHierarchyObject[tableName] = true;
var tableExtensions = new GlideTableHierarchy(tableName).getTableExtensions();
for (var i = 0; i < tableExtensions.length; i++) {
GFUtil.getTableHierarchy(tableExtensions[i], tableHierarchyObject);
}
};
GFUtil.isValidTable = function(table) {
if(gs.nil(table))
return false;
var gr = new GlideRecord(table);
return gr.isValid();
};
GFUtil.isValidField = function(table, field) {
if(gs.nil(table) || gs.nil(field))
return false;
var gr = new GlideRecord(table);
return gr.isValid() && gr.isValidField(field);
};
GFUtil.isValidEnterpriseGoalField = function(field, considerCoreGoalFields) {
var isValidEnterpriseGoalField = GFUtil.isValidField(sn_gf.GoalFrameworkConstants.GOAL_TABLE, field);
if(!considerCoreGoalFields)
isValidEnterpriseGoalField = isValidEnterpriseGoalField && !GFUtil.isValidField(sn_gf.GoalFrameworkConstants.GOAL_CORE_TABLE, field);;
return isValidEnterpriseGoalField;
};
GFUtil.getReferencedTable = function(table, field) {
var dictionaryGr = new GlideRecord("sys_dictionary");
dictionaryGr.addQuery("name", table);
dictionaryGr.addQuery("element", field);
dictionaryGr.query();
if(dictionaryGr.next())
return dictionaryGr.getValue("reference");
return "";
};
Sys ID
d6cba682c351b010242836046d40dd66