Name
global.SysRefList
Description
Finds the reference list view for a table. 1) Search for table, sys_ref_list view 2) Search parents of table, sys_ref_list view 3) Construct the default sys_ref_list view (display field for the table)
Script
gs.include("PrototypeServer");
gs.include("AbstractList");
var SysRefList = Class.create();
SysRefList.prototype = Object.extendsObject(AbstractList, {
SYS_REF_LIST : 'sys_ref_list',
get : function() {
this.targetTable = this.tableName;
var answer = this.getRefList();
if (answer != null)
return answer;
answer = this.checkParents();
if (answer != null)
return answer;
return this.defaultRefList();
},
getRefList : function() {
var answer = new GlideRecord(this.SYS_UI_LIST);
answer.addQuery(this.NAME, this.targetTable);
answer.addQuery(this.VIEW, this.view);
answer.addNullQuery(this.SYS_USER);
//this will add sys_domain to the GlideRecord and do a queryNoDomain()
this.domainQuery(answer, this.domainID);
if (!answer.next())
return null;
return answer.sys_id.toString();
},
checkParents : function() {
var list = this.getParents();
if (list == null)
return null;
for (var i = 0; i < list.length; i++) {
this.targetTable = list[i];
var answer = this.getRefList();
if (answer != null)
return answer;
}
return null;
},
defaultRefList : function() {
var td = GlideTableDescriptor.get(this.tableName);
var dn = td.getDisplayName();
var list = new GlideSysList(this.tableName);
list.setTablePackageID();
list.setTableScopeID();
list.setViewName(this.SYS_REF_LIST);
var fields = new Packages.java.util.ArrayList();
fields.add(dn);
list.InsertListElements(fields);
this.targetTable = this.tableName;
return this.getRefList();
},
z : function() {
}
});
Sys ID
7de297a8c0a8016400d5b1cc79ee4f56