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

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

Page 6

Page 7 of 7

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

452
MCQhard

A ServiceNow instance has a custom table 'u_integration_log' that stores integration transactions. A flow in Flow Designer logs errors by creating records in this table. The flow is running with high volume, and the table is growing quickly causing performance issues. What is the best design to mitigate this?

A.Configure a scheduled job to archive and delete records older than 30 days.
B.Disable error logging in the flow.
C.Use a 'Log to file' action in the flow instead of a table.
D.Store logs in a separate instance via MID Server.
AnswerA

Regular cleanup balances data retention with performance.

Why this answer

Option A is correct because it directly addresses the root cause of performance degradation—uncontrolled table growth—by implementing a scheduled job to archive and delete records older than 30 days. This reduces table size, improves query performance, and maintains the ability to retain recent logs for debugging. In ServiceNow, scheduled jobs can use GlideRecord to delete records based on a date condition, and archiving can be done via export to CSV or a separate archive table.

Exam trap

The trap here is that candidates may choose Option B (disable logging) thinking it's a quick fix, but the exam tests understanding that logging is essential for operations and that proper data lifecycle management (archiving/deletion) is the correct design pattern for high-volume tables.

How to eliminate wrong answers

Option B is wrong because disabling error logging entirely removes visibility into integration failures, which is critical for troubleshooting and monitoring; it does not solve the performance issue but instead eliminates the data needed for diagnostics. Option C is wrong because 'Log to file' action in Flow Designer writes to the instance's local file system, which is not a scalable or supported method for high-volume logging and does not provide the structured querying and retention capabilities of a table; it also does not address the underlying performance issue of table growth. Option D is wrong because storing logs in a separate instance via MID Server introduces unnecessary complexity, latency, and dependency on MID Server availability, and does not solve the immediate performance problem on the current instance; it is an over-engineered solution for simple log retention.

453
MCQmedium

A company is redesigning its service catalog to improve user experience. One of the catalog items, 'Request New Software', contains 10 variables including software category, license type, and required approvals. The variable fields should dynamically show/hide and become mandatory based on previous selections. Currently, the catalog item uses a single, complex catalog client script that handles all visibility and mandatory conditions. This script has become difficult to maintain, and users experience delays when interacting with the form. The IT team wants a more efficient and maintainable solution. What should the administrator do?

A.Move the entire logic to a business rule that runs on the server side to reduce client-side processing.
B.Implement UI policies for visibility and mandatory conditions, and keep a streamlined catalog client script only for dynamic field values or complex calculations.
C.Convert all conditions to UI policies to replace the catalog client script entirely.
D.Refactor the existing catalog client script into a single, more efficient script with optimized conditions.
AnswerB

UI policies handle declarative conditions efficiently; client scripts supplement when needed, improving maintainability.

Why this answer

Option C is correct because UI policies are designed to handle visibility, read-only, and mandatory conditions declaratively, improving maintainability. The catalog client script should be reserved for complex dynamic values or calculations that UI policies cannot perform. Option A is incorrect because while UI policies are good, some complex logic may still require client scripts; a full conversion may not always be possible.

Option B is incorrect because a single script with complex conditions will still be hard to maintain and may cause performance issues. Option D is incorrect because business rules run server-side and cannot directly control client-side form behavior such as field visibility.

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

455
Multi-Selecteasy

Which THREE are valid actions that can be performed by a Workflow Activity in Legacy Workflow Editor?

Select 3 answers
A.Run a script
B.Approve a record
C.Wait for condition
D.Create a record
E.Send an event
AnswersA, D, E

True; Run Script activity executes GlideRecord scripts.

Why this answer

Option A is correct because the Legacy Workflow Editor includes a 'Run Script' activity that executes server-side JavaScript (GlideRecord, GlideSystem, etc.) within the workflow context. This allows custom logic such as data manipulation, condition checks, or API calls to be performed as part of the workflow flow.

Exam trap

ServiceNow often tests the exact naming of workflow activities; the trap here is that 'Wait for condition' (lowercase 'c') is not the official activity name—it is 'Wait for Condition'—and candidates may mistakenly select it as a valid action when the question expects only activities that perform an explicit action (like creating, sending, or running a script), not a passive wait state.

456
MCQmedium

A developer wants to trigger a Business Rule on a child table when a parent record is updated. How can this be achieved?

A.Use a workaround with a scheduled job.
B.Add a condition on the child table's Business Rule referencing the parent.
C.This is not possible in ServiceNow.
D.Use a before query Business Rule on the child table.
AnswerB

Condition can check parent field changes.

Why this answer

Option B is correct because a Business Rule on the child table can include a condition that checks whether a related parent record has been updated. This is done by referencing the parent table's fields via dot-walking (e.g., `current.parent_field.changes()`) or by querying the parent record's sys_updated_on field. The Business Rule runs on the child table when a child record is inserted or updated, and the condition evaluates the parent's state, allowing the rule to trigger logic based on parent changes without requiring a direct trigger on the parent table.

Exam trap

The trap here is that candidates assume a Business Rule can only be triggered directly on the table being updated, overlooking the ability to use conditions on related table records to react to parent changes.

How to eliminate wrong answers

Option A is wrong because using a scheduled job is an inefficient workaround that introduces latency and complexity; it is not the intended or recommended approach for reacting to parent updates in real time. Option C is wrong because it is indeed possible to achieve this behavior using a condition on the child table's Business Rule, as described in the correct answer. Option D is wrong because a before query Business Rule runs during query operations (retrieval), not on updates, and cannot be used to trigger logic when a parent record is updated.

457
MCQmedium

A company has a business rule that should update the 'priority' field on the Incident table whenever the 'impact' field is changed to 'High'. However, the business rule is not firing. The business rule is set to run 'before' insert/update, with condition 'current.impact.changes()'. The 'impact' field is of type 'choice' with values 'Low', 'Medium', 'High'. Which of the following is the most likely cause?

