Name

sn_devstudio.FileTypeExtensionInstanceHandler

Description

No description available

Script

var FileTypeExtensionInstanceHandler = function(appId, appExplorerStructure) {
  
  function loadFiles(navKey) {
  	var gr = new GlideRecord(navKey);
  	if(appId) {
  		gr.addQuery('sys_scope', appId);
  		gr.orderBy('sys_name');
  		gr.query();
  	}
  	
  	var files = [];
  	while (gr.next()) {
  		var file = fileForRecord(gr);
  		files.push(file);
  	}
  	
  	return files;
  }
  
  function filesForKey(navigationKey) {
  	return loadFiles(navigationKey);
  }
  	
  function fileForRecord(record) {
  	var sysId = record.getUniqueValue();
  	
  	var name = record.getValue('sys_name');
  	if (!name || name.trim() === '')
  		name = sysId;
  	
  	var instanceName = getInstanceName(record);
  	if (instanceName)
  		name += " [" + instanceName + "]";
  	
  	var recordType = record.getValue('sys_class_name');
  	
  	return FileTypeFileBuilder.newFile()
  		.withId(recordType + '.' + sysId)
  		.withName(name)
  		.withSysId(sysId)
  		.build();
  }
  
  function getInstanceName(record) {
  	var fieldMap = {
  		'sys_extension_instance' : 'script_include',
  		'sys_script_include' : 'name',
  		'sys_client_extension_instance' : 'ui_script',
  		'sys_ui_script' : 'script_name',
  		'sys_ui_extension_instance' : 'ui_macro',
  		'sys_ui_macro' : 'name'
  	}
  	var implName = '';
  	
  	var recordClass = record.getRecordClassName();
  	var implClassField = fieldMap[recordClass];
  	if (!record.isValidField(implClassField))
  		return implName;
  	
  	if (!record.getValue(implClassField))
  		return implName;
  	
  	var referencedRecord = record[implClassField].getRefRecord();
  	if (!referencedRecord || !referencedRecord.isValidRecord())
  		return implName;
  	
  	var implementationClassName = referencedRecord.getRecordClassName();
  	if(!fieldMap[implementationClassName])
  		return implName;

  	var implementationNameField = fieldMap[implementationClassName];
  	if (!referencedRecord.isValidField(implementationNameField))
  		return implName;
  	
  	return referencedRecord.getValue(implementationNameField);
  }
  
  return {
  	filesForKey : filesForKey
  };
  
};
  						  

Sys ID

741d7bebb3453300d66e85d516a8dca5

Offical Documentation

Official Docs: