ServiceNow Certified Application Developer CAD (SNOW-CAD) — Questions 151225

500 questions total · 7pages · All types, answers revealed

Page 2

Page 3 of 7

Page 4
151
MCQmedium

A knowledge base article template needs a new custom field for 'Article Version'. The administrator wants to add this field to the template so it appears on all articles using that template. What is the correct approach?

A.Modify the existing template to include the new field.
B.Create a new template with the field and re-assign all articles.
C.Use a UI Policy to show the field on articles using that template.
D.Add the field globally to the Knowledge base application file.
AnswerA

Templates define the layout, so adding the field to the template propagates to articles.

Why this answer

Knowledge base templates define the fields that appear on articles. Adding the field to the template ensures it appears on all articles using that template.

152
MCQeasy

The data policy is intended to require short description when category changes during an update. However, the short description is never made mandatory. Which issue exists?

A.The table is Incident but the policy uses current.operation() incorrectly
B.The condition should use AND instead of OR
C.The script uses setMandatory which is not available in Data Policies
D.The policy should be of type 'Constraint'
AnswerC

Correct; Data Policies cannot change field properties via script; they can only enforce validation or abort saves.

Why this answer

Option C is correct because `setMandatory()` is a client-side method used in client scripts or UI policies, not in data policies. Data policies run server-side and use `mandatory=true` on a dictionary element or `gs.addErrorMessage()` to enforce field requirements. Since the script attempts to call `setMandatory()` within a data policy, it will fail to make the short description mandatory, leaving the requirement unmet.

Exam trap

ServiceNow often tests the distinction between server-side and client-side APIs, and the trap here is that candidates assume `setMandatory()` works everywhere because it is commonly used in UI policies, but it is not available in data policies.

How to eliminate wrong answers

Option A is wrong because `current.operation()` is a valid method in data policies to check the current database operation (insert, update, delete), and using it on the Incident table is appropriate; the issue is not about incorrect usage of this method. Option B is wrong because the condition logic (AND vs OR) is not the core problem; even with correct condition syntax, the script would still fail due to the invalid `setMandatory()` call. Option D is wrong because a 'Constraint' type policy is used for enforcing referential integrity or validation rules, not for making fields mandatory; the policy type 'Normal' is correct for this requirement.

153
Multi-Selecthard

A developer is experiencing an issue where a client script is not executing in a scoped application. Which TWO of the following could be causing the issue?

Select 2 answers
A.The script has a syntax error.
B.The script is in the global scope but the application is scoped.
C.The user does not have the 'client_script_admin' role.
D.The script's 'Condition' is set to 'true'.
E.The script is using a global variable.
AnswersA, B

Will prevent execution.

Why this answer

Options A and D are correct: script in global scope (not accessible) and syntax error are common causes. Option B is a valid condition. Option C using global variable is fine.

Option E is not a role requirement.

154
MCQeasy

Which method should be used to delete all records in the 'incident' table where the state is 'Closed' and the sys_updated_on is older than 90 days?

A.GlideRecord.deleteMultiple()
B.GlideAggregate.deleteMultiple()
C.GlideRecord.deleteRecord()
D.GlideRecord.setDelete(true)
AnswerA

Correct: deleteMultiple() deletes all records matching the query.

Why this answer

Option C is correct because GlideRecord's deleteMultiple() with appropriate query efficiently deletes multiple records. Option A is wrong because deleteRecord deletes a single record. Option B is wrong because setDelete is not a valid method.

Option D is wrong because GlideAggregate is for aggregation.

155
MCQhard

A developer is troubleshooting a Service Portal widget that loads slowly. The widget uses a server script that queries a large table without any filters. Which design change would most improve performance?

A.Add client-side caching using $scope
B.Load the widget using ng-if instead of ng-show
C.Create a custom table with only required fields
D.Add a filter condition in the GlideRecord query
AnswerD

Filtering reduces the result set, improving query performance.

Why this answer

Option D is correct because adding a filter condition to the GlideRecord query reduces the dataset retrieved from the database, minimizing network transfer and server-side processing time. Without filters, the query returns all rows from a large table, causing excessive load on the instance and slow widget rendering. Filtering at the database level is the most efficient way to improve performance in Service Portal widgets.

Exam trap

The trap here is that candidates confuse client-side optimizations (caching, DOM manipulation) with server-side data retrieval improvements, overlooking that the root cause is an unfiltered database query that must be addressed at the source.

How to eliminate wrong answers

Option A is wrong because client-side caching using $scope stores data in the browser's memory but does not reduce the initial server query that retrieves the entire unfiltered table, so the slow load persists on first access. Option B is wrong because ng-if and ng-show control DOM rendering, not data retrieval; ng-if removes elements from the DOM when false, but the widget's server script still runs and fetches all records regardless. Option C is wrong because creating a custom table with only required fields is a schema change that requires manual maintenance and does not address the immediate issue of querying the large table without filters; it also violates the principle of minimizing data retrieval at query time.

156
MCQeasy

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?

A.The transform will ignore the field because it is already mapped.
B.The transform will create a new model record with the given value.
C.The transform will automatically set the model_id reference to the existing model record.
D.The transform will skip the record because the model already exists.
AnswerC

Coalesce uses the source value to match a record in the referenced table and sets the reference.

Why this answer

Option A is correct because coalesce=true on model_id will use the source value to look up the existing model_id record and set the reference. Option B is wrong because coalesce does not create new records. Option C is wrong because it does not skip the record.

Option D is wrong because it does not ignore the field.

157
MCQhard

A large enterprise has multiple scoped applications that share common code. The developer created a shared application as a dependency. However, when updating the shared application, some dependent applications break. The developer needs to manage updates to the shared application without causing disruptions. The environment is under change control and requires approval for any deployment. Which approach is the best practice?

A.Use Semantic Versioning and test before update.
B.Create a separate update set for each dependent application.
C.Use update sets to track changes to the shared application.
D.Avoid shared dependencies and duplicate code in each application.
AnswerA

Correct. Semantic Versioning helps manage breaking changes.

Why this answer

Option C is correct because Semantic Versioning allows developers to communicate changes (major, minor, patch) and test before updating dependencies. Option A is wrong because update sets alone do not manage version compatibility. Option B is wrong because creating separate update sets does not solve compatibility.

Option D is wrong because avoiding shared dependencies is not practical and increases duplication.

158
Multi-Selectmedium

A business rule on the Incident table should send an email notification when the state changes to 'Resolved'. Which two conditions should be checked in the business rule script? (Choose two.)

Select 2 answers
A.current.state == 'Resolved'
B.current.state.changesTo('Resolved')
C.current.state.changesTo('Resolved') && current.operation() == 'update'
D.current.state.changes()
E.current.state.changesFrom() != 'Resolved'
AnswersB, C

Correct; this specifically checks if state changes to Resolved.

Why this answer

Option B is correct because the `changesTo()` method in GlideRecord checks if the specified field has changed to a specific value during the current transaction. This is the precise way to detect a state transition to 'Resolved'. Option C is also correct because it adds the `current.operation() == 'update'` condition, which ensures the business rule only fires on update operations, preventing false triggers on insert or delete.

Together, these two conditions guarantee the email is sent only when an existing record's state is updated to 'Resolved'.

Exam trap

The trap here is that candidates often pick only option B, forgetting that `changesTo()` can return true on insert if the field is set to that value, so the additional `current.operation() == 'update'` condition is necessary to restrict the rule to updates only, which is the intended behavior for a state transition notification.

159
MCQhard

You are a ServiceNow developer at a large healthcare organization. You have created a custom table 'u_medical_device' to track medical equipment. The table has fields: 'u_device_id' (string), 'u_device_type' (choice: 'Monitor', 'Ventilator', 'Pump'), 'u_location' (reference to 'u_location' table), 'u_status' (choice: 'Active', 'Inactive', 'Maintenance'), and 'u_last_calibration_date' (date). You need to implement a business rule that, when a device's status is changed to 'Maintenance', automatically sets the 'u_last_calibration_date' to the current date and creates a 'u_maintenance_log' record with a reference to the device. Additionally, you want to ensure that only users with the 'medical_device_admin' role can change the status to 'Maintenance'. You have written the business rule but it is not firing correctly. The sys_script table shows the rule is active, order 100, when 'before' query and 'after' update. The condition is: current.status.changes() && current.status == 'Maintenance'. The script sets current.u_last_calibration_date = gs.now(); and creates a GlideRecord for u_maintenance_log. However, the calibration date is not updated, and no log record is created. What is the most likely cause?

A.The script uses 'gs.now()' which returns a date-time string, but 'u_last_calibration_date' is a date field, causing a type mismatch and silent failure.
B.The business rule is set to run 'before' query instead of 'before' update or 'after' update.
C.The user executing the update does not have the 'medical_device_admin' role, and the business rule lacks an ACL check.
D.The condition 'current.status.changes() && current.status == 'Maintenance'' is invalid because 'changes()' returns a boolean and cannot be combined with '=='.
AnswerB

A 'before' query rule runs when the record is retrieved from the database, not when it is updated. For the logic to execute on update, the rule should be set to 'before' update or 'after' update.

Why this answer

