Courseiva

CCNA Working With Data Questions

66 questions · Working With Data topic · 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 A and E are correct. Domain separation (A) provides built-in data isolation by partitioning data based on domains, ensuring each company sees only its own data. Separate tables for each company (E) physically isolate data at the database level.

Option B (ACLs) adds security but does not inherently isolate data in a multi-tenant architecture. Option C (database views) filters data but does not enforce isolation at the application layer. Option D (GlideRecord conditions) relies on developer discipline and is not a robust architectural solution.

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

Using GlideRecordBatch or a scheduled job allows the developer to process records in smaller, manageable batches. This prevents the script from running for too long in a single transaction, thereby avoiding the timeout while still processing all records. This is the most effective optimization technique.

Why this answer

Using GlideRecordBatch or a scheduled job with incremental processing breaks the workload into manageable chunks, preventing the script from timing out. Option A is incorrect because setLimit(1000) only limits the number of records returned per query, but the migration requires all 100,000 records to be processed; it does not solve the timeout issue when processing large batches. Option B is incorrect because GlideAggregate is used for aggregation queries (e.g., counting records) and does not assist in batch insertion of records.

Option C is incorrect because increasing the transaction timeout is a temporary workaround; it does not address the underlying efficiency problem and may lead to other performance issues.

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

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

In ServiceNow, a reference qualifier is used to filter the records that appear in a reference field's lookup. By defining a reference qualifier with the condition 'os_type=Windows', only Windows servers from the cmdb_ci_server table will be available for selection. Option A is incorrect because a choice list is not a reference field and cannot dynamically filter a reference based on a table.

Option B is incorrect because a business rule can modify data but is not the standard mechanism to filter a reference field's picker. Option C is incorrect because a dynamic filter on a form typically applies to related lists or reports, not to the lookup of a reference field.

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

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

The GlideAggregate API requires addQuery() to filter open incidents, then addAggregate('COUNT') to define the aggregation, then groupBy('assignment_group') to specify the grouping field, and finally query() to execute. Option A is wrong because it uses addAggregate('COUNT', 'assignment_group'), which incorrectly passes the grouping field as a second parameter; the correct method is separate groupBy() call. Option B is wrong because getRowCount() returns the number of rows after query(), not the count per group; also missing addAggregate().

Option C is wrong because it uses get() instead of query() and the order of methods is incorrect; get() is for fetching a single record, not aggregate queries.

7
Multi-Selecthard

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

Select 2 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

Correct. Dot-walking traverses related table fields without additional queries, reducing database calls.

Why this answer

The valid ways to reduce database queries when processing multiple records are A and C. Dot-walking (A) follows relationships without separate queries. GlideAggregate (C) performs aggregation server-side, reducing round trips.

Option E is incorrect because using GlideRecord's get() method with a sys_id still executes a separate database query for each call, so it does not reduce queries. Options B and D increase queries: B uses multiple queries, and D uses getValue() which does not reduce queries since it accesses a field from an already retrieved record.

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

The import set table lacks a unique index on the 'asset_tag' field. For duplicate detection to work properly during an import, the import set table must have a unique index on the coalesce field (here 'asset_tag'). Without that index, the system cannot detect duplicates within the same import set, causing multiple records to be inserted instead of updated.

Option A is incorrect because the source data contains unique asset_tag values, so case differences are not the issue. Option B is incorrect because the 'Enable Duplicate Detection' checkbox is checked, so it is configured. Option D is incorrect because the coalesce field mapping is correctly set to 'asset_tag'.

9
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

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.

10
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, B, and D are correct. Ensuring all target fields are mapped avoids missing data. Using the coalesce field prevents duplicate records.

Using a staging table allows data validation before transforming. Option C is wrong because mapping import set rows directly to the target table without a transform is not a best practice; transforms allow data manipulation and cleansing. Option E is wrong because skipping the transform map would bypass necessary transformations and validations.

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

12
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

A UI policy can conditionally set the choices of a choice field on the client side using the 'Choice' action with 'Set choices' conditionally. This allows dynamic filtering of choice values based on other field values on the same record. Option A (data policy) is server-side and cannot dynamically change client-side choices.

