Courseiva

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

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

Page 2

Page 3 of 7

Page 4
151
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

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.

152
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.

153
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.

154
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

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.

155
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

If the 'u_field' is defined as read-only (e.g., via dictionary attribute or ACL), the setValue method fails silently, meaning the value is not saved but no error is thrown. Option A is incorrect because the script appears syntactically correct. Option B is incorrect because setValue does exist on GlideElement.

Option D is incorrect because setValue is the appropriate method for setting field values; setDisplayValue is used for setting display values, not database values.

156
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.

157
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

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.

158
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

The correct approach is to use a client script with GlideAjax (Option B) because UI Policies run client-side and cannot directly perform complex server-side calculations. GlideAjax allows asynchronous calls to a server-side script include, enabling the client script to retrieve the result of a complex server-side calculation without a page refresh. Option A is incorrect because Business Rules run server-side and cannot be called directly from a UI Policy; they are triggered by database operations.

Option C is incorrect because UI Macros are used for reusable UI components, not for server-side logic. Option D is incorrect because UI Policy condition strings are limited to simple client-side expressions and cannot execute complex server-side calculations.

159
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

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.

160
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

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.

161
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

The script uses the setLimit(10) method, which restricts the GlideRecord query to return only 10 records, even though there are more matching records. Option A is incorrect because the script does not limit by session. Option B is incorrect because there is no filter for created today.

Option C is incorrect because the issue is about the limit, not joins.

162
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

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'.

163
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 C are correct. addQuery is the standard method for adding an AND condition to a GlideRecord query. addOrCondition is a valid method for adding an OR condition. Option A is wrong because addAndCondition is not a valid GlideRecord method. Option D (setCondition) is not a valid method.

Option E (addWhere) is not a valid method.

164
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

Studio automatically creates an update set for the application scope when the application is created. Option A is incorrect because the developer does not need to manually set the 'Update Set' field on each record; Studio automatically associates changes with the scope's update set. Option C is incorrect because update sets are used for scoped applications; each application scope has its own update set.

Option D is incorrect because Studio automatically creates and assigns the update set; manual creation is not required.

165
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

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.

166
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

It uses form sections to logically group fields (employee details, training details, completion information) and a UI policy to conditionally show the score field only when the training type is 'Exam'. This provides a clean, user-friendly, and maintainable solution. Option A is incorrect because relying on client scripts (onLoad and onChange) to hide fields is less maintainable and more complex than using UI policies.

Option B is incorrect because creating separate modules for each combination of fields is overly complex and not scalable. Option C is incorrect because instructing users to use filters does not provide a streamlined data entry experience.

167
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.

168
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.
AnswerA

Correct. The script is attached to the Load event, so it only runs once when the form loads and does not re-evaluate when the condition changes. Changing the event to Change will fix it.

Why this answer

The most likely reason because client scripts that need to react to a condition change must be set to run on 'Change' event rather than 'Load'. If the script runs only on 'Load', it executes once when the form loads and will not re-run when the condition changes, so the field remains visible. Option B is incorrect because the API for hiding fields (e.g., g_form.setVisible) is not deprecated.

Option C is incorrect because client scripts do not have a 'Run As' role; that applies to server-side scripts. Option D is incorrect because client scripts can access any field present on the form regardless of the field's scope.

169
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

Cross-scope privileges are the standard way to share tables between scoped applications in ServiceNow. Option A is incorrect because there is no 'Accessible from' field on tables. Option B is incorrect because exporting/importing XML is a one-time transfer, not a real-time sharing method.

Option D is incorrect because web services are not the best practice for table sharing; cross-scope privileges provide simpler and more integrated access.

170
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.

171
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.

172
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

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.

173
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.

174
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

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.

175
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.

176
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 3 answers
A.current.number
B.current.getUniqueValue()
C.current.get('sys_id')
D.current.getRow()
E.current.sys_id
AnswersB, C, E

Correct. `getUniqueValue()` is a GlideRecord method that returns the sys_id of the current record.

Why this answer

Options B, C, and E are all valid ways to reference the sys_id of a record in a business rule. Option B uses the `getUniqueValue()` method, which returns the sys_id even for new unsaved records. Option C uses `current.get('sys_id')` to retrieve the sys_id field value.

Option E directly accesses the `sys_id` field via dot notation. All three methods correctly return the unique identifier of the current record.

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.

177
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

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.

178
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

