diff --git a/Core ServiceNow APIs/GlideRecord/GlideRecord Query Helper/GlideRecordHelper.js b/Core ServiceNow APIs/GlideRecord/GlideRecord Query Helper/GlideRecordHelper.js new file mode 100644 index 0000000000..4c3c03b488 --- /dev/null +++ b/Core ServiceNow APIs/GlideRecord/GlideRecord Query Helper/GlideRecordHelper.js @@ -0,0 +1,36 @@ +/** + * GlideRecordHelper - Simplifies querying records in ServiceNow + * Usage: + * var helper = new GlideRecordHelper('incident'); + * var records = helper.getRecords({ priority: 1, active: true }); + * records.forEach(function(record) { + * gs.info(record.number); + * }); + */ + +var GlideRecordHelper = Class.create(); +GlideRecordHelper.prototype = { + initialize: function(tableName) { + this.tableName = tableName; + }, + + getRecords: function(queryObj) { + var gr = new GlideRecord(this.tableName); + gr.addQuery('sys_id', '!=', ''); // basic filter to avoid empty queries + + for (var key in queryObj) { + if (queryObj.hasOwnProperty(key)) { + gr.addQuery(key, queryObj[key]); + } + } + + gr.query(); + var results = []; + while (gr.next()) { + results.push(gr); + } + return results; + }, + + type: 'GlideRecordHelper' +}; diff --git a/Core ServiceNow APIs/GlideRecord/GlideRecord Query Helper/README.md b/Core ServiceNow APIs/GlideRecord/GlideRecord Query Helper/README.md new file mode 100644 index 0000000000..3a19b6c164 --- /dev/null +++ b/Core ServiceNow APIs/GlideRecord/GlideRecord Query Helper/README.md @@ -0,0 +1,13 @@ +# GlideRecordHelper for ServiceNow + +A simple utility class to help ServiceNow developers query records using GlideRecord with cleaner syntax. + +## How to Use + + +var helper = new GlideRecordHelper('incident'); +var records = helper.getRecords({ priority: 1, active: true }); + +records.forEach(function(record) { + gs.info(record.number); +});