Option C (reference qualifier) applies only to reference fields, not choice fields. Option D (client script) can hide or show options but is not the standard declarative approach; UI policy is preferred for this requirement.

13
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 D and E are correct. Using GlideAjax to call a script include moves processing to the server, avoiding synchronous blocking and performance hits in the client. Using setLimit() reduces the number of records retrieved, minimizing data transfer and processing.

Option A is incorrect because GlideRecord is not directly available in client scripts and attempting to use it can cause performance issues. Option B is incorrect because synchronous GlideRecord queries block the UI, degrading user experience. Option C is incorrect because business rules run server-side and do not address client-side performance; GlideAjax is the appropriate client-server communication method.

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

15
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

Data policies enforce field requirements on server-side updates and apply regardless of how the record is updated (UI, web services, etc.). In this scenario, a data policy with condition state='Resolved' and mandatory resolution_code ensures that the field must be populated when the state is set to Resolved. Option A (client script) is client-side only and can be bypassed.

Option B (UI policy) is also client-side only. Option C (business rule) could be used to enforce the requirement, but data policy is the recommended mechanism for field-level validation because it is simpler and automatically handles all server-side operations. Therefore, option D is correct.

16
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

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.

17
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

Using `setWorkflow(false)` disables business rules and `setAutoSysFields(false)` prevents automatic updates of system fields (like `sys_updated_by` and `sys_updated_on`), significantly reducing database write overhead and improving performance when updating many records. Option A is wrong because GlideRecord's batch mode alone does not disable workflows or system fields; business rules still execute. Option C is wrong because using multiple queries increases the number of database operations and overall load.

Option D is wrong because `setLimit(100)` restricts the query to only 100 records, so updates would miss the remaining 9,900 records.

18
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

The incident table contains incident records, and the category field allows grouping incidents by category, while sys_created_on can be used to filter incidents created in the current month. Option A is incorrect because the cmdb_ci table is for configuration items, not incidents. Option B is incorrect because the task table includes multiple task types (incidents, problems, changes), so it's not specific to incidents.

Option C is incorrect because the sys_user table stores user information, not incidents.

19
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

A business rule on the CI table with a 'before delete' or 'after delete' condition can query all incident records referencing the deleted CI and set the CI field to empty/null. Option A ('cascade') would delete the related incidents instead of clearing the CI field. Option B (workflow) is unnecessarily complex; a business rule is more efficient and direct.

Option D (database trigger) is not supported in ServiceNow.

20
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

GlideRecord.deleteMultiple() is the appropriate method to delete multiple records that match a specified query, such as all incidents in 'Closed' state updated over 90 days ago. Option B is incorrect because GlideAggregate is used for aggregation (e.g., counting, summing) and does not have a deleteMultiple() method. Option C is incorrect because GlideRecord.deleteRecord() only deletes the current single record (the one loaded into the GlideRecord object).

Option D is incorrect because GlideRecord.setDelete(true) is not a valid method; deletion is performed via deleteRecord() or deleteMultiple().

21
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

When coalesce is set to true on a reference field like 'model_id', the transform engine uses the source value (u_model_id) to look up an existing record in the referenced table (cmdb_ci_model). If a matching record is found, the transform sets the reference field to that existing record without creating a new one. Option A is incorrect because coalesce does not ignore the field; it actively searches for a matching record.

Option B is incorrect because coalesce does not create new records; it only matches existing ones. Option D is incorrect because the transform does not skip the record; it proceeds with the transformation, setting the reference to the existing model.

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

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

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

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

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

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

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

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

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

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

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

33
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

The business rule condition is not met for this specific record. In a 'before' business rule, the script runs before the database operation. The setAbortAction(true) method should prevent the update.

However, if the condition defined in the business rule (or a condition within the script) is not satisfied, the setAbortAction may not be called, allowing the update to proceed. The error message shown may come from a different part of the script (e.g., gs.addErrorMessage) that runs regardless, but the abort action is conditional. Option B is incorrect because setAbortAction works on existing records, not new ones; the exhibit likely shows an update.

Option C is incorrect because ACLs do not override setAbortAction; setAbortAction is a server-side abort that prevents the database operation. Option D is incorrect because 'after' business rules cannot abort the operation; 'before' is correct for aborting.

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

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