(Interval) is correct because an Interval trigger allows you to specify a repeat interval, such as every 60 minutes, which meets the requirement to run every hour. Option A (Date) runs once at a specific date/time. Option B (Run once) runs a single time.

Option D (Daily) runs once per day.

179
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

The condition script in the transform map runs for each record. If it returns false, the record is skipped without any error. This explains why some records are not inserted despite no errors.

Option A (data source filter) could also filter records, but the question specifically mentions a condition script, making D the most direct cause. Option B (incorrect field mappings) would typically result in mapping errors, not silent failure. Option C (business rule on target table) would usually generate errors or cause a rollback, not silent omission.

180
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, C, and D are valid approaches for modeling a many-to-many relationship in ServiceNow. Option A creates an intermediate table with reference fields, which is a standard relational method. Option C uses a GlideList field, which allows storing multiple references in a single field and can be used for many-to-many relationships.

Option D uses a multi-reference field, which is specifically designed for many-to-many relationships. Option B is invalid because a single 'Department' field cannot store multiple records. Option E is invalid because storing comma-separated sys_ids in a String field is not a recommended practice and breaks data integrity.

181
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

Integer fields in ServiceNow do not support the max_length attribute; that property is only applicable to string fields. The system rejects the dictionary override because max_length is invalid for an integer. Option A is wrong because labels can contain spaces.

Option C is wrong because 'integer' is correctly spelled; the issue is not a typo. Option D is wrong because the order of JSON properties does not matter in dictionary overrides.

182
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.

183
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

Reference qualifiers are defined in the 'Reference qual' field on the dictionary entry to filter records based on a reference field condition. Option A is incorrect because 'Reference specification' is used for setting the reference table, not for filtering with a qualifier. Option B is incorrect because 'Default value' sets a default value for the field, not a filter.

Option D is incorrect because 'Dependent fields' are used to define field dependencies, not reference qualifiers.

184
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

ServiceNow ACL types define the operation being restricted. Read, Write, Create, Delete, and Execute are common. Correctly pair each ACL with its function: Read for viewing, Write for modifying, Create for adding, Delete for removing, Execute for running scripts.

Common confusions involve swapping Delete and Execute.

185
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

When a script include queries a large table multiple times in a single transaction, the best practice is to minimize database round-trips. Using a single GlideRecord query with multiple conditions (combined via OR/AND) reduces the number of queries executed. Calling .getRowCount() at the end forces the query to execute once and caches the result, avoiding redundant queries for counts.

This is more efficient than separate queries (A), which each require a round-trip. createOrGetRecord (B) is designed for single-record operations and doesn't optimize multiple queries. setEncodeQuery(false) (D) disables encoding but does not improve performance for repeated calls.

186
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

Adding a filter condition 'active = true' in the report configuration ensures that only incidents where the active field is true are counted, eliminating duplicate counts from inactive records. Option B is incorrect because a business rule would modify data rather than filter the report. Option C is incorrect because removing the active field from the report does not filter records; it only hides the field display.

Option D is incorrect because grouping by active field would separate counts by active status but still count all records including inactive ones.

187
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

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.

188
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

Reference fields on custom tables do not auto-populate other fields unless configured with a reference qualifier or default value. ACLs (B) would block read access, not auto-population. A business rule (C) is not necessary for basic auto-population.

The cmdb_ci table (D) can be referenced from custom tables.

189
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: A and B. Option A is valid because Flow Designer allows logging error details to a local log table for troubleshooting. Option B is valid because you can use an 'if' condition to check the HTTP status code and branch to handle errors accordingly.

Option C is incorrect because returning an error code as a flow variable does not handle the error; it only passes the value. Option D is incorrect because sending an email notification is a separate action, not an error handling action within the integration step. Option E is incorrect because automatic retry requires explicit configuration; it is not enabled by default.

190
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.

191
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

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.

192
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.

193
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

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.

194
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.

195
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
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

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

196
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

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.

197
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
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

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

198
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

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.

199
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

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.

200
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 C, D, and E. A Transform Map requires a Source table (the import set table), Field mappings to define how data is mapped, and a Target table where the data is imported. Condition scripts (A) are optional, and the Data source (B) is configured separately before the Transform Map.

201
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 D and E are correct. 'Extendible' (tables that can be extended) and 'Database view' (virtual tables based on SQL views) are valid table types in ServiceNow. Option A is incorrect because 'Dictionary' is a table that stores system metadata, not a table type. Option B is incorrect because 'Application' is not a table type; applications contain tables.

