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 1hardmultiple choice
Full question →

Refer to the exhibit. A developer created this Script Include to be used as a REST API endpoint. However, when calling the API, the response is empty. What is the most likely reason?

Exhibit

Refer to the exhibit.

Script Include: getIncidents.gs

var getIncidents = Class.create();
getIncidents.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getOpenIncidents: function() {
        var gr = new GlideRecord('incident');
        gr.addQuery('active', true);
        gr.query();
        var result = [];
        while(gr.next()) {
            result.push({
                'number': gr.getValue('number'),
                'short_description': gr.getValue('short_description')
            });
        }
        return result;
    }
});
Question 2mediummultiple choice
Full question →

Refer to the exhibit. A developer is making a REST API call to create an incident. The call returns a 201 Created response, but the incident record is not visible in the instance. What is the most likely cause?

Exhibit

Refer to the exhibit.

{
  "request": {
    "method": "POST",
    "url": "https://instance.service-now.com/api/now/table/incident",
    "headers": {
      "Content-Type": "application/json",
      "Accept": "application/json"
    },
    "body": {
      "short_description": "Email not working",
      "caller_id": "6816f79cc0a8016400c3a0fbe8b14d1c",
      "category": "network"
    }
  }
}
Question 3hardmultiple 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 4mediummultiple choice
Full question →

Refer to the exhibit. An IntegrationHub flow using this REST step is failing with a 401 error. What is the most likely cause?

Exhibit

{
  "integration": {
    "name": "External Order System",
    "type": "REST",
    "endpoint": "https://external.com/api/orders",
    "authentication": {
      "type": "basic",
      "username": "${mid.username}",
      "password": "${mid.password}"
    },
    "headers": {"Content-Type":"application/json"}
  }
}
Question 5hardmultiple choice
Full question →

Refer to the exhibit. A developer created this Script Include for use in a Service Portal widget. When calling the processor from a client script, the developer passes no 'sysparm_name' parameter. What will be the result?

Exhibit

Refer to the exhibit.

```javascript
var MyAjaxProcessor = Class.create();
MyAjaxProcessor.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getData: function() {
        var gr = new GlideRecord('incident');
        gr.addQuery('active', true);
        gr.query();
        var result = [];
        while(gr.next()) {
            result.push(gr.getUniqueValue());
        }
        return JSON.stringify(result);
    }
});
```
Question 6mediummultiple 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 7mediummultiple choice
Study the full ACL explanation →

The exhibit shows an ACL condition script intended to allow read access to an incident only if the user has the 'itil' role and is a member of the incident's assignment group. However, users who are members of the assignment group but do not have the 'itil' role are still able to read the incident. What is the most likely problem?

Exhibit

Refer to the exhibit.

ACL Condition Script:
(function checkMembership() {
   if (gs.hasRole('itil') && current.assignment_group.isMemberOf(gs.getUserID())) {
      return true;
   }
   return false;
})();
Question 8easymultiple choice
Full question →

Refer to the exhibit. The Business Rule is set to run on before update. When a record's category is changed to 'hardware', the assignment group is updated correctly. However, when a record is inserted with category 'hardware', the assignment group is not set. Why?

Exhibit

function executeRule(current, previous, gs) {
    if (current.category.changes() && current.category == 'hardware') {
        current.assignment_group.setValue('hardware_group');
    }
}
Question 9mediummultiple choice
Full question →

Refer to the exhibit. The business rule is intended to update the CI's operational status when an incident is resolved. However, the CI is not being updated. What is the most likely reason?

Exhibit

Business Rule: "Update CI on Incident Update"
Table: Incident
When: After update
Script:
(function executeRule(current, previous /*null when async*/) {
    if (current.state.changesTo('Resolved')) {
        var ci = current.cmdb_ci;
        if (ci) {
            var gr = new GlideRecord('cmdb_ci_server');
            gr.get(ci);
            gr.operational_status = 'In Use';
            gr.update();
        }
    }
})(current, previous);
Question 10hardmultiple 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 11mediummultiple 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"
}
Question 12easymultiple choice
Full question →

Refer to the exhibit. What does this script do?

Exhibit

var gr = new GlideRecord('incident');
gr.get('number', 'INC001234');
gr.setValue('state', 2);
gr.update();
Question 13mediummultiple choice
Full question →

Refer to the exhibit. The above JSON represents an application manifest generated by Studio. What does the dependency on 'global' with version '>=3.0.0' indicate?

Exhibit

{
  "name": "ACME Application",
  "scope": "x_acme_app",
  "version": "1.0.0",
  "dependencies": [
    {
      "scope": "global",
      "version": ">=3.0.0"
    }
  ]
}
Question 14hardmultiple 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 15hardmultiple 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"
}

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.