var result = '';
result += 'SysId,Update Name,Class,Out of Box File,Priority System File,Customized,Updates,Created By,Created On,Updated By,Updated On\n';
var metaGR = new GlideRecord('sys_metadata');
metaGR.addEncodedQuery('sys_scopeSTARTSWITHhuman^sys_class_name!=sys_restricted_caller_access^ORsys_class_name=NULL^sys_class_name!=sys_metadata_delete^ORsys_class_name=NULL');
metaGR.query();
while(metaGR.next()){
var sysId = metaGR.getUniqueValue();
var displayName = metaGR.sys_update_name.getDisplayValue();
var className = metaGR.sys_class_name.getDisplayValue();
var createdBy = metaGR.sys_created_by.getDisplayValue();
var updatedBy = metaGR.sys_updated_by.getDisplayValue();
var createdOn = metaGR.sys_created_on.getDisplayValue();
var updatedOn = metaGR.sys_updated_on.getDisplayValue();
var systemFile = getVolatility(metaGR.sys_update_name.getDisplayValue()) ? 1 : 0;
var oobFile = (['admin','system','guest'].indexOf(createdBy) > -1) || (createdBy.indexOf('@@')) || (createdBy.indexOf('@snc')) > -1 ? 1 : 0; //not 100% accurate but gives an idea
var updates = metaGR.sys_mod_count.getDisplayValue();
var application = metaGR.sys_scope.getDisplayValue();
var customized = (SncAppFiles.hasCustomerUpdate(metaGR) && oobFile == 1) ? 1 : 0; //SncAppFiles gives a lot of false postives
var row = [sysId,displayName,className,oobFile,systemFile,customized,updates,createdBy,createdOn,updatedBy,updatedOn]
result += row.join(',');
result += '\n';
}
//retrieves the priority from the sys_metadata_volatility table
function getVolatility(updateName){
var volGR = new GlideRecord('sys_metadata_volatility');
volGR.addQuery('sys_update_name',updateName);
volGR.setLimit(1);
volGR.query();
if(volGR.next()){
return volGR.volatility_level.getDisplayValue();
}
else {
return '';
}
}
//write the results to a knowledge article
var attachment = new GlideSysAttachment();
var rec = new GlideRecord('kb_knowledge');
rec.get('ad5cefe687466a90f7efc8460cbb3529');
var fileName = 'applicationfiles.csv';
var contentType = 'text/plain';
var content = result;
var agr = attachment.write(rec, fileName, contentType, content);