The business rule is configured to run 'before query' and 'after update'. The 'before query' phase fires when a record is retrieved, not when it is updated. Since the script modifies the current record and creates a new record, it must run during an update operation.

The correct phases for this logic are 'before update' (to set the date) and 'after update' (to create the log), or a single 'after update' phase. The 'before query' phase prevents the script from executing during the update, causing the calibration date and log record to not be updated or created.

Exam trap

ServiceNow often tests the distinction between business rule phases, especially the 'before query' phase, which is frequently misunderstood as a phase that runs before any database operation, when in fact it only runs during record retrieval.

How to eliminate wrong answers

Option A is wrong because 'gs.now()' returns a date-time string in the format 'yyyy-MM-dd HH:mm:ss', and ServiceNow automatically converts this to a date-only value when assigned to a date field; there is no type mismatch or silent failure. Option C is wrong because the business rule does not include any role check; the requirement to restrict status changes to 'medical_device_admin' users must be enforced via an ACL or a condition in the business rule, but the absence of such a check does not prevent the rule from firing—it would fire regardless of the user's role. Option D is wrong because 'current.status.changes()' returns a boolean, and combining it with '&& current.status == 'Maintenance'' is valid syntax; the condition correctly checks that the status field has changed and its new value is 'Maintenance'.

160
MCQeasy

An administrator wants to enable inbound email integration to automatically create incidents from emails sent to support@company.com. What is the first step in configuring this?

A.Enable the Email Integration plugin.
B.Configure an email account (mailbox) to receive emails.
C.Create an inbound email action.
D.Create an ACL to allow email processing.
AnswerB

The first step is to set up an email account (mailbox) to receive emails, then create inbound actions.

Why this answer

The first step in configuring inbound email integration is to set up an email account (mailbox) that the instance can connect to and retrieve emails from. Without a configured mailbox, the instance has no source from which to pull incoming messages, making subsequent steps like creating inbound email actions or enabling plugins meaningless. This mailbox configuration defines the IMAP or POP3 server, credentials, and folder settings that the platform uses to poll for new emails.

Exam trap

ServiceNow often tests the order of operations in configuration workflows, and the trap here is that candidates think enabling a plugin or creating an action is the first step, when in reality the mailbox must be configured first to provide the source of emails.

How to eliminate wrong answers

Option A is wrong because the Email Integration plugin is not a separate plugin that needs enabling; inbound email functionality is built into the base platform and is available by default. Option C is wrong because an inbound email action defines how to process an email after it has been retrieved, but it cannot be created or used until a mailbox is configured to receive the emails. Option D is wrong because ACLs control access to records and tables, not the ability to process incoming emails; email processing is governed by system properties and the mailbox configuration, not by ACLs.

161
MCQeasy

A developer wants to prevent users from closing an incident after it has been resolved for more than 30 days. Which approach should be used?

A.Create an ACL to deny closing after 30 days.
B.Create a UI policy that disables the close button.
C.Create a client script that alerts the user.
D.Create a business rule on 'before' that aborts the operation if the condition is met.
AnswerD

Business rules run server-side and enforce the rule on all updates.

Why this answer

A 'before' business rule with an abort action is the correct server-side approach to prevent an operation from completing. When the condition (resolved_at is more than 30 days ago) is true, the business rule can call current.setAbortAction(true) to stop the incident from being updated or closed, ensuring the restriction is enforced regardless of the client interface.

Exam trap

The trap here is that candidates often choose client-side solutions (UI policy or client script) because they appear to 'disable' the button, but they fail to recognize that server-side enforcement is required to prevent direct API or scripted submissions from bypassing the restriction.

How to eliminate wrong answers

Option A is wrong because ACLs control read/write access to records and fields, not the logic of when an operation should be aborted based on a date condition. Option B is wrong because a UI policy only affects the client-side form behavior (e.g., disabling a button) and can be bypassed by direct API calls or scripts. Option C is wrong because a client script only shows an alert to the user but does not prevent the close operation from being submitted and processed on the server.

162
MCQmedium

A business rule runs on 'before' and 'update' for the incident table. The rule sets the short_description to 'Test' only when the state changes to 'In Progress'. However, the short_description is being updated even when the state does not change. What is the most likely cause?

A.The business rule is set to run globally.
B.The business rule does not have an 'if (current.state.changes())' condition.
C.The business rule script modifies the field directly without checking.
D.The business rule is using the 'cancel' action.
AnswerB

To update only on state change, you must check if the state changed.

Why this answer

Option B is correct because the business rule lacks an 'if (current.state.changes())' condition. Without this check, the script runs on every update, setting the short_description to 'Test' regardless of whether the state field actually changed. The 'before' and 'update' triggers ensure the rule executes on every update, but the conditional logic must explicitly verify the state transition.

Exam trap

The trap here is that candidates often confuse the 'before' and 'update' triggers with automatic change detection, assuming the rule only fires when the state changes, when in fact the rule fires on every update unless a condition like 'current.state.changes()' is explicitly added.

How to eliminate wrong answers

Option A is wrong because setting a business rule to run globally does not affect its conditional logic; it only determines on which tables the rule applies, not when it fires. Option C is wrong because the script modifying the field directly without checking is exactly the symptom, not the root cause; the root cause is the missing condition that checks for state changes. Option D is wrong because the 'cancel' action is unrelated to this scenario; it is used to cancel a business rule from executing, not to cause unintended field updates.

163
MCQmedium

Refer to the exhibit. A developer wrote this script in a Business Rule on the 'incident' table. The script runs but the 'u_field' value is not saved. What is the most likely cause?

A.The script has a syntax error
B.The setValue method does not exist on GlideElement
C.The u_field is defined as read-only
D.The method should be setDisplayValue, not setValue
AnswerC

Read-only fields ignore setValue.

Why this answer

Option B is correct. If the field is read-only (e.g., due to a dictionary attribute or ACL), the setValue method fails silently. Option A is wrong because setValue exists on GlideElement.

Option C is wrong because setValue is the correct method. Option D is wrong because the script is syntactically correct.

164
MCQmedium

A company has a business rule that runs after a record is inserted on the Change Request table. The rule creates a related task record. Recently, the rule stopped working for some users. The developer discovers that the rule fails silently when the logged-in user lacks the 'change_request.create' role. What is the best way to fix this?

A.Set the rule to run as the system user
B.Use gs.hasRole('change_request.create') to check and abort if false
C.Move the script to a script action that runs in the background
D.Use current.setAbortAction(false) to ignore the error
AnswerA

Running as the system user grants full rights and avoids role checks.

Why this answer

Setting the business rule to run as the system user bypasses role-based restrictions. Option A would prevent execution. Option C does not handle the error.

Option D is unnecessary.

165
MCQeasy

A developer needs to create a business rule that automatically sets the 'assignment_group' of an incident to 'Service Desk' when the 'category' is 'Network' and the 'subcategory' is 'VPN'. Which condition type should be used to ensure the rule only runs when both conditions are met?

A.Use the 'Condition' field on the business rule to specify the condition.
B.Select the 'Advanced' checkbox and write the condition in the 'Condition' field.
C.Set a filter on the 'When to run' tab to match the category and subcategory.
D.Write the condition in the script field using an if statement and no condition in the Condition field.
AnswerA

The Condition field is designed for exactly this purpose, using boolean logic on field values.

Why this answer

Option A is correct because the 'Condition' field on a business rule is the standard place to define the filter that determines when the rule executes. By entering 'category=="Network"^subcategory=="VPN"' in the Condition field, the rule will only run when both conditions are true, without needing advanced scripting. This is the simplest and most efficient approach for a straightforward condition check.

Exam trap

The trap here is that candidates often confuse the 'Condition' field with the 'Advanced' checkbox, thinking they must always check 'Advanced' to write any condition, when in fact the standard Condition field supports simple AND/OR logic without scripting.

How to eliminate wrong answers

Option B is wrong because selecting the 'Advanced' checkbox is only necessary when you need to write complex script logic in the 'Condition' field (e.g., using GlideRecord queries or multiple conditions with OR/AND logic that cannot be expressed in the simple condition syntax). For a simple AND condition like this, the standard Condition field suffices. Option C is wrong because the 'When to run' tab controls the trigger timing (e.g., before/after insert, update, delete) and does not have a filter field for condition logic; conditions are not set there.

Option D is wrong because writing the condition only in the script field with an if statement and leaving the Condition field empty will cause the business rule to run on every trigger event (e.g., every insert or update), which is inefficient and may lead to unintended side effects; the Condition field should always be used to filter execution.

166
MCQhard

A developer is designing a UI Policy that should run client-side but references a complex server-side calculation. Which approach is best?

A.Create a Business Rule and call it from UI Policy.
B.Use a client script with GlideAjax.
C.Use a UI Macro.
D.Use a UI Policy condition string.
AnswerB

Correct. GlideAjax enables server-side calls from client scripts.

Why this answer

Option A is correct because GlideAjax allows making asynchronous server calls from client scripts. Option B is wrong as UI Policy condition strings cannot perform complex calculations. Option C is wrong because Business Rules run server-side and cannot be called directly from UI Policy.

Option D is wrong as UI Macros are for UI presentation, not server-side logic.

