Académique Documents
Professionnel Documents
Culture Documents
GlideRecord
GlideRecord Introduction
● Most common API
● Server side 1 2
● Used for database operations (CRUD)
● Generates SQL for you
● 2 stages
○ Building a query
○ Process records
1. Go to a grocery store
2. Grab a shopping cart
3. Place groceries in the shopping cart
4. Checkout at cashier
Records
3 Query table
● Relational database
● Reference fields starting_table reference_field reference_field
Table D
Field 1
Field 2
Dive Deeper: Checkout this wiki article for a deeper understanding on primary keys
Example: Dot-Walking
● Example:
○ For a specific incident, you would like to find the location of the caller
addQuery() next()
table
setLimit() getRowCount()
query
addEncodedQuery() hasNext()
addNotNullQuery() deleteRecord()
records
query() newRecord()
fields
orderBy() update()
Note: Ovals represent properties or topics associated with API, while rounded rectangles represent methods
GlideRecord API Mapping
GlideRecord
table
addQuery()
query
query()
records
next()
fields
Common GlideRecord Methods
● query() ● get()
● newRecord() ● orderBy()
● insert() ● orderByDesc()
● update() ● canCreate()
● deleteRecord() ● canWrite()
● addQuery() ● canRead()
● addEncodedQuery() ● canDelete()
● hasNext()
● next()
GlideRecord Stage 1: Building Query
1 Build Query Stage
GlideRecord
table
addQuery()
query
query()
● addQuery() ● addEncodedQuery()
● addOrCondition()
● addNullQuery()
● addNotNullQuery()
● addActiveQuery()
● addInactiveQuery()
GlideRecord Stage 1: Option 1 - Chain Methods 1
1 Chain Methods
● Accepts 2 or 3 arguments
2 Arguments 3 Arguments
Numbers Strings
=
Note: ‘=’ is assumed if there are only 2 arguments
= >= > !=
STARTSWITH DOES NOT CONTAIN
ENDSWITH INSTANCEOF
!= <= < IN
CONTAINS
NOTIN
GlideRecord Stage 1: Option 2 - Encoded Query 1
priority=1^ORpriority=2^category
=hardware^ORcategory=software^sy
s_created_on>javascript:gs.dateG
enerate('2017-01-01','12:00:00')
^short_descriptionISNOTEMPTY
3 Add to addEncodedQuery()
GlideRecord Stage 2: Process Records
2 Process Records Stage
GlideRecord
table
addQuery()
query
query()
records
{
next() number: ‘INC00001’,
short_description: ‘Test’,
...
fields
}
GlideRecord next() Method & Iteration 2
sys_id: ‘08ed3ab…’
sys_id: ‘a37ed1...’
sys_id: ‘b90234...’
sys_id: ‘e3294da...’
number: ‘INC000123’
number: ‘INC000124’
number: ‘INC000125’
number: ‘INC000126’
state: ‘open’ state: ‘closed’ state: ‘pending’ state: ‘open’
short_description: ‘Test1’
short_description:
short_description:
‘Test2’ short_description:
‘Test3’ ‘Test4’
Dive Deeper: Checkout this wiki article and this YouTube video if you’d like to learn more on iterators
Accessing A Record’s Fields 2
short_description
sys_created_on
incidentGR
caller_id
[field_name]
GlideRecord get() Method 1 2
● Shortcut
● Only grabs 1 record
● Commonly used with record sys_id
GlideRecord
table query
records fields
get()
CRUD GlideRecord Mapping
1. Build GlideRecord
2. query()
3. newRecord()
4. Set field values
5. insert()
CRUD - Read
1. Build GlideRecord
2. Add filter conditions (optional)
3. query()
4. next()
5. Print or copy variables
CRUD - Update
1. Build GlideRecord
2. Add filter conditions (optional)
3. query()
4. next()
5. Set field values
6. update()
CRUD - Delete
1. Build GlideRecord
2. Add filter conditions (optional)
3. query()
4. next()
5. deleteRecord()
GlideRecordSecure
vs
GlideAggregate
GlideForm GlideRecord
GlideAjax GlideDateTime
Note: GlideRecord on the client side is not recommended, thus will not be discussed in this course
Section Recap