Data Migration & Integration Questions
UI policies, business rules, system update sets and scripting in ServiceNow.
Newest question added: AI-assisted drafts, not yet individually reviewedHow questions are made
About Data Migration & Integration
This domain covers moving configuration and logic around the platform: UI policies, business rules, update sets for migrating changes between instances, and where scripting fits in ServiceNow.
Why This Matters for Your Exam
Data Migration & Integration is 13% of the CSA exam according to the official CSA exam blueprint (KB0011554).
Key Concepts to Master
Know when a UI policy runs versus a business rule, what update sets capture (and what they do not), and the basic places scripts run.
Exam Tips
Questions often contrast client-side and server-side behavior. Be clear on what runs in the browser and what runs on the server.
Practice Questions
8 questions availableAn administrator writes an onChange() client script for the Category field on the Incident form. The script must compare the value the field had when the record was loaded with the value after the user's change. Which TWO parameters supply these values? (Choose two.)
👆 Click an option above to select your answer
Show answer and explanation
Correct answer: B. newValue; D. oldValue
An onChange() client script runs when a particular field value changes on the form and must specify control, oldValue, newValue, isLoading, and isTemplate. oldValue holds the value the widget had when the record was loaded, and newValue holds the value the widget has after the change.
- Why A is wrong: oldValues (plural) is an onCellEdit() parameter that holds the old values of the list cells being edited. onChange() uses oldValue instead.
- Why C is wrong: isTemplate is an onChange() parameter, but it only identifies whether the change occurs as part of a template load. It does not hold a field value.
- Why E is wrong: callback is an onCellEdit() parameter that continues the execution of other cell edit scripts. It is not an onChange() parameter.
An administrator is writing a business rule script that runs on update of Incident records. The script must compare the record's values after the update with its values before the update. Which TWO predefined global variables provide these record states? (Choose two.)
👆 Click an option above to select your answer
Show answer and explanation
Correct answer: B. The current object; E. The previous object
Business rules have predefined global variables. current is the current state of the record being referenced, and previous is the state of the record prior to any updates made during the execution context. previous is available on update and delete operations, so an update rule can compare the two.
- Why A is wrong: g_form is the global object for the client-side GlideForm API, which is used on the client to customize forms. It is not a business rule global variable.
- Why C is wrong: g_scratchpad is available on display business rules and is used to pass information to the client for client scripts. It does not hold the record's before or after state.
- Why D is wrong: gs is a business rule global variable, but it references GlideSystem functions rather than the state of the record being updated.
An administrator needs the Close notes field on the Incident form to become mandatory when the Incident state changes to Resolved. The administrator wants to avoid scripting and keep form load times fast. What should the administrator configure?
👆 Click an option above to select your answer
Show answer and explanation
Correct answer: D. A UI policy and its actions
UI policies dynamically change the behavior of information on a form, such as making a field mandatory, read-only, or hidden. Basic UI policies do not require any scripting, and although client scripts can perform the same actions, the documentation recommends UI policies when possible for faster load times. A UI policy action can set Mandatory to True for Close notes.
- Why A is wrong: Script includes store JavaScript that runs on the server for use by server scripts. They require scripting and do not change field behavior on the form.
- Why B is wrong: UI scripts package reusable client-side JavaScript that runs from client scripts or HTML code, so they require scripting and are not a no-code form control.
- Why C is wrong: A client script could make the field mandatory, but it requires JavaScript, and the documentation recommends UI policies over client scripts for faster load times.
An administrator changes a business rule's When value from After to Async. The rule's script uses current.state.changesTo() to detect a state change, and it stops working as expected. What explains this behavior?
👆 Click an option above to select your answer
Show answer and explanation
Correct answer: C. Async rules can't access the previous version of a record
Asynchronous business rules do not have access to the previous version of a record. Because of this, the changes(), changesTo(), and changesFrom() GlideElement methods do not work in an async rule script. The condition builder and condition field still support those methods.
- Why A is wrong: Async rules run after the user submits the form and after the scheduler runs the scheduled job created from the business rule. Before rules are the ones that run before the database action.
- Why B is wrong: The documentation states that the condition builder and the advanced condition field both support changes(), changesTo(), and changesFrom() for async rules. Only the script cannot use them.
- Why D is wrong: Running before the form is presented to the user, just after the data is read from the database, describes Display business rules, not Async rules.
An administrator runs a one-time server-side fix script from the Scripts - Background module on a sub-production instance. The administrator wants to be able to undo the script's data changes afterward. Which option in the module provides this?
👆 Click an option above to select your answer
Show answer and explanation
Correct answer: B. Record for rollback?
Administrators use the Scripts - Background module to run arbitrary JavaScript code from the server. Its Record for rollback? check box, selected by default, creates a rollback context for the script execution so the administrator can roll back the script from the Script Execution History form.
- Why A is wrong: Execute in sandbox? runs the script with sandbox-like restrictions, so data cannot be inserted, updated, or deleted. It prevents changes rather than letting you undo them.
- Why C is wrong: Cancel after 4 hours stops a script that keeps running past four hours. It limits run time and does not provide a way to undo data changes.
- Why D is wrong: Execute as scriptlet? gives the script access to the global scope and server-side functionality or objects. It does not create a rollback context.
An administrator wrote an onChange() client script that validates the Priority field on the Incident form. Users can still enter invalid values by editing Priority directly in the list view. Which TWO approaches validate values entered in the list? (Choose two.)
👆 Click an option above to select your answer
Show answer and explanation
Correct answer: C. Create an onCellEdit() client script; E. Create a data policy on the table
With the exception of onCellEdit() client scripts, client scripts apply only to forms and search pages. To control field values on a list, the documentation lists other methods, including creating a data policy to validate content and creating an onCellEdit() client script, which runs when the list editor changes a cell value.
- Why A is wrong: onChange() client scripts run when a field value changes on the form. Client scripts other than onCellEdit() apply only to forms and search pages, which is why the existing script misses list edits.
- Why B is wrong: onSubmit() client scripts run when a form is submitted. List edits do not submit a form, so this script type does not validate them.
- Why D is wrong: onLoad() client scripts run when the system first renders the form. They do not run when the list editor changes a cell value.
An administrator builds a new catalog item with several variables in the development instance and submits a few test requests against it. When the administrator's update set is moved to production, what does it contain?
👆 Click an option above to select your answer
Show answer and explanation
Correct answer: D. The catalog item, its variables, and variable choices
Update sets track customizations to application tables, fields, and records. They capture configuration details but exclude task or process data. For example, they record catalog item definitions, variables, and variable choices, but not submitted orders or catalog tasks.
- Why A is wrong: Submitted requests and catalog tasks are task or process data, which update sets exclude.
- Why B is wrong: This reverses the rule. Update sets record the catalog item definition and exclude submitted orders.
- Why C is wrong: The catalog item definition is captured, but the submitted test requests are process data and are not recorded in the update set.
An administrator with no scripting experience is creating a business rule on the Incident table and does not want to write a script. Which THREE actions can the administrator configure in the business rule without writing a script? (Choose three.)
👆 Click an option above to select your answer
Show answer and explanation
Correct answer: B. Set field values on the record; C. Display an information message; E. Abort the current transaction
The business rules documentation states that administrators can set field values, create information messages, and abort transactions without writing a script. Other common business rule actions, such as changing child tasks or passing data to the client, are done in the business rule script.
- Why A is wrong: Changing values of child tasks based on parent changes is a common business rule action, but it is not among the actions the documentation lists as available without a script.
- Why D is wrong: g_scratchpad is a global variable used in display business rule scripts to pass information to client scripts. Using it requires writing a script.
CSA is free. Next step: CAD or a CIS exam.
That's every CSA question. When you're ready for the next certification, each one is $9 for lifetime access, or get all 19 paid certifications for $49 (CSA stays free).