A.The business rule is set to run 'after' instead of 'before'.
B.The script uses 'gs.addErrorMessage()' which stops execution.
C.The business rule is inactive.
D.The condition 'current.impact.changes()' returns false on insert because the previous value is null.
AnswerD

On insert, the previous value is null, so 'changes()' returns false. The condition should be modified to handle both insert and update.

Why this answer

Option D is correct because the condition `current.impact.changes()` checks if the field value has changed from a previous value. On an insert, the previous value is null, so the condition returns false even when the impact is set to 'High'. This prevents the business rule from firing on insert, which is a common pitfall when using `changes()` without also checking for the new value.

Exam trap

ServiceNow often tests the subtle difference between `changes()` and `changesTo()` in business rules, where candidates mistakenly assume `changes()` works on insert when it only detects changes from a prior value.

How to eliminate wrong answers

Option A is wrong because the business rule is set to run 'before', which is appropriate for updating a field on the same record; running 'after' would still allow the update but is not the cause of the rule not firing. Option B is wrong because `gs.addErrorMessage()` does not stop script execution; it only adds a message to the user interface and the script continues. Option C is wrong because if the business rule were inactive, it would never fire, but the question states the rule is not firing under specific conditions, implying it is active.

458
MCQhard

A developer creates a business rule that runs before a record is inserted or updated on the Incident table. The rule sets the assignment group based on the category. However, after the rule runs, the assignment group is not being saved. What is the most likely cause?

A.The rule is a display business rule
B.The rule runs after the record is saved
C.The business rule is set to run on before update only
D.The script does not use current.setAbortAction(false)
AnswerB

After business rules require an explicit current.update() to save changes.

Why this answer

If the rule runs after the record is saved, changes to current are not automatically saved. The script must call current.update(). Options A and B are not relevant.

Display business rules run on the client side.

459
MCQmedium

A developer needs to create a business rule that runs only when the 'State' field of an Incident changes from 'New' to 'In Progress'. Which condition script should be used?

A.current.state.changes() && current.state.changesFrom('New')
B.current.state == 'New' && current.state.changesTo('In Progress')
C.current.state.changes() && previous.state == 'New'
D.current.state.changesTo('In Progress')
AnswerA

This correctly checks that the state changed and the previous value was 'New'.

Why this answer

Option A is correct because it uses both `current.state.changes()` to verify the field has changed and `current.state.changesFrom('New')` to ensure the previous value was 'New'. This combination precisely captures the transition from 'New' to any other state, which when combined with the business rule's 'when to run' condition (set to 'In Progress' in the rule's filter or script), ensures the rule fires only when the state changes from 'New' to 'In Progress'.

Exam trap

The trap here is that candidates often pick Option D thinking `changesTo('In Progress')` alone is sufficient, forgetting that it does not restrict the previous state, so the rule would fire for any transition into 'In Progress', not just from 'New'.

How to eliminate wrong answers

Option B is wrong because `current.state == 'New'` checks the current value, not the previous value; this would incorrectly fire when the state is currently 'New' and changes to 'In Progress', which is impossible since the state cannot be both 'New' and changing to 'In Progress' at the same time. Option C is wrong because `previous.state == 'New'` only checks the previous value but does not verify that the new value is 'In Progress'; the rule would fire for any state change from 'New' (e.g., to 'Resolved' or 'Canceled'). Option D is wrong because `current.state.changesTo('In Progress')` alone does not ensure the previous state was 'New'; the rule would fire if the state changes to 'In Progress' from any other state (e.g., from 'On Hold' or 'Assigned').

460
MCQmedium

A ServiceNow instance has a business rule named 'Update CI Status' that runs on the 'Change Request' table after insert. The rule is intended to update the 'Configuration Item' record's 'Operational Status' to 'Under Maintenance' when a change request is created. The business rule uses the following script: (function executeRule(current, previous != null)) { var gr = new GlideRecord('cmdb_ci'); gr.get(current.cmdb_ci); gr.operational_status = 'Under Maintenance'; gr.update(); })(current, previous); After a recent upgrade to the Vancouver release, the business rule stopped working. The change request is created successfully, but the CI's operational status remains unchanged. The system logs show no errors. What is the most likely cause and the correct fix? A. The business rule is running asynchronously; change it to synchronous. B. The condition field is empty; add 'gs.action() === 'insert'' as the condition. C. The 'current.cmdb_ci' field is not populated; check that the field is required on the form. D. The script uses 'previous' incorrectly; remove 'previous != null' from the function signature.

A.The condition field is empty; add 'gs.action() === 'insert'' as the condition.
B.The business rule is running asynchronously; change it to synchronous.
C.The 'current.cmdb_ci' field is not populated; check that the field is required on the form.
D.The script uses 'previous' incorrectly; remove 'previous != null' from the function signature.
AnswerC

If no CI is selected, get() fails silently and the update never runs.

Why this answer

Option C is correct because the script assumes 'current.cmdb_ci' is populated. If the CI field is not required, a change request can be submitted without a CI, causing the GlideRecord get() to fail silently. Option A is incorrect because asynchronous execution does not affect the script logic; the issue is data.

Option B is incorrect because the condition is not missing; the script runs on insert by default. Option D is incorrect because the syntax 'previous != null' in the function signature is invalid; the correct syntax is 'current, previous' but the extra '!= null' would cause a script error, not a silent failure. The error would be logged, which contradicts the statement that no errors are shown.

461
MCQmedium

A developer wants to create a new UI action that appears on the form only when the record is in a specific state. Which property should be configured?

A.Script condition
B.Condition field
C.Form context menu
D.Insert field
AnswerA

This allows a script to check the current state and return true/false.

Why this answer

Option B is correct because the 'Script condition' property allows writing a script to dynamically determine visibility based on state. Option A is for simple conditions but not always sufficient, and C and D are unrelated.

462
MCQmedium