167
MCQeasy

A developer is creating a business rule that should run after a record is inserted or updated. The script should fire on both insert and update. Which condition should be used?

A.current.operation().indexOf('insert') != -1
B.current.operation() == 'insert' || current.operation() == 'update'
C.current.operation() in ['insert','update']
D.current.operation() in ['insert','update','delete']
AnswerC

This is the recommended way to check multiple operations.

Why this answer

Option C is correct because the `in` operator checks if `current.operation()` matches any value in the list `['insert','update']`, which is the exact requirement for a business rule that should fire on both insert and update. This is the most concise and idiomatic way in ServiceNow to test for multiple operation types.

Exam trap

The trap here is that candidates often choose Option B because it explicitly lists both conditions, not realizing that the `in` operator is the preferred and more concise syntax in ServiceNow, or they pick Option D because they forget to exclude 'delete' from the list.

How to eliminate wrong answers

Option A is wrong because `current.operation().indexOf('insert') != -1` would incorrectly match any operation string containing 'insert', such as 'inserting' or 'inserted', and is not a reliable or standard way to check the operation type. Option B is wrong because while the logic is correct, it is unnecessarily verbose and less readable compared to the `in` operator; however, it would technically work, but the question asks for the condition that should be used, implying the best practice. Option D is wrong because it includes 'delete', which would cause the business rule to also fire on delete operations, violating the requirement to fire only on insert and update.

168
MCQeasy

A developer needs to create a service catalog variable that allows the user to select multiple values from a predefined list. Which variable type should be used?

A.Single Line Text
B.Radio Button
C.Select Box
D.Multiple Choice (Checkbox)
AnswerD

Multiple Choice allows multiple selections.

Why this answer

Option D is correct because the Multiple Choice (Checkbox) variable type in ServiceNow allows users to select multiple values from a predefined list. This is the only variable type that supports multi-select behavior, which is required when a user needs to choose more than one option from a set of choices.

Exam trap

ServiceNow often tests the distinction between single-select and multi-select variable types, and the trap here is that candidates confuse Select Box with Multiple Choice because both present a predefined list, but only Multiple Choice supports multiple selections.

How to eliminate wrong answers

Option A is wrong because Single Line Text is a free-text input field that does not provide a predefined list of values, so it cannot enforce selection from a set of options. Option B is wrong because Radio Button allows only a single selection from a predefined list, as radio buttons are mutually exclusive by design. Option C is wrong because Select Box (dropdown) also restricts the user to a single selection, even though it presents a predefined list.

169
MCQmedium

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?

A.The script only gets incidents from the current session.
B.The script only retrieves incidents created today.
C.The incident table is not joined with any other table.
D.The setLimit(10) method limits the number of records returned.
AnswerD

setLimit restricts the GlideRecord query to 10 records.

Why this answer

Option B is correct because setLimit(10) limits the result set to 10 records. Option A is wrong because the query is correct. Option C is wrong because setLimit does not restrict to today's records.

Option D is wrong because there is no join.

170
MCQmedium

A ServiceNow developer needs to implement a business rule that automatically sets the 'state' field to 'In Progress' when a user is assigned to an incident. The rule should run only when the 'assigned_to' field changes, and should not run on any other updates. Which condition type and condition script should be used?

A.Condition type: 'when to run' set to 'on update' with condition 'current.assigned_to.changes()'
B.Condition type: 'when to run' set to 'on update' with condition 'current.assigned_to.changes() || current.state.changes()'
C.Condition type: 'when to run' set to 'on insert or update' with condition 'current.assigned_to.changes()'
D.Condition type: 'advanced' with condition script 'current.assigned_to.changes()' and run on 'update'
AnswerA

Correct: condition type 'when to run' with 'on update' and the condition script 'current.assigned_to.changes()' ensures it only runs on update when assigned_to changes.

Why this answer

Option A is correct because the 'when to run' condition type set to 'on update' with the condition 'current.assigned_to.changes()' ensures the business rule triggers only when the 'assigned_to' field is updated, and not on insert or other field changes. The 'changes()' method returns true only when the specified field has been modified during the current transaction, which precisely meets the requirement.

Exam trap

The trap here is that candidates often confuse 'changes()' with 'changed()' (which is not a valid method) or incorrectly assume that 'on update' alone without a field condition will run on any update, leading them to add unnecessary conditions like 'current.state.changes()' or choose the 'advanced' option.

How to eliminate wrong answers

Option B is wrong because it adds '|| current.state.changes()', which would cause the rule to also run when the 'state' field changes, violating the requirement to run only on 'assigned_to' changes. Option C is wrong because 'on insert or update' would trigger the rule on record creation, which is not allowed since the requirement specifies the rule should run only on updates. Option D is wrong because the 'advanced' condition type with a condition script is unnecessary; the simple 'when to run' condition with 'current.assigned_to.changes()' is sufficient and more efficient, and the 'run on update' is redundant when the condition type already specifies 'on update'.

171
Multi-Selectmedium

Which TWO methods are valid for adding a condition to a GlideRecord query? (Choose two.)

Select 2 answers
A.addAndCondition
B.addQuery
C.addOrCondition
D.setCondition
E.addWhere
AnswersB, C

Primary method to add a condition (AND).

Why this answer

Options B and D are correct. addOrCondition is indeed a valid method for adding an OR condition. addQuery is the standard method for AND conditions. Option A is wrong because addAndCondition is not a valid GlideRecord method. Option C is wrong because addWhere is not a valid method.

Option E is wrong because setCondition is not a method.

172
MCQmedium

A developer builds an application in Studio and wants to ensure all changes are captured in an update set. What is true?

A.The developer needs to set the 'Update Set' field on each record to 'Default Update Set'.
B.Studio automatically creates an update set for the application scope when the application is created.
C.Update sets are not used for scoped applications; only for global scope.
D.The developer must manually create a new update set and assign it to the application scope.
AnswerB

Correct behavior.

Why this answer

Option B is correct because Studio automatically creates an update set for the application scope. Option A is incorrect because manual creation is not required. Option C is incorrect because records are automatically associated.

Option D is incorrect because update sets are used for scoped applications.

173
Multi-Selectmedium

A ServiceNow administrator is designing a new catalog item for hardware requests. The item should allow users to select a cost center from a list of available options, but only those cost centers the user is authorized to use. Which TWO approaches should the administrator use to implement this requirement?

Select 2 answers
A.Define a variable with a reference qualifier using a local variable that is populated by a catalog client script.
B.Use a 'Select Box' variable type and populate it via a script that queries the cost center table filtering by user.
C.Create a reference field on the Cost Center table and apply a reference qualifier that filters based on the user's authorization.
D.Use a 'Lookup Select Box' variable type and set the option list to a script that returns authorized cost centers.
E.Use a 'List Collector' variable type and configure a reference qualifier to limit the available cost centers.
AnswersC, E

Reference qualifiers can filter records based on user context, such as authorization.

Why this answer

Option C is correct because a reference field on the Cost Center table with a reference qualifier can dynamically filter the available cost centers based on the current user's authorization, using a condition like 'authorized_usersLIKEjavascript:gs.getUserID()'. This approach leverages native platform capabilities without requiring client-side scripts or custom population logic, ensuring security and maintainability.

Exam trap

The trap here is that candidates often confuse 'reference qualifier' with 'client-side filtering' and select options that use client scripts or custom population scripts, not realizing that reference qualifiers are the correct server-side mechanism for enforcing user-specific data access in catalog items.

174
MCQeasy

A ServiceNow administrator is building a new custom application to track employee training records. The application includes a custom table 'Training Record' with fields such as employee name, training course, completion date, and score. The administrator wants to create a user-friendly form for data entry. The form should display fields in a logical order: first employee details, then training details, then completion information. Additionally, the form should only show the 'score' field if the training type is 'Exam'. Which configuration approach best addresses these requirements?

A.Design a single form view with all fields and use two client scripts (onLoad and onChange) to hide the score field when conditions are not met.
B.Create separate modules for each combination of fields (e.g., one for Exam training, one for others) to simplify data entry.
C.Create a single form view with all fields and instruct users to use the filter function to find the fields they need.
D.Define multiple form sections to group related fields and use a UI policy to set the 'score' field visible only when training type is 'Exam'.
AnswerD

Sections improve readability; UI policy declaratively controls visibility without complex scripting.

Why this answer

Option B is correct because using form sections to organize fields logically and UI policies to conditionally show/hide the score field provides a clean, maintainable solution. Option A is incorrect because showing all fields and relying on filters does not provide a streamlined entry experience. Option C is incorrect because using client scripts for hiding fields is less maintainable than UI policies.

Option D is incorrect because creating separate modules for each record type is overly complex and unnecessary.

175
MCQeasy

Which method is recommended for applying custom CSS to a Service Portal page?

A.Use the CSS Variable Editor in UI Builder
B.Modify the Bootstrap CSS file directly
C.Add inline styles in the page template
D.Override CSS in each widget's instance options
AnswerA

Correct: CSS Variable Editor allows safe, upgrade-friendly customizations.

Why this answer

The CSS Variable Editor (or Theme and Branding) is the standard way to customize CSS in Service Portal. Customizing Bootstrap directly is not recommended.

