CCNA Working with Data Questions

69 questions · Working with Data · All types, answers revealed

1
Multi-Selecthard

A developer is designing a data architecture for a multi-tenant environment where each company's data must be isolated. Which TWO strategies can achieve this? (Choose two.)

Select 2 answers
A.Implement domain separation.
B.Use access control lists (ACLs) on each record.
C.Create database views that filter data by company.
D.Add a condition to every GlideRecord query to filter by company.
E.Use separate tables for each company.
AnswersA, E

Domain separation natively partitions data by domain.

Why this answer

Options B and E are correct. Using domain separation provides built-in data isolation. Creating separate tables per company physically isolates data.

Option A is wrong because ACLs alone can be complex and may not fully isolate. Option C is wrong because database views do not enforce isolation. Option D is wrong because conditions on queries rely on correct coding, not architecture.

2
MCQhard

During a data migration, a developer runs a GlideRecord query to load 100,000 records from an external source into the 'incident' table. The script times out after 60 seconds. Which optimization technique would be most effective to avoid the timeout?

A.Use setLimit(1000) to reduce the number of records per execution.
B.Use GlideAggregate to count records before insertion.
C.Increase the transaction timeout setting in the system properties.
D.Use GlideRecordBatch or a scheduled job to process records in smaller batches.
AnswerD

Correct: Batch processing avoids long-running transactions.

Why this answer

Option D is correct because using GlideRecordBatch or a scheduled job with incremental processing breaks the workload into manageable chunks, preventing timeout. Option A is wrong because increasing timeout is a workaround, not efficient. Option B is wrong because setLimit reduces the number of records, but data migration requires all records.

Option C is wrong because GlideAggregate is not for inserts.

3
MCQhard

A company has a custom table 'u_training_course' with a reference field to 'sys_user' named 'u_instructor'. The requirement is that only users with the 'instructor' role can be selected in this field. Which approach should be used to enforce this?

A.Create a business rule on the table to check the role and reject invalid selections
B.Add a reference qualifier on the field to filter users with the 'instructor' role
C.Use a client script to validate the selection before form submission
D.Configure an ACL on the reference field to restrict write access
AnswerB

Reference qualifiers restrict the list dynamically.

Why this answer

Option B is correct because a reference qualifier is the declarative way to filter the records available in a reference field on ServiceNow. By adding a condition like 'roles=instructor' to the reference qualifier of the 'u_instructor' field, only users with the 'instructor' role will appear in the lookup, enforcing the requirement at the database query level without custom scripting.

Exam trap

The trap here is confusing client-side validation (client scripts) or post-save checks (business rules) with the correct declarative filtering mechanism (reference qualifier), which is the intended and most efficient approach for restricting reference field choices in ServiceNow.

How to eliminate wrong answers

Option A is wrong because a business rule runs server-side after the record is saved, which would allow invalid selections to be temporarily stored and require a rollback, creating a poor user experience and unnecessary database writes. Option C is wrong because a client script runs in the browser and can be bypassed by disabling JavaScript or sending direct API calls, so it is not a secure enforcement mechanism. Option D is wrong because an ACL on the reference field controls write access to the field itself (who can modify it), not the values that can be selected within the field.

4
MCQhard

A developer is tasked with creating a reference field on a custom table that shows only 'Windows' servers from the 'cmdb_ci_server' table. What is the proper way to implement this?

A.Use a choice list instead of a reference field.
B.Create a business rule that filters the reference field.
C.Create a dynamic filter on the form.
D.Define a reference qualifier on the field with the condition 'os_type=Windows'.
AnswerD

Correct: Reference qualifiers filter the picker list.

Why this answer

Option C is correct because defining a reference qualifier with the condition 'os_type=Windows' restricts the selection. Option A is wrong because a business rule would not restrict the picker. Option B is wrong because a choice list is not a reference.

Option D is wrong because a dynamic filter is not a standard mechanism.

5
Multi-Selecthard

Which THREE conditions must be met for a user to successfully see a record in a ServiceNow list view?

Select 3 answers
A.The user has write permission on the table.
B.The user has read permission on the table via an ACL.
C.The user has configured a personalized list view for the table.
D.The user has a role that grants access to the table, if role-based access is configured.
E.The record is not excluded by a condition in the application's default filter.
AnswersB, D, E

Read ACL is necessary to view records.

Why this answer

Option B is correct because ServiceNow uses Access Control Lists (ACLs) to enforce read permissions on tables. Without a read ACL that evaluates to true for the user, the system will not display any records from that table in a list view, regardless of other conditions.

Exam trap

The trap here is that candidates often confuse the requirement for a personalized list view (a display preference) with the mandatory security and filtering conditions (ACL read access and default filter) that actually control record visibility.

6
MCQmedium

A developer needs to find the number of open incidents assigned to each assignment group. Which GlideAggregate script correctly groups by assignment group and counts?

A.var ga = new GlideAggregate('incident'); ga.addQuery('active', true); ga.addAggregate('COUNT', 'assignment_group'); ga.query();
B.var ga = new GlideAggregate('incident'); ga.addQuery('active', true); ga.groupBy('assignment_group'); var count = ga.getRowCount();
C.var ga = new GlideAggregate('incident'); ga.get('active', true); ga.groupBy('assignment_group'); ga.addAggregate('COUNT');
D.var ga = new GlideAggregate('incident'); ga.addQuery('active', true); ga.addAggregate('COUNT'); ga.groupBy('assignment_group'); ga.query();
AnswerD

Correctly queries, groups, and aggregates.

Why this answer

Option A is correct because it adds a query for open incidents, groups by assignment_group, and uses addAggregate('COUNT'). Option B is wrong because it uses getRowCount() incorrectly. Option C is wrong because addAggregate('COUNT', 'assignment_group') is not a valid way to group.

Option D is wrong because it uses get() instead of query().

7
Multi-Selecthard

Which THREE of the following are valid ways to reduce the number of database queries when processing multiple records in a script?

Select 3 answers
A.Use dot-walking to access related table fields.
B.Use multiple GlideRecord queries for each record.
C.Use GlideAggregate for aggregation instead of iterating.
D.Use getValue() to retrieve field values individually.
E.Use GlideRecord's get() method with a sys_id set.
AnswersA, C, E

Correct: Dot-walking uses the same query if the reference is already loaded.

Why this answer

Options B, D, and E are correct. Using sets, dot-walking, and GlideAggregate all reduce queries. Option A is wrong because separate queries increase queries.

Option C is wrong because getValue does not reduce queries.

8
MCQhard