A company is expanding its use of ServiceNow and needs to create a custom application for managing employee onboarding tasks. The application includes several tables: Onboarding Request, Task, and Checklist Items. The business requires that when an onboarding request is submitted, a set of tasks should be automatically created in a specific order. Additionally, when all tasks are completed, the onboarding request status should automatically update to 'Completed'. The developer decides to use Flow Designer to automate this process. The developer creates a flow with a trigger on the Onboarding Request table for 'Record created or updated' and adds actions to create tasks. However, during testing, the flow creates tasks but does not update the request status when tasks are completed. What is the most likely issue?

A.The flow is set to run only on create, not on update.
B.The flow uses a 'Wait for condition' action that is not configured correctly.
C.The user does not have rights to update the Onboarding Request table.
D.The flow is not configured to listen for updates on the Task table.
AnswerD

Correct: The flow needs a trigger on Task table to respond to task completion.

Why this answer

Option D is correct because the flow is triggered only by events on the Onboarding Request table. To update the request status when tasks are completed, the flow must also listen for updates on the Task table (e.g., via a separate flow or a 'Wait for condition' that polls the Task table). Without a trigger or condition monitoring the Task table, the flow has no way to know when tasks finish.

Exam trap

ServiceNow often tests the misconception that a single flow triggered on one table can automatically react to changes in a related table without an explicit trigger or condition on that related table.

How to eliminate wrong answers

Option A is wrong because the trigger is set for 'Record created or updated', so it runs on both create and update events on the Onboarding Request table. Option B is wrong because a 'Wait for condition' action could be used to poll the Task table, but the core issue is that the flow lacks any trigger or mechanism to react to Task table updates; the problem is not misconfiguration of a wait action but the absence of a trigger on the Task table. Option C is wrong because if the user lacked rights to update the Onboarding Request table, the flow would fail entirely or produce an error, not silently skip the status update.

463
MCQmedium

A company uses a business rule to set a field on the Incident table based on the caller's department. However, the rule runs correctly on insert but not on update. The developer suspects the condition is incorrect. The current script uses: if (current.operation() == 'insert' && gs.getUser().getDepartment() == 'IT'). What might be the issue?

A.The condition should check current.caller_id.department instead
B.The rule is set to run only on insert
C.The script uses synchronous business rule instead of asynchronous
D.The condition should use current.operation() == 'update' as well
AnswerA

The script should use current.caller_id.department to reference the caller's department.

Why this answer

Option A is correct because the business rule should check the department of the caller associated with the incident record, not the logged-in user. The condition `current.caller_id.department` retrieves the department value from the caller's user record via a dot-walk to the sys_user table, ensuring the rule triggers based on the incident's caller, not the session user. The current script incorrectly uses `gs.getUser().getDepartment()`, which returns the department of the user running the update, which may differ from the caller's department, causing the rule to fail on update.

Exam trap

The trap here is that candidates often confuse the session user (`gs.getUser()`) with the record's related user (e.g., caller_id), leading them to overlook the need to dot-walk to the caller's department instead of using the logged-in user's department.

How to eliminate wrong answers

