Name
sn_mab_api.MobileAppBuilderDAO
Description
No description available
Script
var MobileAppBuilderDAO = Class.create();
MobileAppBuilderDAO.prototype = {
initialize: function(table) {
this.table = table;
this.tableDAO = new sn_glide_ms_api.MobileAppBuilderDAO(table);
},
type: 'MobileAppBuilderDAO',
getRecord: function(sysId, returnFields) {
var grs = this.tableDAO.getRecord(sysId);
return this.getRecordMap(grs, returnFields);
},
getRecordsByEncodedQuery: function(encodedQuery, returnFields, limit, offset) {
var records = [];
var grs = this.tableDAO.getRecordsByEncodedQuery(encodedQuery, limit, offset);
while (grs.next())
records.push(this.getRecordMap(grs, returnFields));
return records;
},
saveRecord: function(record) {
var grs = this.tableDAO.saveRecord(record);
return grs.getUniqueValue();
},
saveAndReturnRecord: function(record, returnFields) {
var grs = this.tableDAO.saveRecord(record);
return this.getRecordMap(grs, returnFields);
},
deleteRecord: function(sysId) {
return this.tableDAO.deleteRecord(sysId);
},
getRecordMap: function(grs, returnFields) {
if (grs == null)
new ErrorHandler().throwInternalError('Cannot build record map for null GlideRecordSecure object');
else if (!grs.isValidRecord())
return null;
var values = {};
// We have to prime sys_scope display label. This should be removed after DEF0235065 is resolved
grs.getDisplayValue('sys_scope');
if (returnFields == null) {
grs.getElements().forEach(function(element) {
values[element.getName()] = this.getValuesForElement(grs, element.getName());
}.bind(this));
} else {
returnFields.forEach(function(field) {
var element = grs.getElement(field);
if (element != null)
values[element.getName()] = this.getValuesForElement(grs, element.getName());
}.bind(this));
}
return values;
},
getValuesForElement: function(grs, elementName) {
if (grs.getValue(elementName) == null)
return null;
var element = grs.getElement(elementName);
var elementValues = {};
elementValues.value = grs.getValue(elementName);
elementValues.type = element.getED().getInternalType();
if (elementValues.type == 'reference')
elementValues.referenceTable = element.getRefRecord().getTableName();
if (elementValues.type == 'glide_list')
elementValues.referenceTable = element.getED().getReference();
if (elementValues.type == 'table_name') {
if (gs.tableExists(elementValues.value)) {
var tableGRS = new GlideRecordSecure(elementValues.value);
elementValues.displayValue = tableGRS.getClassDisplayValue();
} else {
elementValues.displayValue = elementValues.value;
}
} else
elementValues.displayValue = element.getDisplayValue();
return elementValues;
}
};
MobileAppBuilderDAO.isTableAccessible = function(tableName) {
return sn_glide_ms_api.MobileAppBuilderDAO.isTableAccessible(tableName);
};
Sys ID
77b96a5ac7212010100f2f3bf4c26041