A large enterprise is importing 500,000 asset records from an external inventory system using a scheduled data import into the alm_asset table. The transform map uses a coalesce on the 'asset_tag' field to match existing records. The 'asset_tag' field in the target table is a string field with a unique index. The import set table has no unique index on any field. The transform map has 'Enable Duplicate Detection' checked. After the first import, the team notices that many duplicate records were created instead of updating existing ones. There are no errors in the import log. The source data contains only unique asset_tag values. What is the most likely cause of the duplicates?

A.The source data contains multiple records with the same 'asset_tag' but different case.
B.The 'Enable Duplicate Detection' checkbox is not properly configured.
C.The import set table lacks a unique index on the 'asset_tag' field.
D.The coalesce field mapping is incorrectly mapped to the 'asset_tag' field.
AnswerC

Correct: A unique index on the import set table is required for the duplicate detection mechanism to work within the import set; without it, duplicates can be created.

Why this answer

Option B is correct because for duplicate detection to work properly, the import set table must have a unique index on the coalesce field. Without it, the system cannot detect duplicates within the same import set, leading to multiple rows being inserted into the target. Option A is incorrect because the mapping is likely correct if coalesce is set.

Option C is incorrect because the checkbox is checked. Option D is incorrect because the source data has unique asset_tag values, so case mismatch is not the issue.

9
MCQhard

A developer runs a GlideAggregate to count the number of incidents per category. The query returns unexpected results: some categories show zero counts but should have incidents. What is the most likely cause?

A.The developer used addAggregate('COUNT', 'category') instead of addAggregate('COUNT').
B.The developer must use addQuery('active', true) to include only active incidents.
C.The developer forgot to call the query() method after grouping.
D.The GlideAggregate cannot handle null values in the grouped field.
AnswerC

Without query(), no records are processed.

Why this answer

Option C is correct because if the query is not started properly (missing query() call), no results are returned. Option A is wrong because GlideAggregate can handle null categories. Option B is wrong because addAggregate('COUNT') is correct.

Option D is wrong because GlideAggregate does not require addQuery for counts.

10
MCQmedium

A service desk manager wants to create a report that shows the number of incidents assigned to each support group over the past month. The manager wants the report to update automatically every week and be emailed to the team leads. The developer needs to implement this efficiently without creating custom tables or scheduled jobs. Which approach should the developer take?

A.Create a database view that aggregates the data and schedule a data export.
B.Create a scheduled job that runs a report and emails the results.
C.Create a report using the 'Report' module and schedule it to run weekly with email delivery.
D.Create a transform map to import the incident data into a custom table and then report.
AnswerC

Correct: The Report module allows scheduling and emailing of reports directly, meeting all requirements efficiently.

Why this answer

Option C is correct because ServiceNow reports can be scheduled to run at specific intervals and automatically emailed to recipients. This is the standard, built-in functionality that meets the requirements without additional complexity. Option A is a workaround but adds unnecessary overhead.

Option B creates a database view, but scheduling a data export is not the intended use. Option D involves creating custom tables and transforms, which is overkill and not efficient.

11
MCQeasy

A company is importing data from a CSV into the 'cmdb_ci' table using an Import Set Row transform map. After running the import, some records were not created. The transform map has a 'Coalese' field set to true on the 'name' field. What is the most likely reason for records not being created?

A.The transform map has incorrect field mappings for the CSV columns.
B.The 'Coalese' field is set to true on the 'name' field, so existing records are updated instead of new ones created.
C.The target table has a data policy that prevents insert from import sets.
D.The CSV file has missing fields that are mandatory on the target table.
AnswerB

Coalesce uses the field to match existing records; if matched, it updates rather than inserts.

Why this answer

Option B is correct because coalese=true on name means if a record with the same name exists, it will update instead of insert. If the name matches an existing record, no new record is created. Option A is wrong because missing fields trigger errors, not silent failure.

Option C is wrong because field mapping issues cause different problems. Option D is wrong because coalesce is for matching, not data type.

12
Multi-Selectmedium

Which THREE are best practices when working with data imports via Import Sets? (Choose three.)

Select 3 answers
A.Ensure all target fields are mapped to avoid missing data.
B.Use the 'Coalese' field to prevent duplicate records.
C.Map import set rows directly to the target table columns without using a transform.
D.Use a staging table to validate data before transforming.
E.Skip creating a transform map to speed up the import.
AnswersA, B, D

Complete mapping prevents data loss.

Why this answer

Options A, D, and E are correct. Using a staging table is a best practice to validate data before transform. Mapping all fields reduces errors.

Setting coalese ensures duplicates are handled. Option B is wrong because skipping transform map creation would bypass transforms. Option C is wrong because direct mapping to target table without transform is not standard; transforms allow data manipulation.

13
MCQmedium

A ServiceNow developer is working on a custom application that tracks employee training completions. The application has a table 'u_training' with fields: u_name (string), u_completion_date (date), u_employee (reference to sys_user). The requirement is to automatically send an email to the employee one week before the training completion date. The developer created a scheduled job that runs daily and queries for trainings where the completion date is exactly 7 days from today. However, the email is not being sent. The developer has verified the email notification is configured correctly and the scheduled job runs without errors. The script uses GlideRecord to query the table. What is the most likely reason the email is not sent?

A.The scheduled job is running in a different time zone than the completion date field.
B.The scheduled job runs with a system user that does not have read access to the 'u_training' table.
C.The email notification requires an ACL that the system user does not have.
D.The 'u_completion_date' field is a date/time field but the script compares using date only.
AnswerB

If the job's user lacks read ACL, the query returns no records.

Why this answer

The most likely reason the email is not sent is that the scheduled job runs with a system user that lacks read access to the 'u_training' table. In ServiceNow, scheduled jobs execute under a specific user context (often the 'system' user or the user who created the job). If that user does not have the required read ACL on the table, the GlideRecord query will return zero records, even though the job runs without errors and the email notification is correctly configured.

The developer verified the email configuration and job execution, but did not check the security context of the running job.

Exam trap

The trap here is that candidates often focus on date comparison logic or time zone issues, but the real hidden cause is the security context of the scheduled job, which is a subtle but critical concept in ServiceNow development.

How to eliminate wrong answers

Option A is wrong because time zone differences affect date/time comparisons only if the script uses date/time values without proper conversion; however, the query compares dates using 'exactly 7 days from today' with a date-only field, and ServiceNow's scheduled job runs in the system time zone by default, which is consistent with the database time zone. Option C is wrong because the email notification itself does not require an ACL; the issue is that no records are retrieved to trigger the notification, not that the notification fails due to ACLs. Option D is wrong because if 'u_completion_date' were a date/time field, comparing with date-only would still match records where the time portion is midnight, and the scheduled job's daily run would still find matches; the core problem is the lack of read access, not the field type.

