← ClaudeAtlas

gliderecord-patternslisted

This skill should be used when the user asks to "query records", "GlideRecord", "database query", "get records", "update records", "insert record", "delete record", or any ServiceNow database operations.
groeimetai/snow-flow · ★ 75 · Code & Development · score 85
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")