176
MCQhard

A developer is troubleshooting a client script that hides a field on a form when a condition is met, but it is not working. The script is attached to the 'g_form' object in Studio. What is the most likely reason?

A.The client script is set to run on the 'Load' event instead of 'Change'.
B.The script is using a deprecated API.
C.The script is not running due to a missing 'Run As' role.
D.The field is not part of the application scope.

Why this answer

Option C is correct because a business rule that modifies query conditions must use 'before query'. Option A is incorrect because it runs on insert, not query. Option B is incorrect because 'after query' is too late.

Option D is incorrect because 'display' is for form display, not query.

177
MCQmedium

A developer needs to share a custom table from a scoped application with another application. What is the best practice in Studio?

A.Set the table's 'Accessible from' field to include the other application scope.
B.Export the table definition as XML and import into the other application.
C.Create a cross-scope privilege.
D.Use a web service to expose the table data.
AnswerC

Standard method.

Why this answer

Option D is correct because cross-scope privileges are the standard way to share tables between scoped applications. Option A is incorrect as exporting and importing is not a real-time sharing method. Option B is incorrect because there is no 'Accessible from' field.

Option C is incorrect because web services are not the best practice for table sharing.

178
MCQhard

A ServiceNow instance is being integrated with an external HR system using a SOAP message. The SOAP call is failing intermittently. The developer notices that the XML payload contains special characters like '&' and '<'. What is the best practice to handle these characters in SOAP messages?

A.Wrap the payload in a CDATA section.
B.Encode the entire payload in Base64.
C.Use URL encoding for the payload.
D.Escape the characters using XML entities (e.g., &amp; for &).
AnswerD

Escaping special characters ensures well-formed XML and is the standard practice.

Why this answer

SOAP messages are XML-based, and special characters like '&' and '<' must be escaped using XML entities (e.g., &amp; for &, &lt; for <) to maintain valid XML syntax. This ensures the XML parser correctly interprets the payload without breaking the message structure, which is the standard practice per the XML specification and SOAP protocol.

Exam trap

The trap here is that candidates often confuse XML escaping with other encoding methods (like CDATA or URL encoding) and assume CDATA is a catch-all solution, but the exam tests the precise XML standard for handling special characters within SOAP message bodies.

How to eliminate wrong answers

Option A is wrong because CDATA sections are used to mark blocks of text that should not be parsed as XML, but they are not the best practice for escaping individual special characters within SOAP payloads; they can cause issues with XML validation and are not universally supported in all SOAP implementations. Option B is wrong because Base64 encoding would convert the entire payload to a binary-safe string, but it would require the receiver to decode it, adding unnecessary complexity and violating the SOAP standard for human-readable XML messages. Option C is wrong because URL encoding (percent-encoding) is designed for query strings in URLs, not for XML content; it would not produce valid XML and would likely cause parsing errors in the SOAP handler.

179
MCQeasy

A developer is configuring a REST message to retrieve data from an external system. The external system returns XML responses. Which data format should the developer set the REST message to expect?

A.JSON
B.Text
C.CSV
D.XML
AnswerD

Correct: The format should match the response from the external system, which is XML.

Why this answer

The REST message must be configured to expect the same data format that the external system returns. Since the external system returns XML, the developer should set the expected format to XML.

180
MCQmedium

A company needs to integrate ServiceNow with an external HR system using REST API. The HR system requires OAuth 2.0 client credentials grant. Which ServiceNow application should be used to configure this integration?

A.REST API Explorer
B.Flow Designer
C.REST API Message
D.IntegrationHub
AnswerC

REST API Messages allow configuration of outbound REST calls, including OAuth authentication.

Why this answer

Option C is correct because REST API Message is the dedicated ServiceNow application for defining and managing outbound REST integrations, including OAuth 2.0 client credentials grant. It allows you to configure the authentication profile, endpoint URL, HTTP method, and request/response handling in a structured, reusable way, making it the appropriate choice for integrating with an external HR system via REST API.

Exam trap

The trap here is that candidates confuse the tool for testing APIs (REST API Explorer) or the workflow automation layer (Flow Designer/IntegrationHub) with the actual configuration component (REST API Message) that handles OAuth 2.0 client credentials grant for outbound REST integrations.

How to eliminate wrong answers

Option A is wrong because REST API Explorer is a tool for testing and exploring REST APIs interactively, not for configuring and managing persistent integrations with authentication like OAuth 2.0 client credentials. Option B is wrong because Flow Designer is used for creating no-code workflows and automations within ServiceNow, but it relies on pre-configured actions or spokes (like REST API Message) to make outbound REST calls; it does not directly configure OAuth 2.0 client credentials grant for an integration. Option D is wrong because IntegrationHub is a premium add-on that extends Flow Designer with spokes and subscription-based integrations, but the base configuration of OAuth 2.0 client credentials for a REST API is still done via REST API Message, not IntegrationHub itself.

181
MCQmedium

A company is using a MID Server to run a discovery probe. The probe fails with a timeout error. The developer checks the MID Server logs and sees 'Connection refused'. What is the most likely issue?

A.The MID Server credentials are incorrect.
B.The MID Server's SSL certificate is expired.
C.The target host's firewall is blocking the port used by the probe.
D.The target host is unreachable from the MID Server network.
AnswerC

Connection refused indicates the TCP connection was rejected, often due to firewall or service not running.

Why this answer

The 'Connection refused' error in the MID Server logs indicates that the target host actively rejected the connection attempt on the specified port. This is most commonly caused by a firewall on the target host blocking the port used by the discovery probe, as the firewall sends a TCP RST packet to refuse the connection. Incorrect credentials would result in an authentication failure, not a connection refusal, and an unreachable host would produce a 'No route to host' or timeout error.

Exam trap

The trap here is that candidates often confuse 'Connection refused' with 'Host unreachable' or 'Timeout', but Cisco tests the distinction that a firewall actively blocking a port sends a TCP RST (refused), while a network-level block or host down results in a timeout or ICMP unreachable.

How to eliminate wrong answers

Option A is wrong because incorrect MID Server credentials would cause an authentication failure (e.g., 'Invalid credentials' or 'Access denied'), not a TCP-level 'Connection refused' error. Option B is wrong because an expired SSL certificate would cause a TLS handshake failure (e.g., 'certificate expired' or 'SSL error'), not a raw socket connection refusal. Option D is wrong because if the target host were unreachable from the MID Server network, the error would be 'No route to host' or 'Host unreachable' (ICMP unreachable), not a TCP RST-based 'Connection refused'.

182
MCQhard

A dashboard with multiple indicators is loading slowly. The dashboard contains live data from several tables with complex conditions. Which optimization should be applied first?

A.Use client-side scripts to load data asynchronously.
B.Reduce the number of indicators to one.
C.Convert indicators to use aggregated data sources instead of live queries.
D.Increase the cache timeout for all indicators.
AnswerC

Aggregate indicators pre-compute data, reducing real-time queries and improving performance.

Why this answer

Using aggregate indicators reduces the number of live queries by pre-calculating data, which is the most effective optimization for dashboard performance.

183
MCQmedium

A large enterprise has developed a custom scoped application in ServiceNow Studio to manage employee onboarding. The application includes multiple business rules, client scripts, and a custom table. Recently, after a clone from production to a sub-production instance, the application fails to upgrade properly. The developer notices that the application version in the sub-prod instance shows an older version than the source, and many application files appear to be missing. The developer suspects the issue is related to how the application was packaged or the upgrade process. What should the developer do to resolve this issue?

A.Run the 'Application File Synchronization' job to refresh the application files from the source.
B.Use the Studio 'Compare Application' feature to identify missing files and manually copy them over.
C.Check the update set that was used to move the application; ensure all application artifacts are included and re-apply it.
D.Delete the application from the sub-prod instance and re-import the application source from the production instance's export.
AnswerD

Correct: Exporting and importing the entire application as XML ensures all files and metadata are preserved.

Why this answer

Option D is correct because when a clone from production to sub-production results in an older application version and missing files, the most reliable fix is to delete the broken application and re-import a fresh export from the source instance. Cloning can corrupt scoped application metadata or leave orphaned records, and re-importing ensures the entire application payload—including all business rules, client scripts, and table definitions—is restored from a known-good source. This bypasses any incremental update set issues or synchronization failures that may have occurred during the clone.

Exam trap

The trap here is that candidates assume update sets or synchronization jobs can fix scoped application issues, but ServiceNow treats scoped applications as atomic units that require full re-import after a clone to avoid version drift and missing artifacts.

How to eliminate wrong answers

Option A is wrong because the 'Application File Synchronization' job is designed to sync file attachments (e.g., images, scripts) within an instance, not to restore missing application artifacts after a clone; it cannot fix version mismatches or missing table definitions. Option B is wrong because the 'Compare Application' feature only highlights differences between instances but does not provide a mechanism to copy files; manually copying files is error-prone and does not address the underlying version corruption. Option C is wrong because update sets are not used to move scoped applications; scoped applications are exported and imported as a single XML or via the App Repository, and re-applying an update set would not restore the full application structure or correct versioning issues.

184
MCQhard