14
MCQeasy

A developer wants to restrict the values in a choice field based on the value of another field on the same record. Which tool should be used?

A.Data policy with conditions.
B.UI policy with 'Choice' action set to 'Set choices' conditionally.
C.Reference qualifier on the choice field.
D.Client script that hides or shows options.
AnswerB

UI policies can dynamically adjust choice lists based on field values.

Why this answer

Option C is correct because a UI policy can conditionally set the values of a choice field on the client side. Option A (data policy) is server-side and cannot dynamically change choices. Option B (client script) can accomplish this but UI policy is the standard declarative approach.

Option D (reference qualifier) is for reference fields, not choice fields.

15
Multi-Selecteasy

Which TWO methods are commonly used to prevent performance issues when using GlideRecord in a client script?

Select 2 answers
A.Use GlideRecord directly in client scripts.
B.Use synchronous GlideRecord queries for immediate results.
C.Use a business rule instead to perform the query.
D.Use GlideAjax to call a script include for server-side processing.
E.Limit the number of records retrieved using setLimit().
AnswersD, E

Correct: Client scripts should avoid direct GlideRecord calls.

Why this answer

Options A and C are correct. Using GlideAjax for server-side and limiting results are best practices. Option B is wrong because synchronous calls are blocking.

Option D is wrong because business rules should be avoided for client scripts. Option E is wrong because GlideRecord is not available in client scripts directly.

16
MCQmedium

A ServiceNow instance is configured with a custom table 'u_asset_history' that stores historical records for asset changes. This table has a reference field 'u_asset' pointing to the 'alm_asset' table, and a date field 'u_change_date'. The application uses a business rule that runs on 'alm_asset' after update, querying the 'u_asset_history' table to find the most recent change for that asset. The business rule is declared as 'async' to improve performance. However, recently the async business rule has been failing frequently with an 'async queue limit reached' error. The instance has default configuration for transaction quotas. The team suspects that the async queue is getting overloaded because many asset updates are happening simultaneously. Which action should the administrator take to resolve this issue while minimizing impact on other processes?

A.Add an index on the 'u_asset' and 'u_change_date' fields in the 'u_asset_history' table to optimize the query.
B.Increase the system property 'glide.scope.async.quota' to allow more async transactions.
C.Rewrite the business rule to run synchronously with a background script to avoid async queue limits.
D.Disable the business rule and implement a scheduled job to perform the same logic during off-peak hours.
AnswerB

Increasing the async quota allows more concurrent async transactions, resolving the 'async queue limit reached' error.

Why this answer

The error 'async queue limit reached' indicates that the instance's asynchronous transaction queue is full, which is a quota issue. Increasing the system property 'glide.scope.async.quota' raises the maximum number of concurrent asynchronous transactions allowed, directly addressing the overload without changing the business logic or impacting other processes. This is the correct approach because the business rule is already optimized to run asynchronously for performance, and the root cause is a capacity limit, not a query or design flaw.

Exam trap

ServiceNow often tests the distinction between performance optimization (indexing) and capacity management (quotas), leading candidates to mistakenly choose indexing when the error is explicitly a queue limit, not a slow query.

How to eliminate wrong answers

Option A is wrong because adding an index on 'u_asset' and 'u_change_date' would optimize query performance but does not resolve the async queue capacity limit; the error is about transaction quotas, not query speed. Option C is wrong because rewriting the business rule to run synchronously would block the triggering transaction and degrade user experience, defeating the purpose of using async for performance; it also does not address the queue limit. Option D is wrong because disabling the business rule and using a scheduled job would introduce a delay in recording asset history, breaking real-time tracking requirements, and does not solve the underlying queue overload issue.

17
MCQmedium

A company requires that when the 'state' field on an incident is set to 'Resolved', the 'resolution_code' field must be populated. Which mechanism should be used to enforce this rule?

A.Client script that checks the state and pops up a message.
B.UI policy that sets the resolution_code field mandatory.
C.Business rule with a condition on state change.
D.Data policy with condition state = 'Resolved' and mandatory resolution_code.
AnswerD

Data policies provide server-side validation for field requirements.

Why this answer

Option B is correct because a data policy can enforce field requirements on server-side updates. Option A (business rule) could also work but data policies are specifically designed for field-level validation. Option C (client script) is client-side only.

Option D (UI policy) is client-side and can be bypassed.

18
MCQhard

An administrator notices that a scheduled job, 'Update Asset Status', fails every night with a 'Script timeout' error. The job updates a large number of records in the Asset table. Which approach should the administrator take to resolve the timeout issue?

A.Add a business rule to run asynchronously for each update
B.Increase the timeout value in the scheduled job configuration
C.Split the job into multiple smaller jobs running sequentially
D.Rewrite the job to use GlideAggregate with query and update in bulk
AnswerD

Bulk database operations reduce script execution time.

Why this answer

Option D is correct because the script timeout error indicates that the scheduled job is taking too long to process individual record updates. Rewriting the job to use GlideAggregate with bulk update operations reduces the number of database round-trips and processes records in batches, which is the standard approach for handling large data sets in ServiceNow without hitting script timeout limits.

Exam trap

ServiceNow often tests the misconception that increasing timeouts or splitting jobs is a valid fix, when the correct answer always involves using bulk database operations like GlideAggregate to reduce processing overhead.

How to eliminate wrong answers

Option A is wrong because adding a business rule to run asynchronously for each update would still trigger individual updates, potentially increasing the load and not resolving the underlying bulk processing issue; business rules are not designed to batch operations. Option B is wrong because increasing the timeout value in the scheduled job configuration only postpones the failure and does not address the root cause of inefficient record-by-record processing; it also risks system instability. Option C is wrong because splitting the job into multiple smaller jobs running sequentially does not change the per-record update pattern; each sub-job would still process records individually, likely still hitting timeouts or extending total execution time unnecessarily.

19
MCQhard

A developer has a GlideRecord query that retrieves 10,000 records. They need to perform an update on each record. Which approach is most efficient to avoid performance issues?

A.Use GlideRecord's batch mode without any modifications.
B.Use setWorkflow(false) and setAutoSysFields(false) before updating each record.
C.Use multiple GlideRecord queries to process records in batches.
D.Use setLimit(100) and run the script multiple times.
AnswerB

Disabling workflow and auto sys fields reduces overhead.

Why this answer

Option A is correct because using setWorkflow(false) and setAutoSysFields(false) reduces system processing. Option B is wrong because using multiple queries increases load. Option C is wrong because batch mode without disabling workflow still runs business rules.

Option D is wrong because setLimit restricts the number of records, which may miss updates.

20
MCQeasy

