Name
sn_ppt_export.ExportToPPTMetaData
Description
No description available
Script
var ExportToPPTMetaData = Class.create();
ExportToPPTMetaData.prototype = {
initialize: function() {
},
getDataTypesSupported: function() {
var dataTypesSupported = GeneratePPTConstants.DEFAULT_DATA_TYPES;
var powerpointComponentsGr = new GlideRecord(GeneratePPTConstants.POWERPOINT_COMPONENTS_TABLE);
powerpointComponentsGr.query();
while(powerpointComponentsGr.next()){
dataTypesSupported.push({
value: powerpointComponentsGr.getValue('sys_id'),
name: powerpointComponentsGr.getDisplayValue('name')
});
}
return dataTypesSupported;
},
getReportObjects: function() {
var reportObjectsArr = [];
var gr = new GlideRecordSecure(GeneratePPTConstants.REPORT_TYPE_TABLENAME);
gr.query();
while(gr.next()) {
var reportObject = {};
reportObject['sys_id'] = gr.getValue('sys_id');
reportObject['report_name'] = gr.getValue('name');
reportObject['main_table'] = gr.getValue('main_table');
reportObjectsArr.push(reportObject);
}
return reportObjectsArr;
},
getReportTypeHirearchy: function(reportTypeSysId) {
var reportTypeHirearchy = {};
var gr = new GlideRecordSecure(GeneratePPTConstants.REPORT_TYPE_TABLENAME);
gr.get(reportTypeSysId.toString());
var mainTable = gr.getValue('main_table');
var mainTableDisplayValue = this._getDisplayValueOfTable(mainTable);
reportTypeHirearchy.main_table = {};
reportTypeHirearchy.scriptedElements =[];
reportTypeHirearchy.main_table.name = mainTable;
reportTypeHirearchy.main_table.display_name = mainTableDisplayValue;
reportTypeHirearchy.main_table.related_tables =[];
reportTypeHirearchy.main_table.columns = this.getColumnsForTable(mainTable).columns;
reportTypeHirearchy.main_table.reference_columns = this.getColumnsForTable(mainTable).referenceColumnObject;
var relatedTableGr = new GlideRecordSecure(GeneratePPTConstants.RELATED_TYPE_TABLENAME);
relatedTableGr.addQuery('report_type',reportTypeSysId);
relatedTableGr.addNullQuery('parent_table');
relatedTableGr.query();
while(relatedTableGr.next()){
reportTypeHirearchy.main_table.related_tables.push(this.createRelatedTableObject(relatedTableGr));
}
var scriptedElementGr = new GlideRecord('sn_ppt_export_ppt_scripted_element');
scriptedElementGr.addQuery('report_type',reportTypeSysId);
scriptedElementGr.query();
while(scriptedElementGr.next()) {
reportTypeHirearchy.scriptedElements.push(this.createScriptedElementsObject(scriptedElementGr));
}
return reportTypeHirearchy;
},
createScriptedElementsObject: function(scriptedElementGr) {
var scriptedElementObject = {};
scriptedElementObject.name = scriptedElementGr.getDisplayValue('name');
scriptedElementObject.sys_id = scriptedElementGr.getValue('sys_id');
scriptedElementObject.type = scriptedElementGr.getDisplayValue('type');
scriptedElementObject.type_sys_id = scriptedElementGr.getValue('type');
return scriptedElementObject;
},
createRelatedTableObject: function(relatedTableGr) {
var relatedTable = relatedTableGr.getValue('table');
var relatedTableDisplayValue = this._getDisplayValueOfTable(relatedTable);
var relatedtableObject = {};
relatedtableObject.name = relatedTable;
relatedtableObject.display_name = relatedTableDisplayValue;
relatedtableObject.columns = this.getColumnsForTable(relatedTable).columns;
relatedtableObject.reference_columns = this.getColumnsForTable(relatedTable).referenceColumnObject;
relatedtableObject.related_tables = [];
var rtGr = new GlideRecordSecure(GeneratePPTConstants.RELATED_TYPE_TABLENAME);
rtGr.addQuery('parent_table',relatedTableGr.getValue('sys_id'));
rtGr.query();
while(rtGr.next()){
relatedtableObject.related_tables.push(this.createRelatedTableObject(rtGr));
}
return relatedtableObject;
},
getColumnsForTable: function(table) {
var tables = new GlideTableHierarchy(table).getTables().toString();
var columns =[];
var referenceColumnObject = {};
var grDictionary = new GlideRecord('sys_dictionary');
grDictionary.addQuery('name','IN',tables);
grDictionary.query();
while(grDictionary.next()){
var internalType = grDictionary.getValue('internal_type');
if(internalType != 'collection') {
if(internalType == 'reference') {
columns.push({"id": grDictionary.getValue('element'), "text": grDictionary.getValue('column_label')});
referenceColumnObject[grDictionary.getValue('element')] = grDictionary.getValue('reference');
} else if(internalType == 'GUID') {
if(grDictionary.getValue('name') == table)//skipping sys_id field of extended table
columns.push({"id": grDictionary.getValue('element'), "text": grDictionary.getValue('column_label')});
} else
columns.push({"id": grDictionary.getValue('element'), "text": grDictionary.getValue('column_label')});
}
}
return {'columns': columns, 'referenceColumnObject': referenceColumnObject};
},
getColumnsForReferenceTable: function(table) {
var tables = new GlideTableHierarchy(table).getTables().toString();
var columns =[];
var referenceColumnObject = {};
var grDictionary = new GlideRecord('sys_dictionary');
grDictionary.addQuery('name','IN',tables);
grDictionary.query();
while(grDictionary.next()) {
var internalType = grDictionary.getValue('internal_type');
if(internalType != 'collection') {
if(internalType == 'GUID') {
if(grDictionary.getValue('name') == table)//skipping sys_id field of extended table
columns.push({"id": grDictionary.getValue('element'), "text": grDictionary.getValue('column_label')});
} else
columns.push({"id": grDictionary.getValue('element'), "text": grDictionary.getValue('column_label')});
}
}
return columns;
},
getMaxNumberArray: function() {
var actualLimit = GeneratePPTConstants.MAX_NUMBER_ARRAY_LIMIT;
var maxNumberArray = [];
for(var i=1; i<=actualLimit; i++) {
var keyValueObj = {};
keyValueObj["key"] = i.toString();
keyValueObj["value"] = i;
maxNumberArray.push(keyValueObj);
}
return maxNumberArray;
},
_getDisplayValueOfTable: function(tableName) {
var displayName = '';
var dbo = new GlideRecord('sys_db_object');
dbo.addQuery('name', tableName);
dbo.query();
if(dbo.next()){
displayName = dbo.getValue('label');
}
return displayName;
},
type: 'ExportToPPTMetaData'
};
Sys ID
9f675d7477120110c974206acd5a9962