- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-16-2015 03:58 PM
Hi folks,
Is there a API that supports the looping of each field in a table with GlideRecord? Like
var i=1;
For each FIELD in FIELDS {
gs.print('Field ' + i + ': ' + FIELD.name);
}
Any advise would be appreciated.
Thanks,
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-16-2015 06:38 PM
I don't know of anything OOB but you could use something like this:
=================================================================
getFields('alm_asset')
function getFields(table) {
var i=0;
var gr = new GlideRecord('sys_dictionary');
gr.addQuery('name',table)
gr.query();
while(gr.next()) {
i=i+1;
gs.print('Field ' + i + ': ' + gr.element);
}
}
================================================================
Just pass the table name to the function and it will log out the various elements.
I ran the above as a background script and it gave me the following results.
[0:00:00.017] Script completed in scope global: script
*** Script: Field 1:
*** Script: Field 2: acquisition_method
*** Script: Field 3: active_to
*** Script: Field 4: asset_tag
*** Script: Field 5: assigned
*** Script: Field 6: assigned_to
*** Script: Field 7: beneficiary
*** Script: Field 8: checked_in
*** Script: Field 9: checked_out
*** Script: Field 10: ci
*** Script: Field 11: comments
*** Script: Field 12: company
*** Script: Field 13: cost
*** Script: Field 14: cost_center
*** Script: Field 15: delivery_date
*** Script: Field 16: department
*** Script: Field 17: depreciated_amount
*** Script: Field 18: depreciation
*** Script: Field 19: depreciation_date
*** Script: Field 20: display_name
*** Script: Field 21: disposal_reason
*** Script: Field 22: due
*** Script: Field 23: due_in
*** Script: Field 24: gl_account
*** Script: Field 25: install_date
*** Script: Field 26: install_status
*** Script: Field 27: invoice_number
*** Script: Field 28: justification
*** Script: Field 29: lease_id
*** Script: Field 30: location
*** Script: Field 31: managed_by
*** Script: Field 32: model
*** Script: Field 33: model_category
*** Script: Field 34: old_status
*** Script: Field 35: old_substatus
*** Script: Field 36: order_date
*** Script: Field 37: owned_by
*** Script: Field 38: parent
*** Script: Field 39: po_number
*** Script: Field 40: pre_allocated
*** Script: Field 41: purchase_date
*** Script: Field 42: quantity
*** Script: Field 43: request_line
*** Script: Field 44: resale_price
*** Script: Field 45: reserved_for
*** Script: Field 46: residual
*** Script: Field 47: residual_date
*** Script: Field 48: retired
*** Script: Field 49: retirement_date
*** Script: Field 50: salvage_value
*** Script: Field 51: serial_number
*** Script: Field 52: skip_sync
*** Script: Field 53: stockroom
*** Script: Field 54: substatus
*** Script: Field 55: supported_by
*** Script: Field 56: support_group
*** Script: Field 57: sys_class_name
*** Script: Field 58: sys_created_by
*** Script: Field 59: sys_created_on
*** Script: Field 60: sys_domain
*** Script: Field 61: sys_domain_path
*** Script: Field 62: sys_id
*** Script: Field 63: sys_mod_count
*** Script: Field 64: sys_updated_by
*** Script: Field 65: sys_updated_on
*** Script: Field 66: vendor
*** Script: Field 67: warranty_expiration
https://youtube.com/watch?v=zYi8KhP9SUk
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-16-2015 06:28 PM
Hi George,
This can be done by using the getFields and getValue methods. Here is an example I just wrote for you that will grab all the values for all the fields on a specific incident record:
getFieldValues('INCD045011')
function getFieldValues(incNumber) {
var target = new GlideRecord('incident');
target.addQuery('number', incNumber);
target.query();
var gru = new GlideRecordUtil();
while (target.next()) {
var fieldNames = gru.getFields(target);
for (var i = 0; i <= fieldNames.length; i++) {
gs.print("The field: " + fieldNames[i] + " on the current record has a value of: " + target.getValue(fieldNames[i]));
}
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-16-2015 06:38 PM
I don't know of anything OOB but you could use something like this:
=================================================================
getFields('alm_asset')
function getFields(table) {
var i=0;
var gr = new GlideRecord('sys_dictionary');
gr.addQuery('name',table)
gr.query();
while(gr.next()) {
i=i+1;
gs.print('Field ' + i + ': ' + gr.element);
}
}
================================================================
Just pass the table name to the function and it will log out the various elements.
I ran the above as a background script and it gave me the following results.
[0:00:00.017] Script completed in scope global: script
*** Script: Field 1:
*** Script: Field 2: acquisition_method
*** Script: Field 3: active_to
*** Script: Field 4: asset_tag
*** Script: Field 5: assigned
*** Script: Field 6: assigned_to
*** Script: Field 7: beneficiary
*** Script: Field 8: checked_in
*** Script: Field 9: checked_out
*** Script: Field 10: ci
*** Script: Field 11: comments
*** Script: Field 12: company
*** Script: Field 13: cost
*** Script: Field 14: cost_center
*** Script: Field 15: delivery_date
*** Script: Field 16: department
*** Script: Field 17: depreciated_amount
*** Script: Field 18: depreciation
*** Script: Field 19: depreciation_date
*** Script: Field 20: display_name
*** Script: Field 21: disposal_reason
*** Script: Field 22: due
*** Script: Field 23: due_in
*** Script: Field 24: gl_account
*** Script: Field 25: install_date
*** Script: Field 26: install_status
*** Script: Field 27: invoice_number
*** Script: Field 28: justification
*** Script: Field 29: lease_id
*** Script: Field 30: location
*** Script: Field 31: managed_by
*** Script: Field 32: model
*** Script: Field 33: model_category
*** Script: Field 34: old_status
*** Script: Field 35: old_substatus
*** Script: Field 36: order_date
*** Script: Field 37: owned_by
*** Script: Field 38: parent
*** Script: Field 39: po_number
*** Script: Field 40: pre_allocated
*** Script: Field 41: purchase_date
*** Script: Field 42: quantity
*** Script: Field 43: request_line
*** Script: Field 44: resale_price
*** Script: Field 45: reserved_for
*** Script: Field 46: residual
*** Script: Field 47: residual_date
*** Script: Field 48: retired
*** Script: Field 49: retirement_date
*** Script: Field 50: salvage_value
*** Script: Field 51: serial_number
*** Script: Field 52: skip_sync
*** Script: Field 53: stockroom
*** Script: Field 54: substatus
*** Script: Field 55: supported_by
*** Script: Field 56: support_group
*** Script: Field 57: sys_class_name
*** Script: Field 58: sys_created_by
*** Script: Field 59: sys_created_on
*** Script: Field 60: sys_domain
*** Script: Field 61: sys_domain_path
*** Script: Field 62: sys_id
*** Script: Field 63: sys_mod_count
*** Script: Field 64: sys_updated_by
*** Script: Field 65: sys_updated_on
*** Script: Field 66: vendor
*** Script: Field 67: warranty_expiration
https://youtube.com/watch?v=zYi8KhP9SUk
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-14-2017 02:04 PM
Great work!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2018 03:15 PM
What about inherited columns from parent tables though?...