A user needs to generate a report that shows the count of incidents by category for the current month. Which table and field combination should be used in a report?

A.Use the 'cmdb_ci' table with 'install_status' and 'sys_created_on'.
B.Use the 'task' table with 'priority' and 'sys_updated_on'.
C.Use the 'sys_user' table with 'department' and 'sys_created_on'.
D.Use the 'incident' table with 'category' and 'sys_created_on'.
AnswerD

Correct: Incident table is relevant and category field provides grouping.

Why this answer

Option B is correct because 'incident' table with 'category' and 'sys_created_on' provides the necessary data. Option A is wrong because 'task' table may include other task types. Option C is wrong because 'cmdb_ci' is not directly related.

Option D is wrong because 'sys_user' is for user data.

21
MCQhard

A developer needs to ensure that when a Configuration Item record is deleted, all related Incident records have their CI field set to empty. Which approach should be taken?

A.Set the reference field's 'Delete action' to 'Cascade'.
B.Use a workflow on the CI table to update related incidents.
C.Create a business rule on the CI table that updates incidents on delete.
D.Use a database trigger on the CI table.
AnswerC

A before delete business rule can iterate related incidents and clear the CI field.

Why this answer

Option D is correct because a business rule on the CI table with 'before delete' can query related incidents and update the CI field to empty. Option A (cascade) would delete incidents, not clear. Option B (database trigger) is not supported in ServiceNow.

Option C (workflow) is overly complex for this requirement.

22
MCQeasy

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

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

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

Why this answer

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

Option D is wrong because GlideAggregate is for aggregation.

23
MCQeasy

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

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

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

Why this answer

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

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

24
MCQmedium

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

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

setLimit restricts the GlideRecord query to 10 records.

Why this answer

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

Option D is wrong because there is no join.

25
Multi-Selectmedium

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

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

Primary method to add a condition (AND).

Why this answer

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

Option E is wrong because setCondition is not a method.

26
MCQmedium

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

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

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

Why this answer

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

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

27
MCQeasy

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

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

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

Why this answer

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

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

28
MCQhard

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

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

Correct: This minimizes database round trips.

Why this answer

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

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

Option D is wrong because createOrGetRecord is for single record.

29
MCQmedium

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

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

Correct: A filter ensures only active incidents are included.

Why this answer

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

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

30
MCQeasy

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

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

Reference field links to a record in another table.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

31
MCQmedium

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

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

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

Why this answer

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

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

32
MCQmedium

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

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

Cascade delete removes child records when parent is deleted.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

33
Multi-Selectmedium

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

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

The source table is required for the transform map.

Why this answer

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

34
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

Option D is correct because it uses an OR condition with addQuery and addOrCondition. Option A is wrong because it does not filter by role. Option B is wrong because it uses two separate queries.

Option C is wrong because addQuery for role with multiple values requires multiple conditions or an IN clause.

35
MCQhard

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

A.The business rule condition is not met for this specific record.
B.The setAbortAction method is being called on a new record.
C.The ACL is overriding the business rule's setAbortAction.
D.The business rule should be set to 'after' instead of 'before'.
AnswerA

If the condition (e.g., advanced condition) is false, the script does not execute.

Why this answer

Option D is correct because the ACL may have a higher priority or the business rule's setAbortAction may not be honored if the ACL allows the operation. Actually, setAbortAction should abort, but if the ACL allows update, it may override? The typical reason is that the business rule runs after the ACL check, but if setAbortAction is called, it should stop. However, if the script uses setAbortAction correctly, it should work.

The most plausible cause is that the business rule is running after the update because the condition is on 'before' but the ACL might be checked earlier. Or the script is not being executed due to condition. Let's craft: Option D is correct because if the script is in a 'before' business rule, setAbortAction(true) prevents the update, but if there is also an ACL that allows the update, the ACL takes precedence.

Actually, setAbortAction works regardless. Better: The business rule might be executing after the update due to the order of operations? Let's think: In ServiceNow, business rules run before the database operation. setAbortAction should prevent the update. If the record is still updated, maybe the script is not triggered because the condition is not met.

Option D: 'The business rule condition is not met for this record.' That could cause it not to run. Let's make that correct.

36
MCQeasy

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

A.Makes 'short_description' mandatory for all incidents regardless of state.
B.Makes 'short_description' mandatory when state is '1' (New).
C.Makes 'state' mandatory when 'short_description' is empty.
D.Makes 'short_description' read-only when state is '1'.
AnswerB

The condition checks if state equals '1', then makes short_description mandatory.

Why this answer

The correct answer is B. The data policy sets the 'short_description' field as mandatory when the 'state' field equals '1' (New). Option A is wrong because it says mandatory when state is New, but the condition is on state, not on short description.

Option C is wrong because it reverses the condition. Option D is wrong because it ignores the condition.

37
Multi-Selectmedium

Which TWO GlideRecord methods can be used to create OR conditions in a query? (Choose two.)

Select 2 answers
A.GlideRecord.ORQuery()
B.GlideRecord.addEncodedQuery()
C.Using addQuery().addOrCondition() pattern
D.GlideRecord.addOrCondition()
E.GlideRecord.addQuery()
AnswersB, D

addEncodedQuery() can include OR operators in the encoded query string, thus creating OR conditions.

Why this answer

B is correct because `GlideRecord.addEncodedQuery()` allows you to pass an encoded query string that can include OR conditions using the `^OR` operator. This method is a direct way to construct complex queries with OR logic without chaining multiple method calls. D is correct because `GlideRecord.addOrCondition()` explicitly adds an OR condition to the current query, typically used after an initial `addQuery()` call.

Exam trap

The trap here is that candidates confuse `addOrCondition()` with a non-existent `ORQuery()` method, or assume that `addQuery()` can be chained with `addOrCondition()` as a single fluent call, which is syntactically incorrect in ServiceNow.

38
MCQmedium

An organization uses a scheduled data import to load incident data from an external system into ServiceNow. The import set runs successfully, but the transform map sometimes fails to update certain records because the unique key field (sys_id) from the source does not match the sys_id in ServiceNow due to a different format. The team wants to update existing records based on a custom 'external_id' field in the incident table, which is guaranteed to be unique and correctly populated from the source. The target table already has a unique index on 'external_id'. Which configuration should the developer implement to achieve reliable updates?

A.Use a database view to join the import set and incident table on the external_id field.
B.Modify the existing transform map to use 'update' action and set coalesce on the sys_id field.
C.Create a new transform map with coalesce on the 'external_id' field and map the source field to incident.external_id.
D.Increase the scheduled import frequency to overwrite the records.
AnswerC

Correct: Coalesce on 'external_id' enables matching and updating existing records based on that unique field.