Option B is wrong because the rule's 'When to run' configuration is not mentioned in the question; the developer suspects the condition is incorrect, not the trigger timing, and the script already checks `current.operation() == 'insert'`, so the rule could still run on update if the condition were fixed. Option C is wrong because synchronous vs asynchronous execution affects when the rule runs relative to the database operation, not the condition logic; the issue is the condition's field reference, not the execution mode. Option D is wrong because adding `current.operation() == 'update'` would still not fix the core problem—the condition would still check the wrong department (the session user's department) instead of the caller's department, and the rule would still fail to set the field correctly on update.

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

465
Multi-Selecthard

Which TWO conditions must be met for a Scoped Application to access a table from another scope without using an access grant?

Select 2 answers
A.The application is installed in the same instance as the table
B.The table is extended from a table in the consumer application scope
C.The table name starts with 'sys_'
D.The table belongs to the global scope
E.The table is marked as 'Allow access to all application scopes' in its application file
AnswersD, E

True; global tables are accessible by all scoped applications by default.

Why this answer

Option D is correct because tables in the global scope are accessible by default to all scoped applications without requiring an explicit access grant. This is a fundamental rule in ServiceNow's scoping model: global-scope tables are considered shared resources, so any scoped application can read from or write to them as long as the application is installed in the same instance. Option E is also correct because marking a table as 'Allow access to all application scopes' in its application file explicitly overrides the default scope isolation, granting cross-scope access without a grant.

Exam trap

ServiceNow often tests the misconception that any table in the global scope is automatically accessible, but the trap here is that candidates confuse 'global scope' with 'system tables' (sys_ prefix) or assume that extension implies access, leading them to pick options B or C instead of recognizing the explicit conditions required for grant-free access.

466
Multi-Selecthard

A developer is writing a business rule that should trigger on update of the 'short_description' field of an incident. The rule needs to check if the new value contains 'urgent' and, if so, set the priority to 1. Which TWO statements are true about implementing this rule?

Select 2 answers
A.The condition 'current.short_description.changes()' can be used to ensure the rule runs only when short_description changes.
B.The new value of short_description can be accessed using current.short_description.
C.The new value of short_description can be accessed using previous.short_description.
D.To set the priority, use current.priority.setValue(1).
E.The comparison should use current.short_description.indexOf('urgent') !== -1.
AnswersA, B

Correct: this condition returns true if the field changed.

Why this answer

Option A is correct because the `changes()` method in ServiceNow returns true only when the specified field's value has been modified during the current transaction. This ensures the business rule triggers exclusively on updates to the `short_description` field, preventing unnecessary execution on other field changes. Option B is correct because `current.short_description` always holds the new (updated) value of the field when the business rule runs after the database update.

Exam trap

The trap here is that candidates often confuse `current` and `previous`—thinking `previous` holds the new value—or mistakenly use `setValue()` instead of direct assignment for GlideRecord fields.

467
MCQmedium

A developer is creating a REST API in ServiceNow to expose incident data. The API must return only incidents with 'state' = 2 (in progress) and limit results to 50. Which implementation is correct?

A.Use the ServiceNow table API with endpoint '/api/now/table/incident?state=2&sysparm_limit=50'.
B.In the script, use 'gr.addQuery('state', 2); gr.setLimit(50);' and return the records.
C.Use a REST API endpoint with path /api/incidents and set the query parameter 'sysparm_query=state=2' and 'sysparm_limit=50'.
D.In the script, use 'gr.get('state', 2)' and then limit via 'gr.setLimit(50)'.
AnswerB

This is the standard approach in a scripted REST API handler.

Why this answer

Option B is correct because it uses the standard GlideRecord pattern to query the incident table with an 'addQuery' filter for state=2 and 'setLimit' to restrict results to 50, which is the proper server-side approach when building a custom REST API endpoint in a Scripted REST API or similar. The other options misuse table API syntax or GlideRecord methods in ways that would not work as intended.

Exam trap

The trap here is confusing the built-in table API's parameter syntax (which requires 'sysparm_query' for filters) with the GlideRecord method syntax, and assuming that 'gr.get()' can be used to filter multiple records when it is designed for single-record retrieval by key.

How to eliminate wrong answers

Option A is wrong because the ServiceNow table API endpoint '/api/now/table/incident' does not accept a raw query parameter like 'state=2'; it requires the 'sysparm_query' parameter with an encoded query string (e.g., 'sysparm_query=state=2'). Option C is wrong because the path '/api/incidents' is not a valid ServiceNow REST API endpoint; the correct base path for table APIs is '/api/now/table/', and query parameters must be 'sysparm_query' and 'sysparm_limit', not 'sysparm_query=state=2' without proper encoding. Option D is wrong because 'gr.get('state', 2)' is used to retrieve a single record by sys_id or a unique key, not to filter a set of records; it would return only one record (if any) and ignore the limit.

468
Matchingmedium

Match each ServiceNow feature to its primary service.

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

Concepts
Matches

Automation

Self-service portal

Conversational AI chatbot

Reporting and dashboards

CMDB population and maintenance

Why these pairings

Each feature belongs to a specific ServiceNow service or capability.

469
Multi-Selectmedium

A ServiceNow administrator needs to integrate with an external inventory system. The integration must import inventory items into a custom table 'inventory_item' and export order status from a custom table 'order' to the external system. Which TWO methods should the administrator use to achieve this?

Select 2 answers
A.Web Services Import set to import inventory items.
B.Export to XML to export order status.
C.Flow Designer to both import and export.
D.Import Set Row to import inventory items.
E.Transform Map to export order status.
AnswersB, D

Export to XML can be used to export data from ServiceNow.

Why this answer

Option B is correct because Export to XML is a native ServiceNow feature that allows administrators to export records from any table, including the custom 'order' table, in XML format. This XML data can then be consumed by an external system via a REST or SOAP endpoint, making it a straightforward method for exporting order status. Option D is correct because Import Set Row is a specific import set table that stores each row of imported data before it is transformed into the target table, such as 'inventory_item', providing a structured way to import inventory items.

Exam trap

The trap here is that candidates confuse 'Import Set Row' with 'Web Services Import set' (a non-existent term) or assume Flow Designer can directly handle bulk data import/export, when in reality it is a workflow tool that triggers other processes, not a data transfer method itself.

470
MCQhard

A scheduled import brings in 50,000 records daily. Which approach is the MOST efficient for transforming these records?

A.Load all rows first, then run the transform as a batch process
B.Run the transform after each row is inserted into the staging table
C.Use a database view to transform data on the fly
D.Write directly to the target table using insert statements
AnswerA

Batch transform is the recommended pattern for large volumes.

Why this answer

Option C is correct: running transform after all rows are loaded in batch is efficient. Option A is wrong because transforming each row individually is slower. Option B is wrong because database views are not for import transformation.

Option D is wrong because directly using import set row table bypasses transform logic.

471
Multi-Selecteasy

Which TWO statements are true about ServiceNow Business Rules? (Select TWO)

Select 2 answers
A.Business Rules run on the client side.
B.Business Rules can be set to run on 'before' or 'after' the database operation.
C.Business Rules can only be triggered by updates to a record.
D.Business Rules are executed asynchronously by default.
E.Business Rules can be used to send email notifications.
AnswersB, E

Correct, they have a 'When to run' property.

Why this answer

Business Rules are server-side scripts that execute when a record is inserted, updated, deleted, or queried. They can be configured to run 'before' the database operation (to modify data before it is saved) or 'after' the operation (to perform additional actions like logging or notifications). This flexibility is a core feature of the ServiceNow platform.

Exam trap

The trap here is that candidates often confuse server-side Business Rules with client-side scripts, or assume they only run on updates, but the exam tests the precise trigger conditions and execution context.

472
MCQmedium

An organization has a ServiceNow instance that integrates with an external HR system using a scheduled job that runs every hour. The job uses a REST message to fetch new hire records and creates user accounts in ServiceNow via a transform map. Recently, the number of new hires has increased significantly, and the job now takes over an hour to complete, causing the next job to start before the previous one finishes. The administrator notices that the transform map is using 'Coalesce' set to 'false' because the external system does not provide a unique identifier. The job also creates a large number of intermediate records that are later updated. The administrator wants to optimize the process to prevent overlapping job runs. Which course of action should the administrator take?

A.Increase the scheduled job's interval to run every 2 hours to avoid overlap
B.Set the 'Maximum rows to load' property on the transform map to a value that ensures the job finishes within 60 minutes
C.Change the transform map to run asynchronously using a flow triggered by the import set row
D.Configure the import set table loader to run in multiple parallel threads to process records faster
AnswerB

Limiting the rows per run controls the job duration, preventing overlap.

Why this answer

Option B is correct because setting the 'Maximum rows to load' property on the transform map limits the number of rows processed per run, ensuring the job completes within the 60-minute window. This prevents overlapping runs by capping the workload, allowing the scheduled job to finish before the next trigger, without requiring changes to the integration logic or external system.

Exam trap

The trap here is that candidates often assume increasing the interval or adding parallelism (Options A or D) will solve the overlap, but they overlook that without a unique identifier, parallel processing can cause duplicates, and simply delaying the job does not fix the underlying processing speed issue.

How to eliminate wrong answers

Option A is wrong because simply increasing the interval to 2 hours does not address the root cause of slow processing; the job would still take over an hour and could still overlap if the workload remains unconstrained, and it reduces data freshness. Option C is wrong because running the transform map asynchronously via a flow triggered by the import set row does not prevent overlapping job runs; it only decouples processing from the scheduled job, but the underlying bottleneck of processing large volumes without a unique identifier remains, and flows can still queue up and cause delays. Option D is wrong because configuring the import set table loader to run in multiple parallel threads can cause data integrity issues when 'Coalesce' is set to 'false' (no unique identifier), leading to duplicate records or race conditions, and it does not guarantee the job finishes within the hour.

473
Multi-Selectmedium

Which TWO actions can be performed directly from ServiceNow Studio?

Select 2 answers
A.Configure email notifications.
B.Run a scheduled job.
C.Configure form layout.
D.Create a new table.
E.Define a workflow.
AnswersC, D

Correct. Form layout can be edited directly in Studio.

Why this answer

Options A and C are correct because Studio allows creating new tables and editing form layouts. Option B is wrong because running scheduled jobs is not a Studio function. Option D is wrong because defining workflows is deprecated and not in Studio.

Option E is wrong because update set settings are managed separately.

474
MCQmedium

Refer to the exhibit. Which scenario most likely caused this error?

A.The Business Rule runs on delete and 'current' is null.
B.The Business Rule tries to access a field that doesn't exist.
C.The Business Rule uses 'previous.sys_id' but the record is new.
D.The Business Rule is not active.
AnswerC

On insert, previous is null.

Why this answer

Option C is correct because when a Business Rule runs on 'insert' or 'update' and references 'previous.sys_id', the 'previous' object is null for new records (since there is no prior version). This causes a 'Cannot read property 'sys_id' of null' error. The error occurs specifically because the script attempts to access a property on an undefined object.

Exam trap

ServiceNow often tests the distinction between 'current' and 'previous' objects in Business Rules, and the trap here is that candidates may not realize 'previous' is null for new records, leading them to incorrectly assume the error is about a missing field or inactive rule.

How to eliminate wrong answers

Option A is wrong because if a Business Rule runs on delete and 'current' is null, the error would be about 'current' being null, not 'previous'. Option B is wrong because accessing a non-existent field typically throws a 'Field does not exist' error, not a null reference error on 'previous'. Option D is wrong because an inactive Business Rule simply does not execute, so it would not produce any error at all.

475
Multi-Selectmedium

Which THREE best practices should a developer follow when designing a service portal widget? (Choose three.)

Select 3 answers
A.Define widget options for configuration
B.Avoid using the widget's server-side script for any logic
C.Use server-side scripts to fetch data
D.Use client-side scripts exclusively for data retrieval
E.Use the widget's 'Client Script' field sparingly and only for UI interactions
AnswersA, C, E

Options make widgets reusable and configurable without code changes.

Why this answer

Using server-side scripts for data, defining clear options, and following widget scope best practices ensure maintainable and performant widgets.

476
MCQhard

A large enterprise uses ServiceNow for IT Service Management. They have a custom Service Portal for end-users to submit catalog requests. Recently, mobile users reported that the portal is extremely slow on their devices, while desktop users experience no issues. The portal theme uses many custom CSS animations and high-resolution images. Additionally, the widget client scripts are complex and make multiple GlideAjax calls on page load. The development team wants to optimize mobile performance without redesigning the entire portal. Evaluate the options and select the best course of action.

A.Increase server-side caching for widgets and use a CDN for static assets
B.Consolidate multiple GlideAjax calls into a single server-side script and use mobile-optimized images
C.Remove all custom CSS animations and replace high-res images with scalable vector graphics
D.Implement lazy loading for images and defer all GlideAjax calls until after page load
AnswerB

Reducing the number of server round trips and using lighter images directly improves mobile performance by decreasing network latency and rendering effort.

Why this answer

Option D is correct because reducing unnecessary client-side processing and network calls directly addresses mobile performance bottlenecks. Option A is incorrect because lazy loading helps initial load but does not reduce total number of calls; it may still be heavy. Option B is incorrect because caching only helps repeated visits, not the first load.

Option C is incorrect because disabling animations reduces rendering, but the main issue is likely the GlideAjax calls and assets; option D combines reducing server calls and optimizing assets.

477
MCQhard

A global business rule that runs on after query on the Task table is causing performance degradation. The rule modifies the query condition for all task records. The developer needs to optimize the rule without changing its functionality. Which approach is best?

A.Move the script to a condition builder script include
B.Convert the business rule to a script action in a flow designer
C.Make the business rule asynchronous
D.Use glideRecord.addEncodedQuery() instead of addQuery()
AnswerD

addEncodedQuery allows passing a single encoded query string, reducing multiple database calls.

Why this answer

Option D is correct because using `glideRecord.addEncodedQuery()` allows the business rule to directly apply a pre-encoded query string to the GlideRecord object, which is more efficient than using multiple `addQuery()` calls. This reduces the overhead of parsing individual conditions and improves performance when modifying query conditions on the Task table, without altering the rule's functionality.

Exam trap

The trap here is that candidates often assume asynchronous execution (Option C) always improves performance, but they overlook that changing the business rule to asynchronous would prevent it from modifying the query condition before execution, thus breaking the required functionality.

How to eliminate wrong answers

Option A is wrong because moving the script to a condition builder script include does not address the performance degradation; it merely relocates the logic without optimizing the query construction. Option B is wrong because converting the business rule to a script action in Flow Designer introduces additional orchestration overhead and is not designed for optimizing query conditions in a before query business rule. Option C is wrong because making the business rule asynchronous would change its functionality—it would no longer run synchronously during the query phase, which is required to modify the query condition before execution.

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

479
MCQeasy

A developer needs to create a record in the 'task' table when a specific condition is met in a Business Rule. The new record should be linked back to the current record via a reference field. What is the best practice to ensure the new record is created in the same transaction?

A.Use GlideRecord with newRecord() and set values, then call insert().
B.Use Flow Designer to create the record asynchronously.
C.Use the GlideRecord updateMultiple() method.
D.Call a Scripted REST API to insert the record.
AnswerA

This is the standard way to create records in the same transaction within a Business Rule.

Why this answer

Option A is correct because using GlideRecord with newRecord() and insert() within the same Business Rule ensures the new 'task' record is created in the same database transaction as the current record. This guarantees atomicity: if the insert fails, the entire transaction rolls back, preventing orphaned records. The reference field linking back to the current record is set synchronously before the insert, maintaining data integrity.

Exam trap

The trap here is that candidates often think asynchronous methods like Flow Designer are 'best practice' for decoupling, but the question explicitly requires same-transaction creation, which only synchronous GlideRecord insert provides.

How to eliminate wrong answers

Option B is wrong because Flow Designer asynchronously creates the record in a separate transaction, breaking atomicity and potentially causing race conditions or orphaned records if the current transaction fails. Option C is wrong because updateMultiple() is used to update existing records in bulk, not to insert a new record; it cannot create a new record linked to the current one. Option D is wrong because calling a Scripted REST API introduces a separate HTTP request and transaction, defeating the purpose of same-transaction creation and adding unnecessary latency and failure points.

480
MCQeasy

A developer is creating a catalog item that requires a user to upload a file. Which variable type should be used?

A.Attachment
B.Multi Line Text
C.Single Line Text
D.Checkbox
AnswerA

Attachment variable type allows file uploads.

Why this answer

The Attachment variable type is specifically designed for file uploads in ServiceNow catalog items. It provides a built-in file picker and stores the uploaded file as an attachment on the requested record, enabling users to submit documents directly through the catalog form.

Exam trap

ServiceNow often tests the distinction between variable types that handle data differently; the trap here is that candidates might confuse 'Attachment' with 'Single Line Text' thinking a file path can be entered as text, but ServiceNow requires the dedicated Attachment variable for actual file uploads.

How to eliminate wrong answers

Option B (Multi Line Text) is wrong because it is intended for free-form text input spanning multiple lines, not for file uploads. Option C (Single Line Text) is wrong because it accepts only a single line of text and cannot handle binary file data. Option D (Checkbox) is wrong because it represents a boolean true/false value and has no capability for file attachment.

481
MCQmedium

A developer created a UI Script and a Client Script as shown. Both scripts set urgency and impact to '1' when priority is '1'. However, when the priority is changed to '1' on an existing record, the urgency and impact fields do not update. What is the most likely cause?

A.The UI Script is not being called because it is not associated with any form or event
B.The priority field is not a choice field, so onChange does not fire
C.The Client Script function name is incorrect; it should be 'onChangePriority'
D.The g_form API is deprecated and no longer works
AnswerA

UI Scripts are not automatically executed; they must be called from a Client Script or UI Policy.

Why this answer

A UI Script is a reusable client-side script that must be explicitly called from a Client Script, UI Policy, or form event to execute. In this scenario, the UI Script is not associated with any form or event, so it never runs when the priority field changes. The Client Script alone cannot invoke the UI Script without a direct call, leaving the urgency and impact fields unupdated.

Exam trap

ServiceNow often tests the distinction between defining a script and executing it, trapping candidates who assume that simply creating a UI Script will automatically run it on field changes without an explicit trigger.

How to eliminate wrong answers

Option B is wrong because the onChange event fires on any field change, including choice fields like priority; the issue is not about field type but about the UI Script not being triggered. Option C is wrong because the Client Script function name can be any valid JavaScript function name; the onChange event is bound to the field, not the function name, so 'onChangePriority' is not required. Option D is wrong because the g_form API is not deprecated and continues to work in current ServiceNow versions; the problem is unrelated to API deprecation.

482
MCQmedium

A developer writes a script to display the department name of the caller on a custom form. The script uses: gs.getUser().getDepartment().getName(). However, the script throws a null pointer exception for some users. Which is the most likely cause and solution?

A.The Department table is empty
B.The script uses incorrect dot-walking syntax; use getValue('department') instead
C.The user table does not have a department reference field
D.Some users do not have a department assigned, and the script does not check for null
AnswerD

When getDepartment() returns null, calling getName() on null causes a NullPointerException. The solution is to add a null check before calling getName().

Why this answer

Option D is correct because the NullPointerException suggests that getDepartment() returned null for users without a department. Option A is wrong because the script is syntactically correct. Option B is wrong because reference exists.

Option C is wrong because department records exist.

483
MCQeasy

A company needs to allow employees to request a new laptop through a catalog item. The form should only show a 'Configuration' section if the user selects 'Yes' for 'Custom Configuration?'. Which design approach best accomplishes this?

A.Use a UI Policy to show/hide the section based on the field value.
B.Use a client script to hide the section when the field changes.
C.Use an ACL to restrict access to the section.
D.Use a catalog client script to set the visibility.
AnswerA

UI Policies are the standard way to control visibility of fields/sections declaratively.

Why this answer

UI Policies are declarative and maintainable for showing/hiding variables based on conditions, unlike client scripts which can be brittle.

484
Multi-Selecteasy

Which THREE of the following are features available in ServiceNow for integrating data with external systems? (Choose three.)

Select 3 answers
A.SOAP Web Service
B.LDAP
C.Email
D.REST API
E.Print
AnswersA, B, D

SOAP is another web service integration.

Why this answer

REST API, SOAP Web Service, and LDAP are standard integration features in ServiceNow. Email and Print are not used for data integration.

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

486
MCQmedium

A developer writes a widget client controller that uses spUtil.get to fetch data from the server. The data is correctly returned, but the widget does not update the UI. What is the most likely cause?

A.The widget's HTML template does not reference the correct variable name
B.The callback does not assign the result to a $scope variable
C.The server script did not set data correctly
D.The spUtil.get method is deprecated
AnswerB

Correct: Without updating $scope, AngularJS does not know to re-render.

Why this answer

spUtil.get returns a promise, and the success callback should assign to $scope to trigger digest cycle. If the callback does not update a $scope property, the view will not update.

487
MCQhard

A developer is optimizing a Business Rule that runs on every update to the 'incident' table. The rule uses GlideAggregate to count related records. The developer notices performance degradation. Which change will most improve performance while maintaining functionality?

A.Replace GlideAggregate with GlideRecord and count results manually.
B.Add a database index on the foreign key field used in the aggregate.
C.Add a condition to the Business Rule such as 'current.changesField('state')' to only run the aggregate when relevant.
D.Use the gs.addInfoMessage() to log the count and disable the script in production.
AnswerC

Limiting execution to only when the 'state' field changes reduces unnecessary processing.

Why this answer

Option C is correct because it prevents the GlideAggregate from executing on every update, instead running only when the 'state' field changes. This reduces unnecessary database operations, directly addressing the performance degradation while preserving the rule's functionality when needed.

Exam trap

ServiceNow often tests the misconception that adding an index (Option B) is the universal performance fix, but the trap here is that reducing unnecessary execution (Option C) is a more impactful optimization than improving query speed for a query that runs too often.

How to eliminate wrong answers

Option A is wrong because replacing GlideAggregate with GlideRecord and manually counting results would be even less efficient, as it retrieves all related records into memory rather than performing a server-side count. Option B is wrong because while adding a database index can improve query performance, it does not address the root cause of running the aggregate on every update; the performance gain is marginal compared to reducing execution frequency. Option D is wrong because using gs.addInfoMessage() to log the count and disabling the script in production would eliminate the functionality entirely, not maintain it.

488
MCQeasy

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

A.The condition 'current.category.changes()' returns false on insert.
B.The Business Rule does not run on insert.
C.The Business Rule runs after the database operation.
D.The setValue method does not work on insert.
AnswerA

On insert, changes() is false because no previous value.

Why this answer

Option B is correct. On insert, 'current.category.changes()' returns false because there is no previous value. Option A is incorrect because the rule may run on insert but condition fails.

Option C is incorrect because 'before' rule runs before save. Option D is incorrect because setValue works on insert.

489
MCQeasy

When creating a new table using the 'Create Table' module, which setting determines whether the table will inherit fields from an existing table?

A.Application
B.Extends
C.Table name
D.Table label
AnswerB

The 'Extends' field lets you choose a parent table to inherit fields.

Why this answer

Option A is correct because the option to 'Extends' allows selection of a parent table. Option B is wrong because 'Table label' is just the display name. Option C is wrong because 'Table name' is the sys_name.

Option D is wrong because 'Application' sets the scope.

490
MCQeasy

In ServiceNow Studio, which file type is automatically generated when creating a new application?

A.update.xml
B.readme.md
C.manifest.xml
D.app.xml
AnswerC

Correct. Manifest.xml defines application metadata.

Why this answer

Option B is correct because Studio generates a manifest.xml file for each application. Option A is wrong; app.xml is not standard. Option C is wrong; update.xml is for update sets.

Option D is wrong; readme.md is optional.

491
MCQhard

A developer needs to debug an issue where a client script is not triggering when a field changes. What is the most efficient first step in troubleshooting within Studio?

A.Review the syslog for error messages.
B.Open the client script in Studio and use the 'Debug' button.
C.Check the ACLs on the table.
D.Add a gs.log() statement to the server-side code.
AnswerB

This allows running the script in debug mode to see if it fires and track variables.

Why this answer

Option B is correct because Studio includes a debug feature for client scripts that allows step-by-step execution and inspection. Option A is indirect, C is not relevant to client script execution, and D is server-side.

492
MCQhard

An application has a custom table 'u_project' with a field 'u_status' (choice list: Not Started, In Progress, Completed). The developer wants to prevent any update to the record if the status is 'Completed'. Which approach should be used?

A.Create a Database View that filters out Completed records.
B.Create a Client Script that sets the field to read-only when status is Completed.
C.Create a Business Rule with condition 'current.u_status.changesTo("Completed")' and set 'current.setAbortAction(true)' in the script.
D.Create a UI Policy to disable the entire form when status is Completed.
AnswerC

Business Rules can abort actions before they occur.

Why this answer

Option C is correct because a Business Rule with the condition `current.u_status.changesTo('Completed')` triggers only when the status field transitions to 'Completed', and `current.setAbortAction(true)` aborts the database update operation at the server level, ensuring that no update can persist regardless of client-side behavior. This approach enforces the restriction server-side, which is essential for data integrity because client-side scripts can be bypassed.

Exam trap

The trap here is that candidates often choose client-side options (B or D) because they see 'prevent update' as a UI problem, but the exam tests the understanding that only server-side logic can enforce data integrity against all update sources.

How to eliminate wrong answers

Option A is wrong because a Database View is a read-only construct that does not prevent updates to the underlying table; it only provides a filtered representation of data for querying. Option B is wrong because a Client Script runs in the browser and can be bypassed by direct API calls or by disabling JavaScript, so it does not provide a server-side enforcement of the update restriction. Option D is wrong because a UI Policy only controls the user interface (e.g., making fields read-only or hiding them) and does not prevent updates submitted via REST, SOAP, or background scripts; it also does not abort the transaction on the server.

493
Multi-Selecthard

A developer is creating a business rule to automatically assign tasks to a specific group based on the category. The rule is set to run before insert and update on the Task table. The script uses current.assignment_group = 'IT Support'. However, the assignment group is not being set on update even though it works on insert. Which three potential causes should the developer investigate? (Choose three.)

Select 3 answers
A.The business rule's condition field requires the category to be set
B.The assignment group field is read-only on the form but can be set via business rule
C.The script does not include a condition to run on update
D.The business rule is set to run only in the global scope
E.Another business rule is resetting the assignment group after this rule runs
AnswersA, C, E

If the condition is not met on update, the rule does not execute.

Why this answer

Option A: if the condition depends on category, on update the category might not trigger the rule. Option C: if the script only runs on insert conditionally, it won't run on update. Option E: another rule might override the group.

Option B: scope is not an issue. Option D: read-only fields can be set in business rules.

494
Multi-Selecthard

Which THREE considerations are important when designing a ServiceNow REST API for external consumption? (Choose three.)

Select 3 answers
A.Implement rate limiting to protect the instance from overload.
B.Use versioning in the API path (e.g., /api/now/v1/table).
C.Use GlideAggregate for performance in the API script.
D.Always use OAuth 2.0 for authentication.
E.Provide meaningful error messages in the response body.
AnswersA, B, E

Rate limiting prevents abuse and maintains performance.

Why this answer

Option A is correct because implementing rate limiting is crucial for protecting a ServiceNow instance from being overwhelmed by excessive API requests from external consumers. Without rate limiting, a single client could degrade performance for all users or even cause an outage. ServiceNow provides built-in mechanisms like the REST API rate limit property (glide.rest.rate_limit) to control request frequency per client.

Exam trap

The trap here is that candidates may confuse internal implementation techniques (like GlideAggregate) with high-level design considerations for external REST APIs, or assume that OAuth 2.0 is strictly required when ServiceNow actually supports multiple authentication methods.

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

496
MCQeasy

A developer wants to send an email notification when a new incident is created. Which component should be configured to trigger the notification?

A.Use Flow Designer to create a flow that sends an email.
B.Write a Business Rule that calls the email utility.
C.Create a Notification record with the condition 'New' and 'Action: record inserted'.
D.Create an ACL with email action.
AnswerC

Notifications are the standard way to send emails on record events.

Why this answer

Option C is correct because in ServiceNow, the native Notification mechanism is specifically designed to send emails based on conditions like 'New' and 'Action: record inserted'. When a new incident is created, the system evaluates the notification's condition; if it matches, the notification triggers automatically without requiring custom scripting or flow design. This is the standard, out-of-box approach for email alerts on record creation.

Exam trap

The trap here is that candidates often confuse the purpose of Business Rules (which can also send emails via script) with the dedicated Notification engine, leading them to choose Option B, but ServiceNow's best practice and the exam emphasize using the native Notification record for simple email triggers on record creation.

How to eliminate wrong answers

Option A is wrong because Flow Designer is typically used for more complex, multi-step automations; while it can send emails, it is not the simplest or most direct component for a basic trigger-on-insert notification, and using it would introduce unnecessary overhead. Option B is wrong because writing a Business Rule that calls the email utility is a custom scripting approach that bypasses the built-in Notification engine, leading to maintenance challenges and potential performance issues; ServiceNow recommends using Notifications for such standard email triggers. Option D is wrong because ACLs (Access Control Lists) control data access and security, not email notifications; they have no capability to send emails or trigger actions on record insertion.

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

498
Multi-Selecthard

Which THREE of the following are correct statements about Service Portal client controllers?

Select 3 answers
A.They can use AngularJS services like $http and $timeout.
B.They run on the server and are called via server-side includes.
C.They must define a $scope variable explicitly to bind data to the template.
D.They can call the server using $scope.server.get() or $scope.server.post().
E.They are AngularJS controllers that handle client-side logic.
AnswersA, D, E

AngularJS services are available in client controllers.

Why this answer

Option A is correct because Service Portal client controllers are AngularJS controllers that run in the browser. They can use standard AngularJS services such as $http for making AJAX calls to external APIs or the instance, and $timeout for delaying execution, which are both injected as dependencies.

Exam trap

ServiceNow often tests the misconception that client controllers run on the server or require explicit $scope declaration, confusing them with server-side scripts or older AngularJS patterns.

499
Multi-Selectmedium

Which TWO approaches are valid for importing data from an external database into ServiceNow on a recurring basis? (Choose two.)

Select 2 answers
A.Set up a MID Server to run a scheduled transform map from an external SQL query.
B.Use a REST API with a periodic flow that calls an external endpoint.
C.Write a business rule that triggers on an external event via web service.
D.Use an email inbound action to parse CSV attachments from the external system.
E.Configure a JDBC data source and scheduled import set.
AnswersA, E

MID Server can execute SQL queries and transform data into ServiceNow.

Why this answer

Option A is correct because a MID Server can execute a scheduled SQL query against an external database and then run a transform map to map the retrieved data into ServiceNow tables. This approach is a standard pattern for recurring data imports using the MID Server's JDBC capabilities combined with scheduled import sets.

Exam trap

The trap here is that candidates often confuse 'importing from an external database' with any external data integration, but the question specifically requires direct database import, which mandates JDBC and a MID Server, not REST APIs or email-based methods.

500
MCQhard

A developer creates a scheduled job that updates a custom table's records. The job runs successfully but the table's 'Updated' field does not reflect the correct time. What could be the reason?

A.The scheduled job's schedule interval is longer than the update frequency.
B.The script used 'setWorkflow(false)' which bypasses the auto-update of the 'Updated' field.
C.The table does not have the appropriate record-level ACLs.
D.The scheduled job runs too fast for the system to record the update.
AnswerB

setWorkflow(false) disables business rules and field updates like 'Updated'.

Why this answer

Option B is correct because the 'Updated' field is set automatically when a record is updated through the UI, but if the update is done via direct database update (e.g., using GlideRecord without setWorkflow(true)), the system might not update the field. Also, conditional or dirty flag may not set. However, the most likely is that the update script used setWorkflow(false) or bypassed the auto-update mechanism.

Option A is wrong because performance of the job is not related. Option C is wrong because Access controls do not affect system fields like 'Updated'. Option D is wrong because the job's schedule time is irrelevant.

Page 6

Page 7 of 7

All pages