A large enterprise uses ServiceNow for IT service management. The company has recently implemented a custom integration that pulls incident data from an external monitoring system via REST every 5 minutes. The integration runs as a scheduled job that creates new incidents and updates existing ones. Over the past week, users have reported that the system becomes sluggish during peak hours (9-11 AM). The performance team identifies that the integration job is causing high database contention. The job currently queries the incident table for existing records using a condition on the 'source' field and then updates or inserts records in a loop. Each job run processes around 500 records. The incident table has several million records. The developer is asked to optimize the integration. What should the developer do first?

A.Increase the scheduled job interval to every 10 minutes to reduce frequency.
B.Modify the scheduled job to use GlideAggregate to check for existing records before update.
C.Add an index on the 'source' field in the incident table.
D.Change the integration to use batch processing with a database view.
AnswerC

Correct: Adding an index on the 'source' field will optimize the query and reduce contention.

Why this answer

The query on the 'source' field without an index is causing full table scans, leading to high database contention. Adding an index on the 'source' field will drastically reduce the cost of looking up existing records, improving performance significantly. The other options are either less effective or address secondary concerns.

185
Multi-Selecteasy

Which TWO of the following are valid ways to reference a sys_id of a record in a business rule? (Choose two.)

Select 2 answers
A.current.number
B.current.getUniqueValue()
C.current.get('sys_id')
D.current.getRow()
E.current.sys_id
AnswersB, E

This method returns the sys_id.

Why this answer

Option B is correct because `getUniqueValue()` is a GlideRecord method that returns the unique identifier (sys_id) of the current record, even if the record is new and hasn't been saved yet. Option E is correct because `current.sys_id` directly accesses the sys_id field of the GlideRecord object, which is a standard way to reference the record's unique key in a business rule.

Exam trap

ServiceNow often tests the distinction between field values (like `current.number`) and the unique record identifier (sys_id), leading candidates to mistakenly choose `current.number` as a valid sys_id reference.

186
Multi-Selectmedium

Which TWO actions are required to ensure that an Import Set can update existing records while inserting new ones? (Choose two.)

Select 2 answers
A.Enable the 'Run as advanced' checkbox on the Import Set Row.
B.Set the 'On Success' field to 'Update' on the Transform Map.
C.Configure a data source to define the external system connection.
D.Set the Coalesce field on the Transform Map to the unique identifier field.
E.Define a Transform Map that maps source fields to target fields.
AnswersB, D

The 'On Success' field controls whether matched records are updated; 'Update' is required to update instead of ignoring.

Why this answer

Option B is correct because setting the 'On Success' field to 'Update' on the Transform Map instructs the transform engine to update existing records when a matching record is found, rather than skipping or inserting a duplicate. Option D is correct because the Coalesce field defines which source field is used to match against existing target records; without a coalesce field, the system cannot determine whether a record already exists, so it will always insert new records.

Exam trap

The trap here is that candidates often think simply defining a Transform Map (Option E) is sufficient for updates, but they overlook the mandatory coalesce field and the 'On Success' setting that explicitly control the update logic.

187
MCQeasy

A developer is creating a Scheduled Job in Studio that needs to run every hour. Which type of trigger should be selected?

A.Date
B.Run once
C.Interval
D.Daily
AnswerC

Interval triggers can be set to repeat every hour.

Why this answer

Option A is correct because an Interval trigger allows specifying a repeat interval, e.g., every 60 minutes. Daily runs once per day, Date runs at a specific date/time, and Run once runs one time.

188
MCQmedium

When using an Import Set, the developer notices that some records are not being inserted even though no errors appear. The transform map has a condition script. What is the most likely cause?

A.The data source has a filter that excludes those records.
B.The field mappings are incorrect for those records.
C.A business rule on the target table rejects the records silently.
D.The condition script returns false for those records.
AnswerD

Condition scripts control processing; if false, the record is skipped.

Why this answer

Option A is correct because the condition script determines whether each record is processed; if it returns false, the record is skipped. Option B (data source filter) could filter records, but the condition script is the most direct cause. Option C (business rule) would show errors or cause rollback.

Option D (field mappings) would usually show mapping errors.

189
MCQeasy

A developer creates a new custom table 'u_ticket' by extending the 'Task' table. Which field will be automatically inherited from the Task table?

A.State
B.Number
C.Assignment group
D.Short description
AnswerD

Short description is a field that exists on Task and is inherited by any table that extends Task.

Why this answer

Option C is correct because extending Task inherits all core fields, including 'Short description'. Option A is wrong because Assignment group is not a default field on Task. Option B is wrong because 'Number' is auto-generated but not inherited; it's a system field.

Option D is wrong because 'State' is part of Task but not automatically; it's inherited, but the question asks which field is inherited, and State is indeed inherited, but Short description is a more direct example of an inherited field that is always present.

190
Multi-Selecthard

An administrator is designing a data model to manage vendor contracts. The solution must allow contracts to be associated with multiple departments and multiple vendors. Which THREE approaches are valid to model this many-to-many relationship in ServiceNow? (Choose three.)

Select 3 answers
A.Create an intermediate table 'ContractDepartment' with reference fields to Contract and Department
B.Create a single 'Department' field on the Contract table and use it to store all department records
C.Use a 'GlideList' field type on the Contract table to reference multiple departments
D.Use a 'Multi-reference field' (sys_multi_reference) on the Contract table to reference multiple departments
E.Use a 'String' field on the Contract table to store a comma-separated list of department sys_ids
AnswersA, C, D

An intermediate table is the standard relational database approach for many-to-many relationships.

Why this answer

Options A, B, and D are correct methods for implementing many-to-many relationships. Option C is incorrect because a single field cannot hold multiple references. Option E is incorrect because GlideList is not a recommended approach for many-to-many in table design.

191
MCQhard

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

A.The label 'Custom Count' contains spaces
B.Integer fields do not support the max_length property
C.internal_type should be 'integer' not 'integer' (typo)
D.The JSON properties must be in alphabetical order
AnswerB

max_length applies only to string and similar types.

Why this answer

Option C is correct. Integer fields do not have a max_length attribute; that property is only for string fields. The system rejects the combination.

Option A is wrong because label is valid. Option B is wrong because internal_type is correctly spelled. Option D is wrong because dictionary overrides do not require a specific order.

192
MCQmedium

A large enterprise uses ServiceNow as its ITSM platform. They have an existing LDAP directory that contains user accounts and group memberships. They want to synchronize user accounts from LDAP into the ServiceNow user table (sys_user) and automatically assign roles based on group membership. The LDAP server supports both user and group synchronization. The administrator has configured an LDAP server record and a user import transform map. After running the LDAP user import, all users are created but none have roles assigned. The LDAP group import transform map is configured to load groups into the sys_user_group table and members into the member list. The administrator verified that the LDAP group import runs successfully and populates groups with members. However, the expected roles are still missing. What is the most likely cause and solution?

A.The LDAP group import is not correctly associating users to groups. Solution: check the member attribute mapping in the group import transform map.
B.The administrator did not configure role-to-group mapping in the LDAP server record. Solution: define the mapping in the 'Role' related list on the LDAP server configuration.
C.The LDAP user import is not populating the 'group' field on the user record. Solution: add a field mapping to copy the group DN.
D.The LDAP user import transform map does not have a coalesce field set, causing duplicate users. Solution: set coalesce on the user ID field.
AnswerB

Roles are assigned by mapping LDAP groups to ServiceNow roles in the LDAP server configuration.

Why this answer

In ServiceNow, role assignment via LDAP group synchronization requires explicit role-to-group mapping on the LDAP server record. Even when groups and members are imported correctly, roles are not automatically assigned unless the administrator defines which LDAP group corresponds to which ServiceNow role in the 'Role' related list on the LDAP server configuration. Without this mapping, the system has no instruction to link group membership to role inheritance.

Exam trap

The trap here is that candidates assume successful group and member import automatically assigns roles, overlooking the mandatory role-to-group mapping on the LDAP server record.

How to eliminate wrong answers

Option A is wrong because the administrator verified that the LDAP group import runs successfully and populates groups with members, so the member attribute mapping is correct. Option C is wrong because the 'group' field on the user record is not used for role assignment; roles are derived from the sys_user_group table via the role-to-group mapping on the LDAP server record. Option D is wrong because coalesce settings affect duplicate detection and merging, not role assignment; the issue is about missing roles, not duplicate users.

193
MCQeasy

A developer needs to filter a list of records based on a reference field condition using a reference qualifier. Which method is used to define a reference qualifier on a dictionary entry?

A.Reference specification
B.Default value
C.Reference qual
D.Dependent fields
AnswerC

The 'Reference qual' field on a reference field's dictionary entry defines the condition.

Why this answer

Option B is correct because reference qualifiers are defined in the 'Reference qual' field on the dictionary entry. Option A is wrong because that's for display fields. Option C is wrong because that's for default values.

Option D is wrong because that's for dependent fields.

194
Matchingmedium

Match each ServiceNow access control rule (ACL) type to its function.

Drag a concept onto its matching description — or click a concept then click the description.

Concepts
Matches

Controls view access to records

Controls create and update access

Controls delete access

Controls record creation

Controls script execution

Why these pairings