Why this answer

Option A is correct because the developer should create a new transform map (or modify the existing one) with coalesce on the 'external_id' field, mapping the source field to the target 'external_id'. This allows the system to match and update records based on that field. Option B is wrong because coalesce on sys_id would not match due to format differences.

Option C is not a solution for data import updates. Option D does not address the matching issue.

39
MCQmedium

A data source is configured to import XML files from a REST endpoint. The XML contains nested elements. To properly map the data, which transform map feature is most useful?

A.Field mapping using dot-walk notation in 'Field name to map to' column.
B.Adjust the data source's 'XML parsing' settings.
C.Use 'Choice mapping' to map nested values.
D.Scripted transform with GlideRecord queries.
AnswerA

Dot-walk navigates nested structures directly.

Why this answer

Option B is correct because dot-walk notation (e.g., parent.child) allows mapping to nested XML elements. Option A (scripted transform) could be used but is less direct. Option C (data source parsing options) affect how the data is initially parsed, not mapping.

Option D (choice mapping) is for choice fields.

40
Multi-Selectmedium

Which TWO statements about Database Views in ServiceNow are correct?

Select 2 answers
A.Database Views improve write performance by reducing the number of tables.
B.Database Views are stored as separate physical tables.
C.Database Views allow direct updates to the underlying tables through the view.
D.Database Views can be used to join multiple tables for reporting purposes.
E.Database Views can include fields from parent and child tables.
AnswersD, E

Correct, they are used for reporting across tables.

Why this answer

Database Views in ServiceNow are virtual tables that combine data from one or more tables without storing the data physically. They are primarily used for reporting and data analysis, allowing you to join multiple tables and present a unified dataset. Option D is correct because Database Views are specifically designed to join multiple tables for reporting, enabling complex queries across related records.

Exam trap

ServiceNow often tests the misconception that Database Views are physical tables or that they can improve write performance, when in fact they are virtual and read-only, designed solely for reporting and data aggregation.

41
MCQhard

A large enterprise runs ServiceNow on a single instance. They have a custom table 'u_project_task' that stores task details for projects. Each project task has a reference field to the 'u_project' table. The 'u_project' table has approximately 50,000 records, and the 'u_project_task' table has about 2 million records. Users report that opening a project record and viewing its related tasks takes over 30 seconds. The system uses an out-of-box related list to display tasks. The instance has standard hardware resources. The administrator has already confirmed that there are no performance issues with the database server or network. Which course of action should the administrator take to improve the performance of the related list?

A.Archive project tasks older than 1 year to a separate table to reduce the data volume.
B.Create a database index on the 'u_project' field in the 'u_project_task' table to speed up the join.
C.Increase the glide.ui.related_list.max_timeout property to allow the query more time.
D.Add additional application nodes to the instance to distribute the load.
AnswerB

An index on the foreign key can significantly improve query performance for related lists.

Why this answer

The performance bottleneck is the database query that joins the large 'u_project_task' table (2M records) with the 'u_project' table on the reference field. Without an index on the 'u_project' field in 'u_project_task', the database must perform a full table scan for each related list query. Creating a database index on that foreign key column allows the database to use an index seek, dramatically reducing query time.

Exam trap

The trap here is that candidates often confuse performance tuning with scaling infrastructure or extending timeouts, failing to recognize that the root cause is a missing database index on the foreign key column used in the JOIN.

How to eliminate wrong answers

Option A is wrong because archiving data to a separate table does not eliminate the need for an efficient join; the remaining active tasks could still be numerous, and the query would still perform a full scan without an index. Option C is wrong because increasing the glide.ui.related_list.max_timeout property only extends the allowed execution time, it does not address the root cause of the slow query; the query will still take the same amount of time, just not time out. Option D is wrong because adding application nodes distributes web and business logic load, but the bottleneck is a single database query; additional nodes will not speed up the database join itself.

42
Multi-Selecteasy

Which TWO data types are available in ServiceNow for storing date and time values?

Select 2 answers
A.Time
B.Date/Time
C.Duration
D.Date
E.Timestamp
AnswersB, D

Stores date and time.

Why this answer

ServiceNow provides two dedicated data types for storing date and time values: 'Date' for calendar dates without time, and 'Date/Time' for combined date and time values. These are the correct choices because they directly map to the platform's field types used in tables like Task and Incident for tracking creation and due dates.

Exam trap

The trap here is that candidates confuse 'Duration' with a time-of-day value, but Duration is specifically for elapsed time intervals (e.g., 1d 2h 30m), not for storing a point in time like a date or time of day.

43
MCQeasy

A developer needs to import data from a CSV file into a custom table. Which ServiceNow module should be used for this task?

A.Scheduled Jobs
B.Update Sets
C.Import Sets
D.Data Source
AnswerC

Import Sets allow loading data from files and mapping fields.

Why this answer

Import Sets are the correct ServiceNow module for importing data from a CSV file into a custom table. They provide a structured pipeline that maps CSV columns to table fields, with staging tables for validation before final insertion. This is the standard approach for one-time or recurring data imports in ServiceNow.

Exam trap

The trap here is that candidates confuse 'Data Source' (a configuration record within Import Sets) with the overall module, leading them to select D instead of C, but the question asks for the module used to perform the import task.

How to eliminate wrong answers

Option A is wrong because Scheduled Jobs are used for running scripts or actions on a timer, not for importing CSV data into tables. Option B is wrong because Update Sets capture configuration changes (e.g., customizations) for moving between instances, not for importing external data like CSV files. Option D is wrong because Data Source is a sub-component within the Import Sets module that defines the source format (e.g., CSV, JDBC), but it is not the top-level module used to perform the import task.

44
MCQeasy

A developer is working on a catalog client script that references the 'caller_id' field on the 'sc_req_item' table. The caller_id field references the 'sys_user' table. To get the caller's email, which dot-walking syntax is correct?

A.current.caller_id.email
B.current.caller.email
C.current.caller_id(email)
D.current.caller_id.sys_user.email
AnswerA

Correctly dot-walks from caller_id to the email field on sys_user.

Why this answer

Option D is correct because dot-walking uses dot notation from the reference field to the target field. Option A is wrong because 'caller' is not a field. Option B is wrong because the table is sys_user, not sys_user_email.

Option C is wrong because parentheses are not used.

45
MCQhard