36
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

By creating a new transform map with coalesce on the 'external_id' field, the system will use the 'external_id' value from the source to match existing records in the incident table. Since a unique index exists on 'external_id', this ensures reliable updates. Option A is incorrect because a database view does not affect import matching logic.

Option B is wrong because coalesce on 'sys_id' would fail due to format differences. Option D does not address the matching issue—increasing frequency does not improve record matching.

37
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.
AnswerD

Scripted transforms provide full control to parse and map nested XML elements using JavaScript, making them the most useful for complex data structures.

Why this answer

Scripted transforms allow custom JavaScript to parse and map nested XML elements using GlideRecord or other APIs, providing full flexibility when dot-walk notation is insufficient or not supported. Option A is incorrect because field mapping with dot-walk notation may not handle complex nested structures or special cases, and the reference to 'setEngine(false)' is invalid. Option B is incorrect because adjusting XML parsing settings affects parsing but not mapping.

Option C is incorrect because choice mapping is for choice fields, not for nested data.

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

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

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

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

42
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

Dot-walking uses the reference field name followed by a dot and the target field. 'caller_id' references the sys_user table, so current.caller_id.email retrieves the caller's email. Option B is wrong because 'caller' is not a field on sc_req_item. Option C is wrong because parentheses are not used in dot-walking.

Option D is wrong because you do not need to specify the table name; the reference is automatically followed.

43
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

Disabling unnecessary 'before query' and 'after query' business rules reduces the overhead on every query, which can significantly improve load times for large tables like 'u_asset_tracker'. Option A is incorrect because replacing GlideRecord with GlideAggregate is not a general performance fix; GlideAggregate is designed for aggregate calculations (e.g., count, sum) and cannot replace standard record retrieval. Option B is incorrect because disabling the script include may break data transformation functionality and is not a targeted performance improvement.

Option D is incorrect because increasing server RAM may help in some cases, but it does not address the root cause of excessive business rule execution on queries.

44
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 automatically ignore duplicate records already in the target table, two conditions must be met: the transform map must have 'Enable Duplicate Detection' set to true (option E), and the target table must have a unique index on the coalesce field (option B). The coalesce field mapping identifies the field used to check for duplicates; a unique index on the target table enforces uniqueness, allowing the system to detect that a record already exists. Options A, C, and D are incorrect: a unique index on the source table (A) is not required for target duplicate detection; the 'Ignore if Empty' checkbox (C) relates to handling empty values, not duplicate detection; and an index on the import set table (D) is used for detecting duplicates within the same import set, not for ignoring duplicates already in the target.

45
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

A transform script allows you to write custom logic to query the department table and retrieve the sys_id based on the department name from the CSV. Option A (default value) would set a static value for all records, not map dynamically. Option B (coalesce) is used for deduplication during import, not for field mapping.

Option C (reference qualifier) filters the reference picker in forms but does not affect import mapping.

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

47
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

A business rule triggered on state update can calculate the number of days an incident has been in 'On Hold' at the moment the state changes, storing the result in a custom field for persistence and real-time accuracy. Option B (report) calculates duration on demand without storing, so it cannot be used for automated workflows or historical tracking. Option C (scheduled job) runs periodically, introducing delays and inefficiency, and does not update in real time when the state changes.

Option D (calculated field) cannot reference subrecords or perform complex lookups needed to determine the duration an incident has been in a specific state.

48
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 transform script maps the 'department' field only if the source field 'u_department' is not empty, as indicated by the conditional logic. Option A is incorrect because the script does not ignore records; it only skips mapping for empty departments. Option C is incorrect because no default value is set; the field is simply not mapped if empty.

Option D is incorrect because only the department field is mapped conditionally, not all fields.

49
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

Using GlideRecord with setWorkflow(false) and setEngine(false) prevents business rules and workflow execution, reducing overhead.

Why this answer

A is correct because using GlideRecord with setWorkflow(false) and setEngine(false) prevents unnecessary business rules and workflow execution, reducing performance impact. B is incorrect because GlideAggregate is used for aggregation and statistics, not for updating records. C is incorrect because an export set is designed for data export/import, not for bulk updates within the platform.