ACL types define the operation being restricted.

195
MCQhard

A developer writes a script include that uses GlideRecord to query a large table. The script is called multiple times in a single transaction. What is the best practice to optimize performance?

A.Use separate GlideRecord queries for each call.
B.Use createOrGetRecord for each call to cache the result.
C.Use a single GlideRecord query with multiple conditions and call .getRowCount() at the end.
D.Use setEncodeQuery(false) to speed up the query.
AnswerC

Correct: This minimizes database round trips.

Why this answer

Option A is correct because adding .getRowCount() at the end forces the query to execute and cache results, but better is to use GlideAggregate for counts. However, none are ideal. Actually, the correct answer is to use GlideDBFunction or aggregate.

But among options, using a single GlideRecord with multiple conditions is best. Option B is wrong because multiple queries add overhead. Option C is wrong because encoding does not improve performance.

Option D is wrong because createOrGetRecord is for single record.

196
MCQmedium

A report on the 'incident' table shows duplicate counts due to the 'active' field being true for some records that shouldn't be counted. The report is using a simple count. How can the admin ensure only active incidents are counted?

A.Add a filter condition: 'active = true'.
B.Create a business rule to set active=false for certain records.
C.Remove the 'active' field from the report.
D.Group the report by the 'active' field.
AnswerA

Correct: A filter ensures only active incidents are included.

Why this answer

Option B is correct because applying a filter condition in the report ensures only active incidents are counted. Option A is wrong because removing the field does not filter. Option C is wrong because grouping does not filter.

Option D is wrong because a business rule is not appropriate.

197
MCQeasy

A developer needs to create a new table in ServiceNow to track project milestones. The table should have a reference field to the Project table and a date field for the milestone date. Which data type should be used for the reference field?

A.GlideRecord
B.Integer
C.String
D.Reference
AnswerD

Reference field links to a record in another table.

Why this answer

Option D is correct because in ServiceNow, a reference field is specifically designed to create a relationship between two tables by storing the sys_id of the referenced record. This allows the developer to link a project milestone record to a specific project record in the Project table, enabling dot-walking and data integrity through referential integrity constraints.

Exam trap

ServiceNow often tests the distinction between a data type used in table schema design (Reference) and a server-side API class (GlideRecord), causing candidates to confuse the GlideRecord object with the reference field data type.

How to eliminate wrong answers

Option A is wrong because GlideRecord is a server-side JavaScript class used for database operations (like querying, inserting, updating records), not a column data type for table definitions. Option B is wrong because an Integer data type can only store numeric values, not a reference to another record; it cannot enforce referential integrity or provide dot-walking capabilities. Option C is wrong because a String data type stores arbitrary text and cannot establish a formal relationship between tables; it lacks the sys_id-based linking and referential integrity that a reference field provides.

198
MCQmedium

An admin created a new table 'u_custom_asset' with a reference field to 'cmdb_ci'. After creating a form, users report that when they select a CI, additional fields do not auto-populate as expected. What is the most likely cause?

A.The reference field lacks a reference qualifier or default value configuration for auto-population.
B.ACLs are blocking the read operation on the cmdb_ci table.
C.A business rule is missing on the reference field to trigger auto-population.
D.The cmdb_ci table is a system table and cannot be referenced from custom tables.
AnswerA

Correct: Auto-population is typically configured via reference qualifiers or default values.

Why this answer

Option C is correct because the table might not have a reference qualifier or default values configured, so auto-population does not occur. Option A is wrong because configuration items are standard tables. Option B is wrong because the reference field itself doesn't require a business rule for basic auto-population.

Option D is wrong because access controls are not preventing auto-population.

199
Multi-Selectmedium

Which TWO actions are valid for handling errors in a Flow Designer integration action? (Choose two.)

Select 2 answers
A.Configure the action to log error details to a local log table.
B.Use an 'if' condition to check the HTTP status and branch accordingly.
C.Return a specific error code as a flow variable.
D.Send an email notification to the system administrator using a notification action.
E.Set the action to automatically retry on failure without configuration.
AnswersA, B

Logging errors to a table is a common pattern.

Why this answer

Correct: B and C. Flow Designer allows writing to a log table and sending an email. Option A does not exist as standard output.

Option D is for conditions, not error handling. Option E is manual.

200
MCQhard

An organization has a custom table 'u_incident_task' that extends 'task'. They need to allow users to create records in this table from the 'Incidents' module. The 'u_incident_task' table should appear as a related list on the incident form. However, the related list is not showing the 'New' button. What is the most likely cause?

A.There is no reference field on 'u_incident_task' pointing to the incident table
B.The table is in a different application scope
C.The table does not extend 'incident'
D.The user does not have the required role
AnswerA

A reference field is needed to associate records and enable creation.

Why this answer

The 'New' button appears on a related list only when there is a reference field on the target table (u_incident_task) that points back to the source table (incident). Without this reference field, the platform cannot automatically populate the parent record's sys_id when creating a new child record, so it suppresses the 'New' button. This is a core requirement for related list creation in ServiceNow.

Exam trap

ServiceNow often tests the misconception that extending a table or having the correct role is sufficient for related list functionality, but the critical missing piece is the reference field that establishes the parent-child relationship.

How to eliminate wrong answers

Option B is wrong because application scope does not affect the visibility of the 'New' button on a related list; scopes control access to tables and scripts but not the related list button logic. Option C is wrong because extending 'task' is correct for a task-based table; extending 'incident' would be inappropriate and would not fix the missing 'New' button issue. Option D is wrong because roles control whether a user can see or interact with the related list, but the 'New' button's absence is a configuration issue, not a role-based permission issue.

201
MCQmedium

During development, a developer creates a new application module and adds a table 'x_abc_incident' with a reference field to the 'sys_user' table. The developer wants to ensure that when a user is deleted, all related incident records are also deleted. What database constraint should be configured on the reference field?

A.Cascade delete
B.No action
C.Restrict delete
D.Set null on delete
AnswerA

Cascade delete removes child records when parent is deleted.

Why this answer

Option A is correct because a cascade delete constraint ensures that when a record in the parent table (sys_user) is deleted, all child records in the referencing table (x_abc_incident) that have a foreign key pointing to that parent are automatically deleted. In ServiceNow, this is configured on the reference field's 'Delete constraint' property by selecting 'Cascade delete', which enforces referential integrity at the database level.

Exam trap

The trap here is that candidates often confuse 'Cascade delete' with 'Set null on delete' or 'Restrict delete', not realizing that only cascade delete actually removes the child records, while the others either block the parent deletion or leave orphaned data.

How to eliminate wrong answers

Option B (No action) is wrong because it means no automatic action is taken when a parent record is deleted; if a child record exists, the delete will fail or be blocked depending on the database engine, which does not meet the requirement to delete related incidents. Option C (Restrict delete) is wrong because it explicitly prevents the deletion of a parent record if any child records reference it, which is the opposite of the desired behavior. Option D (Set null on delete) is wrong because it sets the reference field to null in child records when the parent is deleted, rather than deleting the child records themselves, leaving orphaned incident records with no user reference.

202
MCQmedium

A company has a custom table 'u_employee' with fields: 'first_name', 'last_name', 'department'. They want to create a unique index on the combination of 'last_name' and 'department' to prevent duplicate entries. Where should this index be defined?

A.In the table schema map
B.In the table's dictionary record via the Indexes related list
C.In the dictionary entry for each field
D.In the sys_dictionary table directly
AnswerB

Indexes are added to the table's dictionary.

Why this answer

In ServiceNow, a unique index on a custom table is defined in the table's dictionary record via the Indexes related list. This is the correct location because ServiceNow uses the table's dictionary metadata to manage indexes, and the Indexes related list allows you to specify unique constraints directly on the table definition, ensuring the database enforces uniqueness on the combination of 'last_name' and 'department'.

Exam trap

The trap here is that candidates often confuse field-level dictionary entries (Option C) with table-level index configuration, mistakenly thinking a unique constraint can be set on individual field dictionary records rather than through the table's Indexes related list.

How to eliminate wrong answers

Option A is wrong because the table schema map is used for mapping external database schemas to ServiceNow tables, not for defining indexes. Option C is wrong because dictionary entries for individual fields store field-level metadata (e.g., type, length), but they cannot define composite unique indexes spanning multiple fields. Option D is wrong because the sys_dictionary table stores field definitions, not table-level index configurations; directly modifying sys_dictionary would bypass ServiceNow's intended metadata management and could cause data integrity issues.

203
MCQmedium

A ServiceNow developer is tasked with improving the performance of a custom incident form in the classic UI. The form includes a 'category' field that, when changed, triggers an onChange client script. This script uses a GlideRecord query to fetch related data from a large 'cmdb_ci' table (over 100,000 records) and populates a dependent field called 'subcategory' with relevant options. Users report that after selecting a category, the form freezes for 10-15 seconds before the subcategory field updates. The developer needs to maintain real-time updates based on the category selection. What is the best approach to resolve this performance issue while keeping the functionality?

A.Convert the onChange script to a UI Policy with a condition on category and a script action to perform the query.
B.Use a calculated field on the subcategory field that derives its value from a database view.
C.Replace the client script with a Scripted REST API that returns subcategory options, and make an asynchronous AJAX call from the client script to populate the field.
D.Move the query to a Business Rule that runs on 'before' and updates the subcategory field using setValue.
AnswerC