A large enterprise uses ServiceNow for IT service management. The instance has a custom table 'u_asset_tracker' with over 2 million records. The table is referenced by multiple other tables. Recently, users have reported that when they open a record in the 'u_asset_tracker' table, the form takes 15-20 seconds to load. Additionally, reports that query this table often time out. The instance is running on a mid-range server with 8GB RAM. The admin suspects database performance issues. Upon reviewing the sys_properties, the admin finds that 'glide.ui.auto_clear_filters' is set to false. Also, there are several business rules on the table that run on 'before' query and 'after' query. A script include that transforms data from 'u_asset_tracker' to another table is running frequently. The admin needs to improve performance. Which course of action should the admin take first?

A.Replace all GlideRecord queries with GlideAggregate for reports.
B.Disable the script include that transforms data to reduce load.
C.Review and disable unnecessary 'before query' and 'after query' business rules on the table.
D.Increase the server RAM to 16GB to handle the load.
AnswerC

Correct: These often cause overhead on every query.

Why this answer

Option C is correct because disabling 'before query' and 'after query' business rules can significantly improve query performance as they run for every query. Option A is wrong because increasing RAM may not address the root cause. Option B is wrong because GlideAggregate is for aggregation, not for general query performance.

Option D is wrong because the script include may be necessary; disabling it could break functionality.

46
Multi-Selectmedium

Which TWO conditions must be met for a transform map to automatically ignore duplicate records during an import?

Select 2 answers
A.The source table has a unique index on the coalesce field.
B.The target table has a unique index on the coalesce field.
C.The coalesce field mapping uses the 'Ignore if Empty' checkbox.
D.The import set table has a unique index on the coalesce field.
E.The transform map has 'Enable Duplicate Detection' set to true.
AnswersB, E

Correct: The target table must have a unique index on the coalesce field for the system to identify and ignore duplicate records.

Why this answer

For duplicate detection to work, the transform map must have 'Enable Duplicate Detection' checked (A) and the target table must have a unique index on the coalesce field (D). A unique index on the import set table is required for detecting duplicates within the same import set, but the question asks about ignoring duplicates already in the target. Options B and C are incorrect because the source table and import set table indices are not required for target duplicate detection.

Option E is unrelated to duplicate detection.

47
MCQeasy

A developer needs to import user records from a CSV file. The CSV contains a field 'department' that should map to a reference field 'department' on the sys_user table. However, the CSV contains department names, not sys_ids. What is the best approach to map the department names to the correct sys_ids?

A.Set a default value for the department field in the transform map.
B.Use a coalesce field mapping on the department field.
C.Add a reference qualifier to the department field in the target table.
D.Use a transform script to query the department table and set the reference field.
AnswerD

This is the correct approach as it allows dynamic lookup of the sys_id.

Why this answer

Option A is correct because a transform script can look up the sys_id based on the department name. Option B (coalesce) is for deduplication, not lookup. Option C (default value) would not map to the correct record.

Option D (reference qualifier) restricts the picker but does not handle import mapping.

48
MCQhard

Refer to the exhibit. A developer created this data policy on the incident table. What will be the result when a user creates or updates an incident where the caller's name is 'VIP'?

A.The condition will always evaluate to true regardless of the caller's name.
B.The short_description field will become mandatory for all incidents.
C.The data policy will cause a client-side error.
D.The condition is invalid because dot-walking is not supported in data policy conditions.
AnswerD

Data policies do not support dot-walking in conditions; the condition is ignored.

Why this answer

Data policy conditions in ServiceNow do not support dot-walking to reference fields like 'caller.name'. The condition must use a direct field on the table (e.g., 'caller') or a scripted condition. Since the condition is invalid, the data policy will not execute, and no field behavior changes will occur.

Exam trap

ServiceNow often tests the misconception that dot-walking is universally supported across all ServiceNow condition builders, when in fact data policy conditions explicitly require direct field references or scripted logic.

How to eliminate wrong answers

Option A is wrong because the condition will not evaluate to true; it will fail to parse due to the unsupported dot-walking syntax, so the policy is effectively ignored. Option B is wrong because the data policy cannot make the short_description field mandatory for all incidents; it only applies when the condition is valid and evaluates to true, which it cannot here. Option C is wrong because data policies are server-side constructs; they do not cause client-side errors—invalid conditions simply prevent the policy from running.

49
MCQhard

A developer wants to automatically calculate the number of days an incident has been in the 'On Hold' state. Which approach is most efficient and maintainable?

A.Use a business rule on state update to calculate and store the duration in a custom field.
B.Use a report to calculate the duration on demand.
C.Use a scheduled job to recalculate and update a field daily.
D.Use a calculated field with a formula that references the 'hold_duration' field.
AnswerA

This approach is efficient and updates in real time.

Why this answer

Option C is correct because a business rule on state update can calculate the duration when the state changes to 'On Hold' and store it in a field. Option A (calculated field) cannot reference subrecords or perform complex lookups. Option B (scheduled job) is inefficient and does not update in real time.

Option D (report) only calculates on demand and does not store the value.

50
MCQmedium

Refer to the exhibit. What is the purpose of this transform script?

A.To ignore records with empty department.
B.To map the department field only if source department is not empty.
C.To set a default value for the department field.
D.To map all fields from source to target.
AnswerB

The if condition ensures mapping only when source has a value.

Why this answer

The correct answer is D. The script maps the 'department' field only if the source field 'u_department' is not empty. Option A is incorrect because it does not set a default value.

Option B is incorrect because it only maps one field conditionally. Option C is incorrect because it does not ignore records; it just skips the mapping.

51
MCQeasy

A developer needs to update a large number of records in the 'incident' table based on a specific condition. Which approach should be used to minimize performance impact?

A.Use GlideRecord with setWorkflow(false) and setEngine(false) to update records in a loop.
B.Use GlideAggregate to perform the update.
C.Use an export set to update records in bulk.
D.Use the updateMultiple method on a GlideRecord object.
AnswerA

Correct: This method reduces overhead by disabling business rules and workflow.

Why this answer

Option A is correct because using GlideRecord in combination with setWorkflow(false) and setEngine(false) prevents unnecessary business rules and workflow execution, reducing overhead. Option B is wrong because GlideAggregate is for aggregation, not updates. Option C is wrong because updateMultiple can be more efficient but still triggers business rules if not disabled.

Option D is wrong because export set is not meant for updates.

52
Multi-Selecteasy

Which TWO are valid data source types for Import Sets in ServiceNow? (Choose two.)

Select 2 answers
A.JDBC
B.REST
C.LDAP
D.SNMP
E.Syslog
AnswersA, B

JDBC allows importing from external databases.

Why this answer

The correct answers are A and B. REST and JDBC are both valid data source types for Import Sets. LDAP, SNMP, and Syslog are not supported as data source types.

53
MCQmedium

An admin wants to create a report showing the number of incidents created each day for the past month. Which type of report should be used?

A.List report
B.Pie chart
C.Line chart
D.Bar chart
AnswerD

