Avoid 'previous' in UI Policy Scripts: Client-Side Context Restriction
This SNOW-CSA practice question tests your understanding of ui, navigation and forms. Match the stated requirement to the specific cloud service, access model, or configuration option — many options are valid in isolation but not for this scenario. After answering, compare your reasoning against the explanation and wrong-answer breakdown below. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
Exhibit
Refer to the exhibit.
```
// UI Policy Condition Script - Incident table
// This script runs onLoad
(function executeRule(current, previous !=null) {
if (current.state == 2) { // In Progress
g_form.setMandatory('short_description', true);
}
})();
```
Refer to the exhibit. The UI Policy script above is meant to make the Short Description field mandatory when the incident state is 'In Progress'. However, it does not work. What is the most likely reason?
Clue words in this question
Noticing these words before you look at the options changes how you read each choice.
Clue: "most likely"
Why it matters: Probability qualifier — the question wants the most probable cause or outcome, not a guaranteed one. Eliminate low-probability options.
Exhibit
Refer to the exhibit.
```
// UI Policy Condition Script - Incident table
// This script runs onLoad
(function executeRule(current, previous !=null) {
if (current.state == 2) { // In Progress
g_form.setMandatory('short_description', true);
}
})();
```
A
The method 'g_form.setMandatory' is deprecated
Why wrong: 'setMandatory' is a valid method.
B
The script is blocked by the 'glide.script.secure' property
Why wrong: No such property by default.
C
There is a syntax error in the function parameters: 'previous !=null' is invalid
The correct is 'previous' without the comparison.
D
The script uses 'current' object which is not available in client scripts
Why wrong: Although 'current' is not directly available in client-side UI policies, the script would still run but might not get the state correctly; however the syntax error is the main issue.
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
There is a syntax error in the function parameters: 'previous !=null' is invalid
Option C is correct because the condition `previous != null` is invalid syntax in a UI Policy script. UI Policy scripts run on the client side and do not have access to the `previous` object, which is only available in server-side business rules. The correct approach would be to check the current state of the `state` field using `g_form.getValue('state')` or similar client-side methods.
Key principle: Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
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 method 'g_form.setMandatory' is deprecated
Why it's wrong here
'setMandatory' is a valid method.
✗
The script is blocked by the 'glide.script.secure' property
Why it's wrong here
No such property by default.
✓
There is a syntax error in the function parameters: 'previous !=null' is invalid
Why this is correct
The correct is 'previous' without the comparison.
Clue confirmation
The clue word "most likely" in the question point toward this answer.
Related concept
Read the scenario before looking for a memorised answer.
✗
The script uses 'current' object which is not available in client scripts
Why it's wrong here
Although 'current' is not directly available in client-side UI policies, the script would still run but might not get the state correctly; however the syntax error is the main issue.
Common exam traps
Common exam trap: answer the scenario, not the keyword
ServiceNow often tests the distinction between client-side and server-side objects, and the trap here is that candidates mistakenly think `previous` is available in UI Policy scripts because it is commonly used in business rules, leading them to overlook the syntax error.
Detailed technical explanation
How to think about this question
UI Policy scripts execute in the browser using client-side GlideForm APIs. The `previous` object is a server-side concept used in business rules to compare field values before and after an update. In client scripts, you must use `g_form.getValue()` to retrieve current field values and `g_form.getValue('state')` to check the state. Attempting to use `previous` will cause a JavaScript ReferenceError because it is undefined in the client context.
KKey Concepts to Remember
Read the scenario before looking for a memorised answer.
Find the constraint that changes the correct option.
Eliminate answers that are true in general but not in this case.
TExam Day Tips
→Watch for words such as best, first, most likely and least administrative effort.
→Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Real-world example
How this comes up in practice
A practitioner preparing for the SNOW-CSA exam encounters this exact type of scenario on the job. The correct answer here is not the most general option — it is the best answer for the specific constraint described. Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option. Real exam questions reward reading the full scenario before eliminating options, because the constraint defines which answer fits.
What to study next
Got this wrong? Here's your next step.
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
UI, Navigation and Forms — This question tests UI, Navigation and Forms — Read the scenario before looking for a memorised answer..
What is the correct answer to this question?
The correct answer is: There is a syntax error in the function parameters: 'previous !=null' is invalid — Option C is correct because the condition `previous != null` is invalid syntax in a UI Policy script. UI Policy scripts run on the client side and do not have access to the `previous` object, which is only available in server-side business rules. The correct approach would be to check the current state of the `state` field using `g_form.getValue('state')` or similar client-side methods.
What should I do if I get this SNOW-CSA question wrong?
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
Are there clue words in this question I should notice?
Yes — watch for: "most likely". Probability qualifier — the question wants the most probable cause or outcome, not a guaranteed one. Eliminate low-probability options.
What is the key concept behind this question?
Read the scenario before looking for a memorised answer.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
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. Refer to the exhibit. A UI Policy is configured with the above condition script to make the 'work_notes' field mandatory when state is 1 and caller_id is valid. When the state is 1 and caller_id is empty, the mandatory attribute is not applied. What is the cause?
hard
A.The condition uses '&&' instead of '||'
B.There is a syntax error in the script
✓ C.The isValid() method is not available in UI Policy context
D.The caller_id field is empty
Why C: Option C is correct because the `isValid()` method is a GlideRecord method that operates on the server side, not a client-side method available in UI Policy scripts. UI Policies run on the client side (in the browser), so `isValid()` is not defined in that context, causing the condition to fail silently or not behave as expected. This is why the mandatory attribute is not applied when `caller_id` is empty, even though the script intends to check for a valid record.
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
This SNOW-CSA 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-CSA exam.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.