Correct: async AJAX avoids blocking the UI; server handles the heavy query.

Why this answer

Option C is correct because it offloads the heavy GlideRecord query from the client to the server via a Scripted REST API, while using an asynchronous AJAX call (e.g., GlideAjax) to avoid blocking the UI thread. This eliminates the 10-15 second freeze by preventing synchronous server-side processing on the client, maintaining real-time updates without freezing the form.

Exam trap

The trap here is that candidates often choose UI Policy (Option A) thinking it can run server-side logic, but UI Policies are purely client-side and cannot execute GlideRecord queries, leading to a misunderstanding of their scope.

How to eliminate wrong answers

Option A is wrong because UI Policies run on the client side and cannot perform GlideRecord queries; they are limited to simple field visibility/readonly conditions and cannot execute server-side database operations. Option B is wrong because calculated fields are evaluated on the server and do not provide real-time client-side updates based on a category change; they are static and cannot dynamically populate a dependent field's choice list. Option D is wrong because a Business Rule runs on the server after the record is saved, not in real-time on the client; it cannot update the subcategory field's options on the form before submission, and it would not resolve the client-side freeze.

204
Multi-Selecteasy

Which TWO of the following are types of UI Policies? (Choose two.)

Select 2 answers
A.On change
B.On load
C.On submit
D.On delete
E.On query
AnswersA, B

UI Policies can run when a field changes.

Why this answer

UI Policies in ServiceNow are client-side scripts that run on the browser to control the behavior of fields on a form. The 'On change' type triggers when a specified field's value changes, allowing dynamic field updates or visibility changes. The 'On load' type triggers when the form is initially loaded, enabling default value setting or field configuration before user interaction.

Exam trap

The trap here is that candidates often confuse UI Policy triggers with Business Rule triggers, mistakenly selecting 'On submit' or 'On query' because they are familiar server-side events, but UI Policies only support 'On load' and 'On change' as client-side events.

205
Drag & Dropmedium

Drag and drop the steps to create a new Scheduled Job in ServiceNow into the correct order.

Drag steps to the numbered slots on the right, or tap a step then tap a slot.

Steps
Order

Why this order

The correct order: navigate to Scheduled Jobs, create new, set name and type, define schedule, write script/select report, and submit.

206
MCQhard

The Business Rule above runs on the 'incident' table. It is set to run 'before' update. What is the most likely issue with this script?

A.The script should use 'current' instead of 'gr' to update records.
B.The script has a syntax error: missing semicolon after the while loop.
C.The script will cause a recursive loop because it updates incident records within a Business Rule that runs on the same table.
D.The script does not commit the changes because it uses 'gr.update()' instead of 'current.update()'.
AnswerC

Updating incident records inside a before update Business Rule on incident can trigger the rule again.

Why this answer

Option C is correct because updating the same table (incident) within a 'before update' Business Rule that runs on that table creates a recursive loop. Each time the script calls gr.update() on an incident record, it triggers the same Business Rule again, leading to infinite recursion until the system enforces a governor limit or stack overflow. ServiceNow detects and prevents such loops by throwing an error, but the design is fundamentally flawed.

Exam trap

ServiceNow often tests the concept of recursive loops in Business Rules, and the trap here is that candidates focus on syntax or object usage (like 'current' vs 'gr') instead of recognizing that any update to the same table within a before/after update rule will cause recursion unless explicitly prevented.

How to eliminate wrong answers

Option A is wrong because 'current' is the correct object to use for the record being updated in a 'before' Business Rule, but the issue here is not about which object to use—it's about the recursive update. Option B is wrong because the script does not show a syntax error; the while loop is syntactically valid (assuming proper braces), and missing semicolons in JavaScript do not cause the specific recursive loop problem described. Option D is wrong because 'gr.update()' does commit changes to the database; the problem is not about committing but about triggering the same Business Rule again, which 'current.update()' would also do if it updated the same table.

207
Drag & Dropmedium

Drag and drop the steps to create a new Catalog Item in ServiceNow into the correct order.

Drag steps to the numbered slots on the right, or tap a step then tap a slot.

Steps
Order

Why this order

The correct order: navigate to Maintain Items, create new, set category and details, add variables, and submit.

208
MCQhard

A business rule on the Task table uses 'current.assignment_group' in a condition. After cloning the application, the business rule fails with 'undefined' error for the assignment_group field. What is the most likely cause?

A.The assignment_group field does not exist on the Task table.
B.The script include that defines the field is missing.
C.The clone process incorrectly copies business rules.
D.The field was renamed in the cloned instance.
AnswerD

Correct; renaming would break the reference.

Why this answer

Option D is correct because cloning an application copies the business rule as-is, but if the assignment_group field was renamed in the cloned instance (e.g., from 'assignment_group' to 'assignment_group_new'), the condition referencing 'current.assignment_group' will fail with an 'undefined' error. The business rule still runs, but the field name no longer matches the database column, causing the script to reference a non-existent property on the GlideRecord object.

Exam trap

The trap here is that candidates often assume the clone process is faulty (Option C) or that the field is missing entirely (Option A), rather than recognizing that a renamed field causes a mismatch between the script's hardcoded field name and the actual database column name.

How to eliminate wrong answers

Option A is wrong because the assignment_group field does exist on the Task table by default in ServiceNow; if it were missing, the error would occur in the source instance as well, not just after cloning. Option B is wrong because assignment_group is a database column, not a script include; script includes define reusable server-side code, not field definitions. Option C is wrong because the clone process does copy business rules correctly; the issue is not with the copying mechanism but with the target instance's schema being different from the source.

209
MCQeasy

A company uses a scheduled import from an external database to update the user table nightly. Recently, the import has been failing with a timeout error after 30 minutes. The import set contains 50,000 records. What should the administrator do to resolve this issue?

A.Use a transform map to skip unnecessary fields.
B.Split the import into multiple smaller batches.
C.Increase the timeout value in the scheduled import configuration.
D.Upgrade the instance to a larger size.
AnswerB

Smaller batches each complete within the timeout, and the total processing remains feasible.

Why this answer

Option B is the best course of action because splitting the import into smaller batches reduces the processing time per batch and avoids timeout, addressing the root cause.

210
Multi-Selectmedium

Which THREE are required components of a Transform Map? (Choose three.)

Select 3 answers
A.Condition script
B.Data source
C.Source table (import set table)
D.Field mappings
E.Target table (where data is imported)
AnswersC, D, E

The source table is required for the transform map.

Why this answer

The correct answers are A, B, and D. A Transform Map requires a source table (the import set table), a target table (where data is imported), and field mappings. Condition scripts are optional, and data source is configured separately.

211
Multi-Selecteasy

Which TWO of the following are valid table types in ServiceNow?

Select 2 answers
A.Dictionary
B.Application
C.UI page
D.Extendible
E.Database view
AnswersD, E

Extendible tables allow other tables to inherit from them.

Why this answer

Options A and D are correct. 'Extendible' (tables that can be extended) and 'Database view' (virtual table) are table types. Option B is wrong because 'Application' is not a table type. Option C is wrong because 'Dictionary' is a table itself.

Option E is wrong because 'UI page' is a component.

212
MCQmedium

A developer notices that the business rule does not set the assignment group as expected when a new record is created with state 0. What is the most likely issue?

A.The script has a syntax error.
B.The assignment_group value is not a valid sys_id of a group.
C.The business rule runs after the record is saved, so updates are ignored.
D.The business rule condition is incorrect.
AnswerB

The hardcoded sys_id might not correspond to an existing group.

Why this answer

The most likely issue is that the assignment_group value provided in the script is not a valid sys_id of an existing group. In ServiceNow, the assignment_group field is a reference field to the sys_user_group table, and it must contain a valid sys_id. If the sys_id is invalid or does not exist, the field will not be set, and the business rule will appear to have no effect.

Exam trap

ServiceNow often tests the misconception that any string value can be assigned to a reference field, but in ServiceNow, reference fields require a valid sys_id or a display value that matches an existing record.

How to eliminate wrong answers

Option A is wrong because a syntax error would typically cause the business rule to fail entirely, often generating an error message in the system log, rather than silently not setting the assignment group. Option C is wrong because business rules can run before or after the record is saved; if the business rule runs after save, updates to the record are still applied as long as the script uses the current.update() method or modifies the record directly. Option D is wrong because an incorrect condition would prevent the business rule from running at all, but the developer notes the rule runs (state is set to 0) yet the assignment group is not set, indicating the condition is likely correct.

213
MCQmedium

After importing an update set from another instance, a scoped application shows multiple conflicts in Studio. What is the best first step to resolve?

A.Delete the application and re-import.
B.Review each conflict and choose the correct version.
C.Discard all local changes.
D.Accept all remote changes.
AnswerB

Correct. Proper conflict resolution requires manual review.

Why this answer

Option C is correct because reviewing each conflict and choosing the correct version ensures no unintended changes. Option A is wrong because blindly accepting remote changes may overwrite necessary local modifications. Option B is wrong because discarding local changes could lose important work.