Bar chart effectively shows counts per day.

Why this answer

A bar chart is the correct choice because it is ideal for comparing discrete categories (such as days) over a period (the past month), showing the count of incidents per day. In ServiceNow, the 'Report Builder' allows you to create a bar chart with the 'Created on' field grouped by day and the 'Count' aggregation, which directly visualizes the number of incidents created each day.

Exam trap

ServiceNow often tests the distinction between line charts and bar charts for time-based data, where candidates mistakenly choose a line chart because they think it is always best for time series, but a bar chart is more appropriate for discrete daily counts as it avoids implying a continuous trend between days.

How to eliminate wrong answers

Option A is wrong because a list report simply displays raw data in a table format, which does not visually aggregate or summarize the count of incidents per day, making it inefficient for trend analysis. Option B is wrong because a pie chart shows proportions of a whole (e.g., percentage of incidents by category) and cannot effectively display daily counts over a month, as it would require a slice for each day, making it cluttered and unreadable. Option C is wrong because while a line chart can show trends over time, it is typically used for continuous data (e.g., time series with equal intervals) and can be misleading for discrete daily counts; however, the question specifically asks for the number of incidents created each day, and a bar chart is the standard choice in ServiceNow for such categorical time-based aggregations.

54
Matchingmedium

Match each ServiceNow portal widget property to its purpose.

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

Concepts
Matches

Runs on the client browser

Runs on the server during rendering

Defines the widget's HTML structure

Styles the widget

Defines widget dependencies on other widgets

Why these pairings

Widgets have several properties that define their behavior.

55
MCQhard

A company has a custom table 'project_task' with a reference field to 'project'. The requirement is to ensure that only users in a specific group can select projects in a certain state. Which approach provides the most secure and maintainable solution?

A.Use a reference qualifier on the project field that checks user group and project state.
B.Use a data policy with a condition to restrict the reference field.
C.Use a security rule to prevent selection of certain projects.
D.Use a business rule to check group membership on insert/update.
AnswerA

Reference qualifiers filter the available records in the picker, providing immediate feedback.

Why this answer

Option C is correct because reference qualifiers are the standard way to filter available options in a reference field. Option A (business rule) would allow selection then reject, which is not user-friendly. Option B (data policy) can enforce on submit but does not filter the picker.

Option D (security rule) is for access control, not field-level filtering.

56
MCQmedium

A company needs to retrieve all active users whose department is 'Sales' and who have a manager assigned. They are using GlideRecord. Which script will correctly accomplish this?

A.var gr = new GlideRecord('sys_user'); gr.addQuery('active', true); gr.addQuery('department', 'Sales'); gr.addQuery('manager', 'ISNOTEMPTY'); var rows = gr.getRow();
B.var gr = new GlideRecord('sys_user'); gr.addQuery('active', true); gr.addQuery('department', 'Sales'); gr.addQuery('manager', 'ISNOTEMPTY'); gr.query();
C.var gr = new GlideRecord('sys_user'); gr.addQuery('active', true); gr.addQuery('department', 'Sales'); gr.query();
D.var gr = new GlideRecord('sys_user'); gr.get('active', true); gr.get('department', 'Sales'); gr.get('manager', 'ISNOTEMPTY');
AnswerB

Correctly uses addQuery with ISNOTEMPTY for manager.

Why this answer

Option A is correct because it uses addQuery for both conditions and uses 'ISNOTEMPTY' for the manager field. Option B is wrong because get() only retrieves one record. Option C is wrong because it lacks a condition for manager.

Option D is wrong because it uses getRow() which is not a GlideRecord method.

57
Drag & Dropmedium

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

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

Steps
Order

Why this order

The sequence: navigate to Notifications, create new, set table and name, define conditions, configure email details, and submit.

58
MCQmedium

A company is building a ServiceNow application to manage employee onboarding. They need to store personal data like social security numbers (SSNs) and medical information. Which data classification scheme should they apply to these fields to ensure proper encryption and access controls?

A.Confidential
B.Internal
C.Highly Confidential
D.Public
AnswerC

Correct, this is the highest classification for sensitive personal data.

Why this answer

Option C is correct because 'Highly Confidential' is the ServiceNow data classification level designed for sensitive personal data such as social security numbers and medical information. This classification enforces mandatory encryption at rest and in transit, strict role-based access controls, and audit logging, aligning with regulatory requirements like GDPR and HIPAA.

Exam trap

The trap here is that candidates often confuse 'Confidential' with 'Highly Confidential', assuming that any sensitive data falls under 'Confidential', but ServiceNow reserves 'Highly Confidential' specifically for data requiring the highest security controls, such as PII and PHI.

How to eliminate wrong answers

Option A is wrong because 'Confidential' is a lower classification intended for business-sensitive data (e.g., internal financial reports) that does not require the same level of encryption and access restrictions as personal identifiable information (PII) or protected health information (PHI). Option B is wrong because 'Internal' is used for data that can be shared within the organization without special controls, such as standard operating procedures, and does not mandate encryption or granular access controls. Option D is wrong because 'Public' is for data that can be freely disclosed, like marketing materials, and has no security or encryption requirements.

59
Matchingmedium

Match each ServiceNow acronym to its definition.

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

Concepts
Matches

Configuration Management Database

Customer Service Management

IT Service Management

Human Resources Service Delivery

Governance, Risk, and Compliance

Why these pairings

These are common ServiceNow acronyms for product lines and modules.

60
Multi-Selecthard

Which THREE are true about Data Policies? (Choose three.)

Select 3 answers
A.They can be used to enforce field requirements.
B.They can reference the current record's values.
C.They can fire on insert only.
D.They can be applied to specific user roles.
E.They run on the client side only.
AnswersA, B, D

Data policies can make fields mandatory or read-only based on conditions.

Why this answer

The correct answers are A, C, and D. Data policies enforce field requirements (mandatory/read-only) on the server side, can reference current record values, and can be restricted to specific user roles. They do not run on the client side, and they can fire on both insert and update.

61
MCQeasy

An import set is failing because some records have duplicate values in a unique field. The requirement is to skip duplicates and import only new records. Which transform map option should be used?

A.Enable 'Import set update only' in the transform map.
B.Enable 'Update existing records' in the transform map.
C.Enable 'Reject duplicates' in the data source options.
D.Enable 'Coalesce' on the unique field and set 'Action' to 'Insert' in the transform map.
AnswerD

Coalesce identifies existing records, and setting action to Insert ensures new records are created and duplicates are ignored.

Why this answer

Option A is correct because enabling 'Coalesce' on the unique field allows the system to identify existing records and skip duplicates. Option B (Import set update only) would update existing records, not skip. Option C (Reject duplicates) is not a standard option.

