gliderecord-patternslisted
Install: claude install-skill groeimetai/snow-flow
# GlideRecord Best Practices for ServiceNow
GlideRecord is the primary API for database operations in ServiceNow. Following these patterns ensures efficient and secure queries.
## Basic Query Patterns
### Get Single Record by sys_id
```javascript
var gr = new GlideRecord("incident")
if (gr.get("sys_id_here")) {
gs.info("Found: " + gr.getValue("number"))
}
```
### Get Single Record by Field
```javascript
var gr = new GlideRecord("sys_user")
if (gr.get("user_name", "admin")) {
gs.info("Found user: " + gr.getValue("name"))
}
```
### Query Multiple Records
```javascript
var gr = new GlideRecord("incident")
gr.addQuery("active", true)
gr.addQuery("priority", "1")
gr.orderByDesc("sys_created_on")
gr.setLimit(100)
gr.query()
while (gr.next()) {
gs.info(gr.getValue("number"))
}
```
## Encoded Queries (Faster)
Use encoded queries for complex conditions - they're more efficient than multiple addQuery calls:
```javascript
var gr = new GlideRecord("incident")
// Encoded query from list view URL or Query Builder
gr.addEncodedQuery("active=true^priority=1^assigned_toISEMPTY")
gr.query()
while (gr.next()) {
// Process records
}
```
## Performance Tips
### 1. Always Use setLimit()
```javascript
// When you only need X records
var gr = new GlideRecord("incident")
gr.addQuery("active", true)
gr.setLimit(10) // Don't fetch more than needed
gr.query()
```
### 2. Use getValue() for Strings
```javascript
// CORRECT - Returns string value
var number = gr.getValue("number")