Courseiva

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

Client Recursive Resolver Root DNS (13 root servers) TLD DNS (.com, .org, …) Authoritative example.com query IP addr answer

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 →

How Courseiva writes practice questions · Editorial policy

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.