Courseiva

SNOW-CAD Practice Question: Automating application logic with business rules and scripts

A company has a business rule that should update the 'priority' field on the Incident table whenever the 'impact' field is changed to 'High'. However, the business rule is not firing. The business rule is set to run 'before' insert/update, with condition 'current.impact.changes()'. The 'impact' field is of type 'choice' with values 'Low', 'Medium', 'High'. Which of the following is the most likely cause?

⚠ Common exam trap

ServiceNow often tests the subtle difference between `changes()` and `changesTo()` in business rules, where candidates mistakenly assume `changes()` works on insert when it only detects changes from a prior value.

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

The condition 'current.impact.changes()' returns false on insert because the previous value is null.

The condition `current.impact.changes()` checks if the field value has changed from a previous value. On an insert, the previous value is null, so the condition returns false even when the impact is set to 'High'. This prevents the business rule from firing on insert, which is a common pitfall when using `changes()` without also checking for the new value.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • The business rule is set to run 'after' instead of 'before'.

    Why it's wrong here

    Running 'after' or 'before' does not prevent the condition from being evaluated; it would still fire if condition is true.

  • The script uses 'gs.addErrorMessage()' which stops execution.

    Why it's wrong here

    gs.addErrorMessage() does not stop execution; it only displays a message.

  • The business rule is inactive.

    Why it's wrong here

    If inactive, it would not fire at all, but the question implies it's active but not firing under the condition.

  • The condition 'current.impact.changes()' returns false on insert because the previous value is null.

    Why this is correct

    On insert, the previous value is null, so 'changes()' returns false. The condition should be modified to handle both insert and update.

About these practice questions

One of 481 original SNOW-CAD practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

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.