Option D is wrong as it is drastic and unnecessary.

214
MCQmedium

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

A.When the incident state is 1.
B.Never.
C.Always.
D.When the incident state is not 1.
AnswerA

The condition checks if current.state equals 1.

Why this answer

Option A is correct because the UI Policy in the exhibit is configured with a condition that hides the 'assigned_to' field when the 'state' field equals 1 (typically 'New'). UI Policies run client-side and evaluate the condition in real time; when the condition is true, the field is hidden. The exhibit shows the condition 'state = 1' with the 'Hidden' attribute checked, so the field is hidden only when the incident state is 1.

Exam trap

The trap here is that candidates often confuse UI Policies with Business Rules or ACLs, assuming the condition applies server-side or that the field is hidden permanently, when in fact UI Policies are client-side and only apply while the condition is true on the form.

How to eliminate wrong answers

Option B is wrong because the UI Policy explicitly defines a condition that hides the field, so it is not 'never' hidden; it is hidden when the condition is met. Option C is wrong because the UI Policy does not apply unconditionally; it has a condition ('state = 1'), so the field is not hidden 'always' — only when the condition is true. Option D is wrong because the condition is 'state = 1', meaning the field is hidden when state is 1, not when state is not 1; the opposite logic would require a condition like 'state != 1'.

215
MCQmedium

A developer needs to capture the time when a field (assigned_to) was last changed. Which approach should be used?

A.Create a calculated field using a formula.
B.Create a business rule on 'after' update that sets a 'last_assigned' field when assigned_to changes.
C.Create a database trigger to log the change.
D.Use a dictionary override to enable auditing.
AnswerB

An after business rule can set a field on the same record or related record.

Why this answer

Option B is correct because a business rule configured on the 'after' update event can check if the 'assigned_to' field value has changed and then set a 'last_assigned' field to the current date/time. This approach is native to the platform, runs server-side, and ensures the timestamp is captured reliably without external dependencies.

Exam trap

The trap here is that candidates often choose calculated fields (Option A) thinking they can dynamically capture timestamps, but calculated fields are read-only and cannot persist a value when a field changes.

How to eliminate wrong answers

Option A is wrong because calculated fields (formula fields) are computed on the fly and cannot write or update a timestamp value when a field changes; they only display derived data. Option C is wrong because ServiceNow does not support direct database triggers; the platform abstracts database operations and uses business rules or flows instead. Option D is wrong because a dictionary override controls field-level metadata (like label or type) and does not capture change timestamps; auditing would log changes but requires enabling the audit trail and does not automatically populate a custom 'last_assigned' field.

216
MCQmedium

When designing a custom portal page, the developer notices that the page layout breaks on mobile devices. What is the most efficient approach to ensure responsiveness?

A.Add a media query for each device
B.Implement Bootstrap grid classes
C.Use fixed pixel widths
D.Use a single-column layout
AnswerB

Correct: Bootstrap grid classes are the standard responsive framework in Service Portal.

Why this answer

Service Portal uses Bootstrap for responsive design. Implementing Bootstrap grid classes is the standard and efficient method. Option A is not responsive.

Option C is more work and less efficient. Option D would work but does not leverage the built-in framework.

217
Multi-Selecthard

Which TWO are best practices for integrating with external systems via REST API in ServiceNow?

Select 2 answers
A.Avoid using the GlideRecordSecure API for REST endpoints.
B.Store credentials in a credential store or use OAuth for authentication.
C.Use basic authentication with username and password for all REST API requests.
D.Use the sysparm_query parameter to limit the number of records returned.
E.Always use HTTPS to encrypt data in transit.
AnswersB, E

Using a credential store or OAuth avoids hardcoding credentials and improves security.

Why this answer

Options B and C are best practices. Using HTTPS secures data in transit, and using OAuth or a credential store enhances security over basic authentication.

218
Matchingmedium

Match each ServiceNow application scope to its description.

Drag a concept onto its matching description — or click a concept then click the description.

Concepts
Matches

Visible and editable across all scopes

Isolated application with own tables and access controls

Built-in scope for system administration

Default scope for end-user interactions

Scope for plugin-provided applications

Why these pairings

Scopes define visibility and editability of application artifacts.

219
MCQmedium

A company is using an Import Set to load data from a CSV file into the Incident table. The CSV contains a column "Assigned to" with user names (e.g., "John Doe"). The transform map maps the "Assigned to" column to the "assigned_to" field on the Incident table. The import set runs successfully but the "assigned_to" field remains empty. What is the most likely cause?

A.The transform map's field mapping uses "Direct" type instead of "Reference" type.
B.The transform map's field mapping uses "Reference" type but the "Display value" checkbox is not selected.
C.The transform map is set to "Create and Update" but the "Coalesce" field is not set.
D.The "Assigned to" column header contains a space.
AnswerB

For reference fields, when mapping with a non-sys_id value (like a name), the "Display value" checkbox must be selected to resolve the value to the correct sys_id.

Why this answer

Option D is correct because when mapping to a reference field using display value, the "Display value" checkbox must be selected in the field mapping. Without it, ServiceNow attempts to map the value as a sys_id, which fails silently, leaving the field empty.

220
MCQmedium

When building a custom application using ServiceNow Studio, which of the following is NOT a recommended practice for version control?

A.Create a new application version for each major release.
B.Track changes using update sets.
C.Use application scope to isolate changes.
D.Directly edit system tables outside of the application scope.
AnswerD

This can lead to unintended side effects and is not controlled by the application versioning.

Why this answer

Option C is correct because directly editing system tables outside the application scope can cause conflicts and is not version-controlled within the application. Options A, B, and D are recommended practices.

221
Multi-Selectmedium

Which THREE factors should be considered when designing a Business Rule for optimal performance? (Select THREE)

Select 3 answers
A.Avoid using synchronous GlideAjax calls.
B.Limit the use of gs.log() statements in production.
C.Use GlideAggregate instead of GlideRecord for calculations.
D.Use 'current' and 'previous' instead of querying the database.
E.Set the Business Rule to run on 'before' if possible.
AnswersB, C, D

Logging can impact performance.

Why this answer

Option B is correct because excessive gs.log() statements in production can degrade performance by writing to the system log, which consumes I/O resources and can fill up the database. In ServiceNow, logging should be minimized or removed in production scripts to avoid unnecessary overhead, especially in high-volume Business Rules.

Exam trap

The trap here is that candidates may confuse client-side performance concerns (like synchronous GlideAjax) with server-side Business Rule optimization, or assume that running a rule 'before' always improves performance without considering the specific logic and context.

222
Multi-Selecthard

Which THREE of the following statements are true about ACLs? (Choose three.)

Select 3 answers
A.An ACL with 'require_role' set to true will only be checked after the user has at least one role in the ACL's role list.
B.If no ACL is defined for a table, all users have access to all records.
C.ACLs are evaluated in a deterministic order based on the type (record, field, etc.) and the script condition.
D.ACLs can be enforced on server-side scripts.
E.ACLs can be used to restrict access to specific records using condition scripts.
AnswersA, D, E

Require role means the user must have at least one of the specified roles.

Why this answer

Option A is correct because the 'require_role' attribute on an ACL record means the ACL rule is only evaluated after the system confirms the user has at least one of the roles listed in the ACL's role list. If the user has none of those roles, the ACL is skipped entirely, and the next ACL in the evaluation order is checked. This prevents unnecessary condition script execution for users who lack the prerequisite roles.

Exam trap

The trap here is that candidates often assume no ACL means full access (like a default permit), but ServiceNow's default is implicit deny, and they also confuse the evaluation order of ACLs, thinking it is based on condition script logic rather than the fixed sys_id order.

223
MCQeasy

Which of the following is a benefit of using ServiceNow Studio for application development?

A.It allows development directly in the production instance.
B.It requires no version control.
C.It automatically deploys applications to all instances.
D.It provides a guided interface to create application components.
AnswerD

Core benefit.

Why this answer

Option D is correct because Studio provides a guided interface for creating application components. Option A is incorrect because developing in production is not recommended. Option B is incorrect as development does not automatically deploy to all instances.

Option C is incorrect because Studio supports version control.

224
MCQeasy

A company needs to create a lookup table to store status codes for incident classification. Which approach is best practice?

A.Create a new table using the Label field type
B.Use a Choice field with the status codes and labels
C.Store the status codes as a single line of text field
D.Create a custom table with a reference field on the Incident table
AnswerB

Choice fields are built for simple, static lists and integrate well with reporting and UI policies.

Why this answer

Option B is correct because using a Choice field is standard for static lists. Option A is wrong because creating a table is overkill for simple lists. Option C is wrong because it loses referential integrity.

Option D is wrong because label field doesn't provide code-value pairs easily.

225
MCQeasy

What is the purpose of the 'Coalesce' field in a transform map?

A.To remove null values from the import.
B.To combine multiple fields into one.
C.To convert data types.
D.To use a field to match existing records and avoid duplicates.
AnswerD

Correct: Coalesce is used for deduplication.

Why this answer

The Coalesce field is used to specify which fields to use for matching existing records to avoid duplicates during import.

Page 2

Page 3 of 7

Page 4

All pages