Option C is incorrect because 'UI page' is a UI component, not a table type.

202
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.

203
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

Reviewing each conflict and choosing the correct version allows the developer to selectively merge changes, preserving important modifications while discarding unwanted ones. Option A is wrong because deleting and re-importing disregards the resolution of conflicts and may lose customizations. Option C is wrong because discarding all local changes removes any work done locally without consideration.

Option D is wrong because accepting all remote changes may overwrite intentional local customizations.

Exam trap

The trap here is to think that the simplest or most drastic action (like discarding all changes or re-importing) is the best first step, but the correct approach is to methodically review and resolve each conflict.

204
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

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'.

205
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

A business rule running 'after' update can check if the 'assigned_to' field value changed (using previous()) and set a 'last_assigned' field to the current date/time (gs.nowDateTime()). This server-side, platform-native approach reliably captures the timestamp when the field changes. Option A (calculated field) is incorrect because calculated fields are read-only and derive values from other fields; they cannot set a timestamp when a field changes.

Option C (database trigger) is not recommended as it bypasses the ServiceNow platform and could cause synchronization issues. Option D (dictionary override to enable auditing) is incorrect because auditing tracks all changes to the field in the audit table but does not store the last change timestamp in a separate field on the record; it would require querying the audit log to find the last change.

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.

206
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.

207
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 E are best practices. Storing credentials in a credential store or using OAuth (option B) enhances security over basic authentication (option C is incorrect). Using HTTPS (option E) encrypts data in transit, protecting it from interception.

Option A is wrong because GlideRecordSecure API is actually recommended for secure REST endpoint operations. Option D is incorrect because the sysparm_query parameter filters records but does not limit the number of records returned; use sysparm_limit for that purpose.

208
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 in ServiceNow determine where application artifacts can be seen and modified. Global scope allows access and editing from any application, while scoped applications restrict visibility to within the application. System scope contains core platform artifacts that are available to all applications.

Common confusions include mixing global and scoped definitions.

209
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

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.

210
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

Directly editing system tables outside of the application scope bypasses version control and can cause conflicts, making it not a recommended practice. Options A, B, and C are all recommended practices for version control in ServiceNow Studio.

211
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

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.

212
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, B, E

Correct: 'require_role' ensures the ACL is only evaluated if the user has at least one of the listed roles, preventing unnecessary script execution.

Why this answer

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. Option B is correct: by default, if no explicit ACL is defined for a table, the default ACL grants read access to all users. Option C is incorrect: ACLs are evaluated in a deterministic order based on type and the 'order' field, not the script condition.

Option D is incorrect: ACLs are enforced on data access operations (e.g., GlideRecord queries), but they are not directly 'enforced on server-side scripts'—scripts can bypass ACLs if run with elevated privileges. Option E is correct: condition scripts on table ACLs can restrict access to specific records.

Exam trap

Candidates often misunderstand that if no ACL is defined for a table, all users have read access by default. Also, ACLs are not 'enforced on server-side scripts' but on the underlying database operations. Condition scripts on table ACLs do allow record-level restrictions.

213
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

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.

214
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

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 creating a custom table with a reference field on the Incident table adds unnecessary complexity when a simple Choice field suffices.

215
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.

216
MCQhard

A company wants to customize the theme of their ServiceNow instance to match corporate branding, including colors and fonts. Which method is the most maintainable and upgrade-safe?

A.Modify the system CSS files directly via the UI.
B.Override CSS in a custom stylesheet and include it in the page using a UI Macro.
C.Inject custom CSS using a UI Script.
D.Use the 'Application' > 'Global CSS and Theme' module to define overrides.
AnswerD

This is the supported way to customize themes, with built-in upgrade protection.

Why this answer

Using the Global CSS and Theme system allows customizations in a dedicated module that survives upgrades, unlike direct modifications of system CSS.

217
MCQhard

A custom table 'u_asset' stores asset data. The developer wants to add a field that calculates the depreciation value based on acquisition date and cost. Which field type should be used?

A.Lookup select
B.Currency
C.Calculated
D.Condition string
AnswerC

A calculated field can use a script to compute a value dynamically.

Why this answer

A calculated field using a script (e.g., calculated value via business rule or calculated field attribute) can compute depreciation. Option A is wrong because Lookup select is for selection lists, not dynamic calculation. Option B is wrong because Currency is just a data type, not dynamic calculation.

Option D is wrong because Condition string is for conditions.

