Data Migration & Integration Questions

UI policies, business rules, system update sets and scripting in ServiceNow.

8 total questionsAll questions free

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 available
All CSA questions are free(8 questions, no login needed)
1
applicationSelect all that apply

An 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.)

AoldValues
BnewValue
CisTemplate
DoldValue
Ecallback

👆 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.
2
applicationSelect all that apply

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

AThe g_form object
BThe current object
CThe g_scratchpad object
DThe gs object
EThe previous object

👆 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.
3
application

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?

AA server-side script include
BA reusable UI script
CAn onChange() client script
DA UI policy and its actions

👆 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.
4
application

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?

AAsync rules run before the record is written to the database
BAsync rules ignore conditions set in the condition builder
CAsync rules can't access the previous version of a record
DAsync rules run as the form is displayed to the user

👆 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.
5
application

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?

AExecute in sandbox?
BRecord for rollback?
CCancel after 4 hours
DExecute as scriptlet?

👆 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.
6
applicationSelect all that apply

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

ACreate an onChange() client script
BCreate an onSubmit() client script
CCreate an onCellEdit() client script
DCreate an onLoad() client script
ECreate a data policy on the table

👆 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.
7
application

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?

AThe submitted test requests and their catalog tasks
BThe submitted test requests but not the catalog item
CThe catalog item along with the submitted test requests
DThe catalog item, its variables, and variable choices

👆 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.
8
applicationSelect all that apply

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

AUpdate fields on child tasks
BSet field values on the record
CDisplay an information message
DPass values to g_scratchpad
EAbort the current transaction

👆 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).