All fields of table not present in sys_dictionary

qusai
Kilo Contributor

I have a doubt that in my sys_db_object table when i go to incident table and see the fields there are around 100 fields for the table.But in sys_dictionary if i search for incident table there are only 25 fields so why do sys_dictionary does not contain all the fields of the particular table ...If not how can i see all fields in sys_dictionary table as we want to use that table to view fields in our ui page slushbucket

1 ACCEPTED SOLUTION

Below is the complete solution

Use reference qualifier as javascript: 'sys_idIN' + new ScriptInclude().returnFields(tableName);

Use the below script include

returnFields : function(tableName){

var fieldArray = [];
var extendsTable = "nothing";


fieldArray.push(getRecords(tableName));
var extendsTable = getParentTable(tableName);
while (extendsTable != "none"){
fieldArray.push(getRecords(extendsTable));
extendsTable = getParentTable(extendsTable );
}
return fieldArray;
},

getRecords: function (tableName){
var dictfields = new GlideRecord('sys_dictionary');

                           dictfields.addQuery('name',tableName);
  
                           dictfields.query();

                    while(dictfields.next())
                    {
                        var obj={};
                        var wel=dictfields.getDisplayValue('column_name');
                        var text=dictfields.getDisplayValue('column_label') ;
                        obj.value = wel;
                        obj.text=text;
                        arr_dict_fields.push(obj); 
return arr_dict_fields;
   
   
                    },


getParentTable: function(tableName){
var dbObject = new GlideRecord('sys_db_object');
dbObject.addQuery('name',tableName);
dbObject.addEncodedQuery('super_classISNOTEMPTY');

dbObject.query();

if (dbObject.next()){

return dbObject.super_class.name.toString();
}
else{
return "none";
},

View solution in original post

17 REPLIES 17

Below is the complete solution

Use reference qualifier as javascript: 'sys_idIN' + new ScriptInclude().returnFields(tableName);

Use the below script include

returnFields : function(tableName){

var fieldArray = [];
var extendsTable = "nothing";


fieldArray.push(getRecords(tableName));
var extendsTable = getParentTable(tableName);
while (extendsTable != "none"){
fieldArray.push(getRecords(extendsTable));
extendsTable = getParentTable(extendsTable );
}
return fieldArray;
},

getRecords: function (tableName){
var dictfields = new GlideRecord('sys_dictionary');

                           dictfields.addQuery('name',tableName);
  
                           dictfields.query();

                    while(dictfields.next())
                    {
                        var obj={};
                        var wel=dictfields.getDisplayValue('column_name');
                        var text=dictfields.getDisplayValue('column_label') ;
                        obj.value = wel;
                        obj.text=text;
                        arr_dict_fields.push(obj); 
return arr_dict_fields;
   
   
                    },


getParentTable: function(tableName){
var dbObject = new GlideRecord('sys_db_object');
dbObject.addQuery('name',tableName);
dbObject.addEncodedQuery('super_classISNOTEMPTY');

dbObject.query();

if (dbObject.next()){

return dbObject.super_class.name.toString();
}
else{
return "none";
},

@qusai  Did you try it? Did it work ?

qusai
Kilo Contributor

@suvro i was trying the same like wrote ur code in my SI but i am not getting the fields in slushbucket