Courseiva
Back to ServiceNow Certified Application Developer CAD questions

Scenario-based practice

Refer to the Exhibit Practice Questions

Practise ServiceNow Certified Application Developer CAD practice questions — original exam-style scenarios covering every exam domain, with detailed explanations, wrong-answer analysis, and common exam traps.

15
scenario questions
SNOW-CAD
exam code
ServiceNow
vendor

Scenario guide

How to approach refer to the exhibit practice questions

Practise exhibit-style questions that ask you to read a topology, table, command output or diagram before choosing the best answer.

Quick answer

Exhibit-style questions test whether you can read a topology, command output, diagram or table before choosing the best answer.

How to extract the relevant detail from an exhibit.

How topology, command output or routing information affects the answer.

How to avoid answering from memory before reading the evidence.

How to map the exhibit back to the exam objective.

Related practice questions

Related SNOW-CAD topic practice pages

Scenario questions usually connect to one or more exam topics. Use these links to review the underlying concepts behind the scenario.

Practice set

Practice scenarios

Question 1easymultiple choice
Full question →

Refer to the exhibit. The script runs as a business rule on the incident table. What will happen when this script executes?

Exhibit

Refer to the exhibit.

var gr = new GlideRecord('incident');
gr.get('681ccaf9c0a8016400bf7952c6d0a7ef');
gr.setValue('short_description', 'Test update');
gr.update();
Question 2mediummultiple choice
Full question →

Refer to the exhibit. A developer runs this script and notices it only returns 10 incidents even though there are more than 10 active priority 1 incidents. What is the reason?

Exhibit

var gr = new GlideRecord('incident');
gr.addQuery('active', true);
gr.addQuery('priority', '1');
gr.setLimit(10);
gr.query();
while(gr.next()) {
  gs.info(gr.number);
}
Question 3mediummultiple choice
Full question →

Refer to the exhibit. After creating this database view, the view contains fewer records than the sum of records in incident and problem tables. What is the most likely cause?

Exhibit

CREATE VIEW u_my_view AS SELECT sys_id, number, short_description FROM incident UNION SELECT sys_id, number, short_description FROM problem
Question 4easymultiple choice
Full question →

Refer to the exhibit. A transform map configuration is shown. What will happen if the source data has a 'u_model_id' value that matches an existing record in the 'cmdb_ci_model' table?

Exhibit

{
  "import_set": "ISET001",
  "staging_table": "u_cmdb_ci_computer_staging",
  "target_table": "cmdb_ci_computer",
  "field_map": [
    {"source": "u_name", "target": "name"},
    {"source": "u_serial_number", "target": "serial_number"},
    {"source": "u_model_id", "target": "model_id", "coalesce": true}
  ]
}
Question 5hardmultiple choice
Full question →

Refer to the exhibit. A developer created this dictionary override for a new field. When saving, an error occurs. What is the cause?

Exhibit

{
  "name": "u_custom_field",
  "internal_type": "integer",
  "max_length": 100,
  "label": "Custom Count"
}
Question 6easymultiple choice
Full question →

Refer to the exhibit. What does this data policy do?

Exhibit

{"name":"Mandatory short description","table":"incident","field":"short_description","mandatory":true,"conditions":{"op":"and","conditions":[{"field":"state","op":"=","value":"1"}]}}
Question 7hardmultiple choice
Full question →

Refer to the exhibit. What security risk is present in this implementation?

Exhibit

// Widget Client Controller
function($scope, $http) {
    $http.get('/api/now/table/incident?sysparm_limit=10').then(function(response){
        $scope.data = response.data.result;
    });
}
Question 8hardmultiple choice
Full question →

Refer to the exhibit. A developer wrote this client script to hide a field when another field changes to '1'. However, the script throws a JavaScript error. What is the most likely cause?

Exhibit

function onChange(control, oldValue, newValue, isLoading, isTemplate) {\n    if (isLoading) return;\n    if (newValue == '1') {\n        g_form.hideField('field2');\n    }\n}
Question 9mediummultiple choice
Full question →

Refer to the exhibit. A UI Policy is defined on the Incident table. When will the 'assigned_to' field be hidden?

Exhibit

