
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-26-2016 05:39 AM
Question: When I query a table (GlideRecord query) on the server side (via Script Include), how can I capture the Column Label of each field on the record?
If further information is needed, or if you would like to see my current script include, let me know.
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-26-2016 06:40 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-26-2016 06:16 AM
Hi David,
I think you should be able to use getLabel() for that. You could combine with getFields() if you want an array of all of the fields and then use that for the label.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-26-2016 06:27 AM
Well, here's what I have so far:
var search_for_sysID = Class.create();
search_for_sysID.prototype = Object.extendsObject(AbstractAjaxProcessor, {
// 1st Function
getRecords: function()
{
var tableSysID = this.getParameter('sysparm_tableSysID');
var sysID = this.getParameter('sysparm_sysID');
var tableName = '';
// First, query the "Table" table to get the requested table "name".
var gr = new GlideRecord('sys_db_object');
gr.addQuery('sys_id', tableSysID);
gr.query();
if (gr.next())
{
tableName = gr.name.toString();
}
if (tableName.length < 1)
return 'no table name';
// We now have a proper 'table_name'
// Now query the correct table by the given sysID and return the values of the found record
gr = new GlideRecord(tableName);
gr.addQuery('sys_id', sysID);
gr.query();
var fields;
var recordArray = [];
var fieldName = '';
if (gr.next())
{
var directURL = (gs.getProperty('glide.servlet.uri') + "nav_to.do?uri=" + tableName + ".do?sys_id=" + sysID);
fields = new GlideRecordUtil().getFields(gr);
for (var i = 0; i < fields.length; i++)
{
fieldName = fields[i];
recordArray.push({ field_name: fieldName, value: gr.getDisplayValue(fieldName), url: directURL, label: fieldName });
}
return (new JSON().encode(recordArray));
}
return 'no record';
}
});
I tried your code here:
recordArray.push({ field_name: fieldName, value: gr.getDisplayValue(fieldName), url: directURL, label: gr.getLabel() });
but gr.getLabel() returned the table name (in my test, it was "Incident").
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-26-2016 06:29 AM
Try
getFields().getLabel()

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-26-2016 06:37 AM
recordArray.push({ field_name: fieldName, value: gr.getDisplayValue(fieldName), url: directURL, label: gr.getFields(fieldName).getLabel() });
The "label" node of this array yields "undefined"
recordArray.push({ field_name: fieldName, value: gr.getDisplayValue(fieldName), url: directURL, label: gr.getFields().getLabel() });
The "label" node of this array yields "undefined"