218
MCQeasy

A developer wants to restrict access to a specific record in the incident table so that only members of the 'ITIL' group can read it. Which type of ACL should be created?

A.Create a field-level ACL on the sys_id field.
B.Create a record-level ACL with a condition that checks group membership.
C.Create a business rule to delete the record for unauthorized users.
D.Create a UI policy to hide the record.
AnswerB

Record-level ACLs control read, write, delete on the entire record.

Why this answer

A record-level ACL with a condition that checks group membership is the correct approach because it controls read access to the entire record based on the user's group membership. In ServiceNow, record-level ACLs evaluate conditions against the user's session and the record's data, and if the condition (e.g., 'member of ITIL group') is false, the record is hidden from the user entirely. This directly meets the requirement to restrict read access to a specific incident record for only the 'ITIL' group.

Exam trap

The trap here is that candidates often confuse UI policies (client-side) with ACLs (server-side) and think hiding the record in the UI is sufficient, but ServiceNow requires server-side ACLs to truly secure data from all access methods.

How to eliminate wrong answers

Option A is wrong because a field-level ACL on the sys_id field would only restrict access to that specific field, not the entire record; the user could still see other fields of the incident. Option C is wrong because a business rule that deletes the record for unauthorized users would permanently remove the data, which is not the goal (the requirement is to restrict read access, not delete data). Option D is wrong because a UI policy only controls the visibility or behavior of fields on a form in the UI; it does not enforce security at the server level, so a user could still access the record via other channels like web services or reports.

219
Multi-Selecteasy

Which TWO of the following are valid ways to trigger a business rule? (Choose two.)

Select 2 answers
A.Form load
B.Insert
C.Timer event
D.Update
E.Inbound email receipt
AnswersB, D

Business rules can run on insert.

Why this answer

Business rules in ServiceNow can be triggered by database operations such as Insert and Update. These are the core 'when to run' conditions that fire the rule before or after a record is created or modified in the database. Options B and D are correct because they directly correspond to these fundamental database operations.

Exam trap

The trap here is that candidates confuse client-side events (like form load) or other system actions (like inbound email) with the actual database operation triggers that business rules use, leading them to select options that are not valid server-side triggers.

220
MCQhard

A developer is writing a scripted REST API endpoint that returns a list of users. The requirement is to return only users who are in the 'IT' department and have a role of 'itil' or 'admin'. The endpoint uses GlideRecord. Which query condition is most efficient?

A.gr.addQuery('department', 'IT'); gr.addQuery('role', 'itil'); gr.addOrCondition('role', 'admin');
B.gr.addQuery('department', 'IT'); gr.addQuery('role', 'itil');
C.gr.addQuery('department', 'IT'); gr.query(); then iterate and check role.
D.gr.addQuery('department', 'IT'); gr.addQuery('role', 'itil,admin');
AnswerA

Correctly uses addOrCondition for OR within the same department condition.

Why this answer

It uses addQuery('department', 'IT') to filter by department, then addQuery('role', 'itil') and addOrCondition('role', 'admin') to create an OR condition for roles. This ensures only users in the IT department with either the itil or admin role are returned efficiently using GlideRecord's built-in OR logic. Option B is wrong because it only returns users with both department IT and role itil, missing those with role admin.

Option C is wrong because it's inefficient to query all IT department users then iterate to check role in script; better to use an encoded query or OR condition directly. Option D is wrong because passing 'itil,admin' as a single string would be interpreted as a literal value, not an OR condition; GlideRecord would look for users whose role field equals exactly 'itil,admin', which is incorrect.

221
Multi-Selectmedium

Which TWO of the following are true about client-callable script includes? (Choose two.)

Select 2 answers
A.They must have a function that returns a value.
B.They can only be used in scoped applications.
C.They must be accessed using the GlideAjax API.
D.They cannot be used in UI policies.
E.They can be called directly without GlideAjax if marked as synchronous.
AnswersA, C

The client script expects a response from the script include.

Why this answer

Client-callable script includes must have at least one function that returns a value. This is required because the GlideAjax API processes the response asynchronously and expects a return value to be sent back to the client via the callback function. Without a return value, the client-side callback would receive undefined or null, breaking the intended data flow.

Exam trap

ServiceNow often tests the misconception that client-callable script includes can be called synchronously or directly, but the GlideAjax API is mandatory for all client-side calls to server-side script includes, and there is no synchronous alternative.

222
MCQhard

