SNOW-CAD Practice Question: Automating application logic with business rules and scripts
A developer is tasked with writing a business rule that should only execute when the record is being updated and the value of the 'state' field changes from 'In Progress' to 'Resolved'. Which condition should be used in the business rule?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
current.operation() == 'update' && current.state.changesFrom('In Progress') && current.state.changesTo('Resolved')
The changesFrom() and changesTo() methods are the recommended approach for checking field transitions. Options A and D use direct comparison but are less efficient. Option C only checks that state changed, not the specific transition.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
current.operation() == 'update' && previous.state == 'In Progress' && current.state == 'Resolved'
Why it's wrong here
This works but is not as readable or efficient as using changesFrom/changesTo.
- ✓
current.operation() == 'update' && current.state.changesFrom('In Progress') && current.state.changesTo('Resolved')
Why this is correct
These methods are specifically designed for checking field value transitions.
- ✗
current.operation() == 'update' && current.state.changes() && current.state == 'Resolved'
Why it's wrong here
This only checks that state changed, not that it came from 'In Progress'.
- ✗
current.operation() == 'update' && current.state == 'Resolved' && previous.state == 'In Progress'
Why it's wrong here
This works but is less efficient than the methods.
Visual reference
Go deeper
Related to this question
About these practice questions
This SNOW-CAD question is part of Courseiva's 481-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
Same concept, more angles
2 more ways this is tested on SNOW-CAD
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. A developer needs to create a business rule that runs only when the 'State' field of an Incident changes from 'New' to 'In Progress'. Which condition script should be used?
medium- ✓ A.current.state.changes() && current.state.changesFrom('New')
- B.current.state == 'New' && current.state.changesTo('In Progress')
- C.current.state.changes() && previous.state == 'New'
- D.current.state.changesTo('In Progress')
Why A: It uses both `current.state.changes()` to verify the field has changed and `current.state.changesFrom('New')` to ensure the previous value was 'New'. This combination precisely captures the transition from 'New' to any other state, which when combined with the business rule's 'when to run' condition (set to 'In Progress' in the rule's filter or script), ensures the rule fires only when the state changes from 'New' to 'In Progress'.
Variation 2. A business rule on the Incident table should send an email notification when the state changes to 'Resolved'. Which two conditions should be checked in the business rule script? (Choose two.)
medium- A.current.state == 'Resolved'
- ✓ B.current.state.changesTo('Resolved')
- ✓ C.current.state.changesTo('Resolved') && current.operation() == 'update'
- D.current.state.changes()
- E.current.state.changesFrom() != 'Resolved'
Why B: The `changesTo()` method in GlideRecord checks if the specified field has changed to a specific value during the current transaction. This is the precise way to detect a state transition to 'Resolved'. Option C is also correct because it adds the `current.operation() == 'update'` condition, which ensures the business rule only fires on update operations, preventing false triggers on insert or delete. Together, these two conditions guarantee the email is sent only when an existing record's state is updated to 'Resolved'.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This SNOW-CAD practice question is part of Courseiva's free ServiceNow certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SNOW-CAD exam.