SNOW-CSA Service Catalog and Workflows Practice Question
Exhibit
Refer to the exhibit.
Business Rule: 'Update CI Status'
Table: Requested Item [sc_req_item]
When: After
Condition: current.state.changesTo(3) // 'Closed Complete'
Script:
gr = new GlideRecord('cmdb_ci');
gr.get(current.variables.ci);
gr.setValue('operational_status', 1); // In Production
gr.update();
Catalog Item Variable 'ci':
Type: Reference
Reference table: Configuration Item [cmdb_ci]Refer to the exhibit. A ServiceNow administrator created a catalog item that allows users to select a CI via a reference variable named 'ci'. The business rule shown is supposed to update the CI's operational status to 'In Production' when the requested item is closed complete. However, the CI status is not being updated. What is the most likely cause?
⚠ Common exam trap
Test-takers frequently assume current.variables.ci works in all server-side scripts, but ServiceNow restricts direct variable access to catalog client scripts and workflows, not business rules on the requested item table.
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 script does not properly retrieve the CI record because current.variables.ci returns the sys_id but may not be accessible directly in an after business rule without using the sc_item_option table.
In an 'after' business rule on the Requested Item (sc_req_item) table, the variable values from the catalog item are not directly accessible via current.variables.ci. Instead, they are stored in the sc_item_option table and must be retrieved using a GlideRecord query on sc_item_option joined to the requested item's sys_id. The script attempts to use current.variables.ci, which does not resolve to the CI's sys_id in this context, causing the update to fail.
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 condition 'current.state.changesTo(3)' is incorrect; it should check if the state is already 3.
Why it's wrong here
Incorrect: changesTo() is a valid condition that triggers when the state changes to the specified value.
- ✓
The script does not properly retrieve the CI record because current.variables.ci returns the sys_id but may not be accessible directly in an after business rule without using the sc_item_option table.
Why this is correct
Correct: Variable values are stored in the sc_item_option table and may not be directly accessible via current.variables in an after business rule. The script should use a GlideRecord query on sc_item_option.
- ✗
The reference variable 'ci' is not storing the sys_id of the CI; it stores the display value.
Why it's wrong here
Incorrect: Reference variables store the sys_id, not the display value.
- ✗
The business rule runs 'Before' instead of 'After', so the state hasn't changed yet.
Why it's wrong here
Incorrect: The rule is configured to run 'After', not 'Before'.
Visual reference
Go deeper
Related to this question
About these practice questions
This SNOW-CSA question is part of Courseiva's 504-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 →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
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.