Option D (Update existing records) would update duplicates.

62
Multi-Selectmedium

Which TWO statements are true about GlideAggregate?

Select 2 answers
A.It uses getRowCount() to retrieve the count.
B.It can only be used with sys_id fields.
C.It provides methods like addAggregate and getAggregate.
D.It extends the GlideRecord class.
E.It can aggregate data across multiple tables in a single query.
AnswersC, D

Correct: These are key methods for aggregation.

Why this answer

Options A and D are correct. GlideAggregate extends GlideRecord and provides aggregate functions. Option B is wrong because it does not use getRowCount() but addAggregate().

Option C is wrong because it does not have query with limit. Option E is wrong because it does not support multiple tables in one query.

63
MCQeasy

A company needs to import data from a CSV file into a custom table. The import should update existing records if a unique identifier matches, and insert new records if no match is found. Which feature should be configured on the transform map to achieve this?

A.Coalesce
B.Scheduled import
C.Field mapping
D.Data source
AnswerA

Coalesce is a transform map field property that determines whether the record is updated (if a match is found) or inserted.

Why this answer

The Coalesce feature on a transform map determines which field(s) are used to match incoming records against existing records in the target table. When a match is found, the transform map updates the existing record; when no match is found, it inserts a new record. This directly enables the required upsert behavior.

Exam trap

The trap here is that candidates often confuse Coalesce with field mapping, thinking that mapping fields alone handles the upsert, but Coalesce is the specific mechanism that triggers the update vs. insert decision.

How to eliminate wrong answers

Option B (Scheduled import) is wrong because it controls the timing of the import job, not the matching or update/insert logic. Option C (Field mapping) is wrong because it defines how source fields map to target fields but does not handle record matching or upsert decisions. Option D (Data source) is wrong because it defines the source of the data (e.g., file, database) and its connection details, not the merge logic.

64
MCQmedium

An administrator wants to create a database view that joins the 'incident' and 'task' tables to show incident details with task assignments. Which table is the most appropriate base table?

A.incident
B.sys_attachment
C.task_assignment
D.task
AnswerD

Task is the parent table; a view on task can include incidents and other task records.

Why this answer

Option C is correct because 'task' is the parent table for both incident and task, so a view from 'task' can include child records. Option A is wrong because 'incident' is a child of 'task', so it cannot include tasks that are not incidents. Option B is wrong because 'sys_attachment' is unrelated.

Option D is wrong because 'task_assignment' is not a standard table.

65
MCQmedium

An admin notices that a business rule on the 'incident' table that sets the 'assigned_to' field based on the caller's manager is not always firing. The rule is set to run 'Before' and 'Update'. What is the most likely reason?

A.The condition of the business rule is not met because it requires a specific field to change.
B.The business rule is set to run asynchronously.
C.The user lacks the 'incident_edit' ACL.
D.The business rule order is set to 100, making it run too late.
AnswerA

Correct: The rule may check a condition that is not satisfied.

Why this answer

Option D is correct because if the field being set is not in the current update, the business rule may not trigger if it depends on a condition. Option A is wrong because the order is not an issue. Option B is wrong because ACLs do not prevent business rule execution.

Option C is wrong because async would still fire eventually.

66
MCQhard

Refer to the exhibit. What does this ACL condition allow?

A.Any user can update incidents when state is '3'.
B.Only users without 'itil' role can update incidents in state '3'.
C.Users with 'itil' role can update incidents in state 'Resolved'.
D.Users with 'itil' role can update incidents in state 'On Hold'.
AnswerD

State 3 corresponds to 'On Hold' and role condition is itil.

Why this answer

The correct answer is A. The ACL grants update access when the incident state is '3' (On Hold) and the user has the 'itil' role. Option B is wrong because state 3 is On Hold, not Resolved.

Option C is wrong because it ignores the role requirement. Option D is wrong because it reverses the role condition.

67
MCQhard

A developer writes a business rule that queries the 'incident' table using GlideRecord. The script loops through all incidents and updates a field. After running, the developer notices that only a subset of records were updated. What is the most likely cause?

A.The user running the script lacks write ACL on the table
B.The GlideRecord query did not include a condition, so it used a default filter that limited results
C.The field name used in the update was misspelled
D.The script did not call getRowCount() before the loop
AnswerB

Without an explicit query, GlideRecord may apply a default filter (e.g., active=true) or system limit.

Why this answer

Option B is correct because GlideRecord queries in ServiceNow automatically apply a default filter when no explicit condition is set, typically limiting results to records where the `active` field is `true`. This default behavior, known as the 'active filter,' causes the script to only process a subset of incidents (those that are active) rather than all records in the table, explaining why only some were updated.

Exam trap

The trap here is that candidates assume GlideRecord returns all records by default, but ServiceNow's platform applies an implicit active filter, causing partial results unless explicitly overridden.

How to eliminate wrong answers

Option A is wrong because a lack of write ACL would cause an error or permission denial, not a silent partial update of a subset of records. Option C is wrong because a misspelled field name would result in a script error or the update not being applied to any record, not a partial update of some records. Option D is wrong because `getRowCount()` is not required for looping through GlideRecord results; the loop iterates over the record set regardless of whether `getRowCount()` is called, so its absence does not cause a subset of records to be updated.

68
Drag & Dropmedium

Drag and drop the steps to create a new application in ServiceNow Studio into the correct order.

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

Steps
Order

Why this order

The correct sequence starts with accessing the Application Creator, then initiating the wizard, providing application details, choosing a template, and finally creating the application.

69
MCQeasy

A company is importing user records from a CSV file using an import set. The transform map is configured to update existing records and insert new ones based on the email field. After running the import, they notice that some existing records were not updated even though the email matched. The email field in the target user table is correctly populated and has a unique index. The source CSV file has no obvious formatting issues. The import set runs without errors. What is the most likely cause?

A.The transform map's 'Coalesce' checkbox is not selected on the email field mapping.
B.The source CSV has trailing spaces in the email field.
C.The email field in the target table is not indexed.
D.The import set table does not have a unique index on the email field.
AnswerA

Correct: Coalesce must be enabled for the system to match incoming records to existing target records based on that field.

Why this answer

Option B is correct because coalesce must be enabled on the field mapping for the system to match records in the target table. Without coalesce, all records are treated as new, so updates will not occur. Option A is incorrect because indexing affects performance but not matching.

Option C is incorrect because a unique index on the import set table is not required for target matching. Option D is a possible cause but less likely given the scenario describes 'some' records not updated; trailing spaces would affect all records with spaces.

Ready to test yourself?

Try a timed practice session using only Working with Data questions.