D is incorrect because updateMultiple does perform bulk updates but still triggers business rules if not disabled, and it does not provide the same level of control as GlideRecord with disabled workflows.

50
Multi-Selecteasy

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

Select 2 answers
A.JDBC
C.LDAP
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.

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

52
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

The correct matches are: Name as a unique identifier used in code, ID as the system-assigned sys_id, Roles as access control, and Filter Condition as display condition. Common confusions include swapping Name and ID or mixing Roles with Filter Condition.

53
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

Reference qualifiers are the standard way to dynamically filter the list of selectable records in a reference field based on conditions such as user group and project state. This approach provides immediate feedback in the UI and prevents invalid selections altogether. Option B (data policy) can enforce rules on submit but does not filter the picker, so users can still select invalid projects before submission.

Option C (security rule) is designed for access control to records or modules, not for field-level filtering. Option D (business rule) would allow selection and then reject on insert/update, leading to a poor user experience and requiring rollback logic. Therefore, a reference qualifier is the most secure and maintainable solution.

54
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

It correctly adds queries for active = true, department = 'Sales', and manager ISNOTEMPTY, then executes query() to retrieve all matching records. Option A is incorrect because getRow() is not a valid GlideRecord method. Option C lacks the manager condition.

Option D incorrectly uses get() which retrieves a single record by sys_id, not a query.

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

Why this order

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

56
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

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

57
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

Correct matches are ITSM: IT Service Management, ITOM: IT Operations Management, ITBM: IT Business Management, and CSM: Customer Service Management. Common confusions occur between ITSM and ITOM definitions.

58
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, B, and D. Data Policies enforce field requirements (mandatory/read-only) on the server side, can reference current record values using conditions, and can be restricted to specific user roles via the 'Roles' condition. They do not run on the client side only; they execute server-side.

They can fire on both insert and update, not just insert.

59
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

Coalesce on the unique field allows the transform map to identify existing records by matching the incoming field to a unique field in the target table. Setting the Action to 'Insert' ensures that only new records are imported; if a match is found, the record is skipped (since it already exists). Option A ('Import set update only') is not a standard option in ServiceNow.

Option B ('Update existing records') would update duplicates rather than skip them. Option C ('Reject duplicates') is not a typical option in data sources; the correct approach is using coalesce with Insert action.

60
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 C and D are correct. GlideAggregate extends the GlideRecord class (D) and provides methods like addAggregate and getAggregate (C) for performing aggregate queries on database tables. Option A is incorrect because getRowCount() is a method of GlideRecord, not the primary method for retrieving counts; GlideAggregate uses addAggregate('COUNT', 'field') and getAggregate() instead.

Option B is incorrect because GlideAggregate can be used with any field, not just sys_id. Option E is incorrect because GlideAggregate works on a single table per query; to aggregate across multiple tables, you would need separate queries or database views.

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

62
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

Business rules with conditions only fire when the condition is met. If the condition requires a specific field to change (e.g., 'assigned_to' or a related field), but the update does not include that field, the rule will not trigger. Option B is incorrect: asynchronous execution would still cause the rule to run, just not immediately.

Option C is incorrect: ACLs control access to records, not business rule execution. Option D is incorrect: order 100 is the default and does not prevent firing; it only affects execution order among multiple rules.

63
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 ACL condition grants update access when the user has the 'itil' role and the incident state is '3', which is 'On Hold'. Option A is incorrect because it ignores the role requirement. Option B is wrong because it says users without 'itil' role can update, but the ACL requires the 'itil' role.

Option C is wrong because state '3' is 'On Hold', not 'Resolved'.

64
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

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.

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

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.

66
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

The most likely cause is that the 'Coalesce' checkbox is not selected on the email field mapping in the transform map. Coalesce must be enabled for the system to use that field to match existing records in the target table. Without coalesce, the system treats all incoming records as new, so updates will not occur even if the email matches.

Option B is incorrect because trailing spaces would affect all matching, not just some records, and the scenario states no formatting issues. Option C is incorrect because indexing affects performance, not matching. Option D is incorrect because the import set table does not need a unique index for target matching; the matching is based on the target table's email field, which has a unique index.

Ready to test yourself?

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