A company has developed a custom Scripted REST API endpoint that processes incoming orders and then makes synchronous outbound REST calls to an external shipping system for validation. During testing with low concurrency, the endpoint works correctly. However, in production with high concurrency, the endpoint frequently times out and returns 504 errors to the caller. The performance team has confirmed that the external shipping system is responsive and the network latency is acceptable. Which course of action should the development team take to resolve the timeout issue?

A.Deploy additional MID Servers to distribute the outbound call load.
B.Implement a caching layer to store shipping validation results and avoid repeated calls to the external system.
C.Increase the timeout value in the outbound REST Message record to accommodate peak loads.
D.Refactor the script to make asynchronous HTTP requests and process the shipping validation response using a separate queue or business rule.
AnswerD

Asynchronous requests free the script while waiting for the external response, allowing the instance to handle more concurrent requests without blocking.

Why this answer

The synchronous HTTP request blocks the script until the response is received. With high concurrency, this leads to thread starvation and timeouts. The best solution is to use asynchronous HTTP requests and handle the response via a queue or event mechanism, freeing the script to process other requests.

223
MCQmedium

Refer to the exhibit. A UI Policy is configured to run 'On Condition' with the condition 'Urgent is true'. Users report that when they check the 'Urgent' checkbox, the 'Reason' field does not become mandatory. What is the most likely cause?

A.The UI Policy should be set to 'On Load' only.
B.The script uses getValue('urgent') but the field name is 'u_urgent'.
C.The condition should be set to 'Urgent is false'.
D.The script should use g_form.setValue instead of setMandatory.
AnswerB

The field name in the UI Policy condition is 'Urgent' which corresponds to 'u_urgent' in scripts.

Why this answer

The script uses getValue('urgent') but the actual field name is 'u_urgent' as per the condition (UI Policy condition uses 'Urgent' which maps to 'u_urgent' in the database). The mismatch causes the script to not trigger properly.

224
Multi-Selectmedium

Which THREE of the following are best practices when writing business rules? (Choose three.)

Select 3 answers
A.Set the Order field to control execution sequence
B.Use condition scripts to keep scripts clean
C.Use gs.sleep() to wait for other processes
D.Avoid long-running synchronous business rules
E.Use GlideAggregate for updating records
AnswersA, B, D

Order ensures business rules run in the desired sequence.

Why this answer

Setting the Order field on a business rule controls the sequence in which multiple business rules execute on the same table and event. This is critical when rules have dependencies, ensuring that prerequisite logic (e.g., data validation) runs before subsequent logic (e.g., field updates). Without explicit ordering, execution order is undefined and may vary between instances.

Exam trap

The trap here is that candidates confuse GlideAggregate with GlideRecord and assume it can perform updates, or they think gs.sleep() is a harmless delay when it actually blocks the entire script execution thread.

225
MCQhard

A large enterprise runs a ServiceNow instance with a heavily customized Task table. The 'Task' table has been extended to create 'u_WorkOrder', which is used by over 50,000 active records. Recently, users complain that when they open a WorkOrder record, the form takes more than 10 seconds to load. On investigation, you discover that the 'u_WorkOrder' table has 150 fields, many of which are UI policies and client scripts that trigger on load. Additionally, there is a business rule that runs 'after query' and dot-walks through multiple related tables (e.g., calling 'current.assigned_to.department.manager.email' in a loop for each record). The instance uses SQL Server as its database. Which action would most effectively reduce the form load time without losing required functionality?

A.Change the order of the business rule to 100 so that it runs after other rules
B.Rewrite the after query business rule to use GlideAggregate or avoid dot-walking in loops, and consider caching the dot-walked data
C.Remove 50 of the 150 fields from the table to reduce data retrieval
D.Convert the after query business rule to an after update business rule
AnswerB

The dot-walking in a loop per record is extremely slow. Using GlideAggregate for batch queries or caching results in a system property can drastically reduce query time.

Why this answer

The most effective because it directly addresses the root cause: the after query business rule performing expensive dot-walking for every record. Rewriting it to use GlideAggregate or caching the dot-walked data will significantly reduce query time. Option A is wrong because changing the order of the business rule does not reduce its workload; it still runs after query.

Option C is wrong because removing fields may cause loss of required functionality and does not target the primary performance issue (the business rule). Option D is wrong because converting to after update changes the trigger but does not solve the load-time problem; form load is a query action, not an update.

Page 2

Page 3 of 7

Page 4

All pages