Name
global.AppCanBeTemplate
Description
Checks whether a record is a sys_app that can be made into an app template
Script
var AppCanBeTemplate = Class.create();
AppCanBeTemplate.prototype = {
check: function(app_id) {
//Check if the app includes any tables that are in the sys_metadata hierarchy
var tables = new GlideRecord('sys_db_object');
tables.query('sys_scope', app_id);
while (tables.next()) {
var tableName = tables.getValue('name');
if (GlideDBObjectManager.get().isMetadataExtension(tableName)) {
return false;
}
}
//Check if the app includes any template metadata
var metadata = new GlideAggregate('sys_metadata');
metadata.addAggregate('COUNT');
metadata.addQuery('sys_scope', app_id);
metadata.addQuery('sys_class_name',
'IN', 'sys_app_template,sys_app_scan_payload,sys_app_scan_variable');
metadata.query();
var count = 0;
if (metadata.next()) {
count = metadata.getAggregate('COUNT');
}
return count == 0;
},
type: 'AppCanBeTemplate'
};
Sys ID
2545fcc55b33101083f30f216581c7e9