<uipolicy name="hide_field" table="incident" condition="current.state==1" order="10" active="true">
  <uipolicyaction name="action1" action="setVisible" fieldname="assigned_to" visible="false"/>
</uipolicy>
Question 10hardmultiple choice
Study the full ACL explanation →

Refer to the exhibit. This script is placed in a business rule on the 'incident' table with the 'When to run' set to 'before' and 'Update' action. The incident table has an ACL that also prevents updates. The business rule runs and shows the error message but the record is still updated. What is the most likely cause?

Exhibit

if (!gr.isNewRecord()) {
  gr.setAbortAction(true);
  gs.addErrorMessage('Update not allowed');
}
Question 11hardmultiple choice
Full question →

A developer implemented the client script shown in the exhibit to auto-populate the assigned-to field based on the task type. However, when the task type is changed, the assigned-to field is not updated. The server-side script 'TaskTypeAjax' is correctly defined and returns a valid sys_id. What is the most likely reason for the failure?

Exhibit

Refer to the exhibit.

Table: u_incident_task
Fields:
  u_incident: reference to incident
  u_task_type: choice (Investigation, Resolution, Documentation)
  u_assigned_to: reference to sys_user
  u_state: choice (Open, In Progress, Closed)

Client script: onChange on u_task_type
Script:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue == '') {
        return;
    }
    var ga = new GlideAjax('TaskTypeAjax');
    ga.addParam('sysparm_name', 'getDefaultAssignedTo');
    ga.addParam('sysparm_task_type', newValue);
    ga.getXMLAnswer(function(answer) {
        if (answer) {
            g_form.setValue('u_assigned_to', answer);
        }
    });
}
Question 12mediummultiple choice
Full question →

A developer created the business rule shown in the exhibit to auto-generate asset tags. However, when a new asset is created, sometimes the generated tag is a duplicate of an existing tag. What is the most likely cause?

Exhibit

Refer to the exhibit.

Table: u_custom_asset
Fields:
  u_asset_tag: string (max length 50)
  u_serial_number: string (max length 100)
  u_model: reference to cmdb_model
  u_cost: currency

Business rule: Before insert on u_custom_asset
Script:
(function executeRule(current, previous /*null when async*/) {

    if (!current.u_asset_tag) {
        var gr = new GlideRecord('u_custom_asset');
        gr.addQuery('u_asset_tag', 'CONTAINS', 'AST-');
        gr.orderByDesc('sys_created_on');
        gr.query();
        if (gr.next()) {
            var lastTag = gr.u_asset_tag.toString();
            var num = parseInt(lastTag.substring(4)) + 1;
            current.u_asset_tag = 'AST-' + num;
        } else {
            current.u_asset_tag = 'AST-1000';
        }
    }

})(current, previous);
Question 13hardmultiple choice
Full question →

Refer to the exhibit. What is the primary issue with this script if it is intended to update all incidents in state 'New' (state=1) to priority 2?

Exhibit

var gr = new GlideRecord('incident');
gr.addQuery('state', 1);
gr.query();
while(gr.next()) {
    gr.setValue('priority', 2);
    gr.update();
}
Question 14hardmultiple choice
Full question →

Refer to the exhibit. A MID Server is failing to connect to an external Oracle database. The error log shows the above message. Which is the most likely cause?

Exhibit

2023-01-15 10:23:45 ERROR com.glide.mid.MIDServerException: Connection to database failed: ORA-12514: TNS listener not currently aware of service requested in connect descriptor
at com.glide.mid.oracle.OracleConnection.checkConnection(OracleConnection.java:56)
Question 15mediummultiple choice
Study the full ACL explanation →

Refer to the exhibit. An inbound REST call (GET) to the 'incident' table is returning a 403 error. The ACL shown in the exhibit is the only ACL on the table. The calling user has the 'incident_manager' role. What is the likely cause of the 403 error?

Exhibit

{
  "name": "incident",
  "operation": "read",
  "script": "gs.hasRole('admin')",
  "type": "record"
}

These SNOW-CAD practice questions are part of Courseiva's free ServiceNow certification practice question bank. Courseiva provides original exam-style SNOW-CAD questions with detailed explanations, topic-based practice, mock exams, readiness tracking, and study analytics.